Cách mở tệp VMDK trong VMware và trích xuất dữ liệu

Hiểu cách mở tệp VMDK và trích xuất nội dung từ tệp VMDK sẽ rất hữu ích khi bạn gặp sự cố với máy ảo. Bạn có thể gặp tình huống máy ảo không thể khởi động sau khi gặp vấn đề trong quá trình cài đặt ứng dụng, cập nhật hệ điều hành, bị tấn công bởi phần mềm độc hại, xóa dữ liệu vô tình, v.v. Khi điều này xảy ra, bạn sẽ mất quyền truy cập vào đĩa ảo của máy ảo.

May mắn thay, bạn có thể mở tệp VMDK bằng WinZip, Linux Reader hoặc VMware Workstation Player. Hãy tiếp tục đọc để tìm hiểu về các phương pháp khôi phục nội dung của các tệp đĩa ảo VMDK. Lưu ý rằng các phương pháp này chỉ áp dụng nếu đĩa ảo không bị mã hóa hoặc hỏng.

NAKIVO cho sao lưu VMware vSphere

NAKIVO cho sao lưu VMware vSphere

Bảo vệ dữ liệu toàn diện cho các máy ảo VMware vSphere và các tùy chọn khôi phục tức thì. Các điểm sao lưu an toàn tại chỗ, ngoài cơ sở và trên đám mây. Các tính năng chống ransomware.

Tệp VMDK là gì?

VMDK là định dạng tệp đĩa máy ảo, một định dạng mở do VMware phát triển. Định dạng đĩa ảo này có phần mở rộng tệp là . vmdk và được sử dụng bởi VMware và VirtualBox các máy ảo. Tuy nhiên, các máy ảo chạy trên máy chủ ESXi sử dụng định dạng đĩa ảo vmdk hơi khác một chút. Trên kho dữ liệu ESXi, tệp mô tả đĩa ảo và phần mở rộng đĩa ảo chứa dữ liệu thô của đĩa ảo là hai tệp riêng biệt.

Mẫu tên tệp mô tả đĩa ảo là diskname.vmdk và mẫu tên phần mở rộng đĩa ảo chứa toàn bộ dữ liệu thô là diskname-flat.vmdk . Đối với các đĩa ảo định dạng VMware Workstation, chúng được biểu diễn dưới dạng một tệp duy nhất diskname. vmdk (monolithic sparse), đây là tệp dữ liệu vùng chứa mô tả đĩa ảo được nhúng sẵn. Mô tả đĩa ảo định nghĩa cấu trúc của đĩa ảo, hình học đĩa ảo, phiên bản phần cứng ảo và các ID.

Tệp mô tả đĩa ảo

Mô tả đĩa ảo được biểu diễn dưới dạng văn bản thuần túy. Ở phía bên trái của ảnh chụp màn hình bên dưới, bạn có thể thấy mô tả đĩa ảo theo định dạng ESXi (một tệp vmdk có thể mở bằng bất kỳ trình soạn thảo văn bản nào). Ở phía bên phải của ảnh chụp màn hình, bạn có thể thấy dữ liệu của mô tả đĩa ảo được nhúng vào một tệp duy nhất vmdk theo định dạng VMware Workstation. Tệp vmdk có thể được mở bằng trình soạn thảo HEX.

Standalone descriptor in ESXi format vs. built-in descriptor in Workstation format

Như bạn có thể thấy, dữ liệu mô tả đĩa được nhúng được ghi vào tệp vmdk định dạng Workstation từ địa chỉ 0x200, đây là số byte đầu tiên. Nếu bạn chuyển đổi giá trị 200 HEX sang định dạng nhị phân và thập phân, bạn sẽ nhận được:

200 HEX = 1000000000 Nhị phân = 512 Thập phân

Điều này có nghĩa là nếu bạn muốn trích xuất mô tả đĩa nhúng từ tệp vmdk , bạn nên trích xuất một phần dữ liệu bắt đầu từ byte thứ 512. Bạn có thể tìm thêm thông tin về các tệp mô tả đĩa ảo VMware và tìm hiểu cách trích xuất, chỉnh sửa và nhập mô tả đĩa ảo nhúng trong bài đăng trên blog về chuyển đổi Chuyển đổi máy ảo VMware sang máy ảo Hyper-V.

Tệp dữ liệu đĩa ảo

Trong ảnh chụp màn hình bên dưới, hai tệp đĩa ảo được mở trong trình soạn thảo HEX. Cùng một hệ điều hành được cài đặt trên cả hai đĩa ảo (phân vùng đầu tiên dùng để cài đặt hệ điều hành đã được tạo và định dạng bằng công cụ quản lý đĩa tích hợp sẵn của Windows). Ở phía bên trái của ảnh chụp màn hình, tệp – flat. vmdk được hiển thị (định dạng ESXi). Dữ liệu thô được ghi bắt đầu từ địa chỉ 0x00000000 trên đĩa ảo này – flat. vmdk file. Ở phía bên phải của ảnh chụp màn hình, đĩa ảo định dạng Workstation được hiển thị, và cùng một dữ liệu được ghi từ 0x00150000 (byte số 5376), đây không phải là đầu của tệp vmdk .

Storing data in flat vmdk files of the ESXi format and sparse monolithic vmdk files of the Workstation format

Bây giờ, sau khi đã nắm vững lý thuyết, đã đến lúc thực hành. Trước khi tiếp tục, bạn nên sao lưu dữ liệu để phòng ngừa mọi hư hỏng có thể xảy ra với đĩa ảo. Hãy thực hiện các thao tác với đĩa của bạn dưới trách nhiệm và rủi ro của chính bạn.

2 Phương pháp mở tệp VMDK bằng cách khởi động máy ảo (VM)

Để mở tệp VMDK bằng cách khởi động các máy ảo (VM) hiện có, bạn cần cài đặt một trình ảo hóa như VMware ESXi, VMware Workstation, VMware Player hoặc Oracle VirtualBox trên máy tính vật lý của mình. Bạn có thể chọn phương pháp truyền thống bằng cách sử dụng đĩa DVD khởi động hoặc gắn tệp VMDK làm đĩa ảo.

Phương pháp 1: Sử dụng đĩa DVD khởi động ngay cả khi hệ điều hành trên máy ảo đã hỏng

Ý tưởng của phương pháp này là bạn có một máy ảo và có thể khởi động từ đĩa DVD. Hình ảnh đĩa ISO có thể được sử dụng như đĩa DVD được chèn vào ổ đĩa DVD ảo của máy ảo. Sau khi khởi động hệ điều hành từ đĩa DVD, bạn có thể gắn các phân vùng của đĩa ảo và sao chép tệp từ đĩa ảo sang ổ cứng USB được kết nối với máy ảo, sang máy chủ hoặc sang bất kỳ máy nào khác qua mạng. Một số bản phân phối Live DVD tự động gắn đĩa (phân vùng).

Đây là phương pháp truyền thống vì nguyên lý tương tự như sao chép tệp từ đĩa vật lý của máy tính vật lý khi hệ điều hành đã cài đặt không thể khởi động. Phương pháp này có thể được sử dụng để trích xuất dữ liệu từ các đĩa VMDK của các máy ảo (VM) đang chạy trên VMware ESXi và VMware Player/Workstation.

Lưu ý rằng hệ điều hành khởi động từ đĩa DVD Live phải nhận diện được hệ thống tệp của các phân vùng trên đĩa ảo mà bạn muốn truy cập. Ví dụ, Windows không thể làm việc với các hệ thống tệp Linux như EXT3, EXT4, ReiserFS, v.v., theo mặc định. Sử dụng các công cụ bổ sung trên Windows có thể giúp giải quyết vấn đề này. Ngược lại, các phiên bản Linux hiện đại hỗ trợ các hệ thống tệp của Windows như NTFS và FAT32, và đây chính là lý do bạn có thể sử dụng đĩa Live DVD dựa trên Linux để sao chép các tệp được lưu trữ trên các đĩa ảo của máy ảo Windows (VM) không thể khởi động.

Ví dụ: Mở tệp VMDK trên ESXi

Hãy xem xét một ví dụ về việc áp dụng phương pháp này: bạn có một máy ảo (VM) chạy Windows Server 2016 trên Máy chủ ESXi, và hệ điều hành trên VM không thể khởi động, nhưng bạn cần lấy các tệp được lưu trữ trên đĩa ảo VMDK. Trên đĩa ảo có hai phân vùng NTFS: phân vùng hệ thống khởi động và đĩa C. Trong ví dụ này, hình ảnh ISO cài đặt Ubuntu 18 chính thức được sử dụng. Phương tiện cài đặt Ubuntu có thể được sử dụng như đĩa DVD khởi động trực tiếp.

LƯU Ý: Quy trình làm việc cho các phiên bản mới hơn của các sản phẩm được đề cập trong bài viết này là tương tự. Bạn có thể sử dụng VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04, v.v., và áp dụng nguyên lý hoạt động được giải thích trong bài viết này.

  1. Tải hình ảnh ISO lên kho dữ liệu (datastore) mà máy chủ ESXi nơi máy ảo (VM) đang chạy có thể truy cập.
  2. Mở VMware vSphere Client, truy cập Hosts and Clusters, chọn máy ảo của bạn và nhấp vào Edit Settings.

    Editing settings of a VM to mount a vmdk file of the dead VM

  3. Trong cửa sổ cài đặt máy ảo, chuyển đến các tùy chọn CD/DVD drive . Chọn tùy chọn Datastore ISO File nếu bạn có tệp ISO cần thiết trên kho dữ liệu mà máy chủ ESXi có thể truy cập. Sau đó, đối với tùy chọn CD/DVD Media, nhấp vào Browse và chọn tệp ISO phù hợp trên kho dữ liệu. Tên tệp là ubuntu-18.04.1-desktop-amd64.iso trong trường hợp này.

    Inserting a bootable ISO image into a virtual optical drive to boot from DVD and access the contents of the VMDK file

  4. Khởi động máy ảo, khởi động từ hình ảnh ISO và chọn Try Ubuntu Without Installing. Sau khi Ubuntu khởi động từ đĩa DVD Live, mở cửa sổ terminal (Terminal).
  5. Nhận quyền root:

    sudo -i

  6. Danh sách các thiết bị ổ cứng có sẵn:

    ls -al /dev/sd*

    Có hai phân vùng – /dev/sda1 /dev/sda2

  7. Tạo các thư mục để sử dụng làm điểm gắn cho từng phân vùng:

    mkdir /mnt/win-disk1

    mkdir /mnt/win-disk2

  8. Gắn các phân vùng của đĩa ảo vào các thư mục tương ứng:

    mount /dev/sda1 /mnt/win-disk1/

    mount /dev/sda2 /mnt/win-disk2/

  9. Sau đó liệt kê các tệp và thư mục của các phân vùng đã gắn:

    ls -al /mnt/win-disk2/

    ls -al /mnt/win-disk1/

    Accessing files stored inside the VMDK file after booting from Ubuntu live DVD on a VM

    Như bạn có thể thấy trong ảnh chụp màn hình ở trên, phân vùng được gắn vào /mnt/win-disk2 là phân vùng được sử dụng làm ổ đĩa C: trong Windows.

  10. Bây giờ, bạn có thể gắn ổ cứng USB (HDD) vào cổng USB của máy chủ ESXi và kết nối ổ cứng này với máy ảo thông qua tính năng truyền qua USB. Bằng cách này, bạn có thể sao chép các tệp cần thiết được lưu trữ trong tệp VMDK được máy ảo sử dụng làm đĩa ảo. Một cách khác là sử dụng chia sẻ SMB (CIFS) và sao chép nội dung của đĩa ảo (tức là tệp VMDK) sang một vị trí khác qua mạng.

    Trong ví dụ này, chúng tôi giải thích cách sao chép dữ liệu vào một chia sẻ SMB. Chia sẻ SMB đã được tạo trên máy chủ có địa chỉ IP là 192.168.17.125 , tên chia sẻ là 192.168.17.125share , và user10 có quyền ghi cho chia sẻ này. Đừng quên rằng Linux, khác với Windows, sử dụng dấu gạch chéo phải khi kết nối với thư mục chia sẻ.

    Hãy gắn kết thư mục chia sẻ SMB (CIFS) trên hệ thống Linux được khởi động từ đĩa DVD trực tiếp. Đầu tiên, tạo một thư mục để sử dụng làm điểm gắn kết.

    mkdir /mnt/smb-share

  11. Sau đó, gắn kết thư mục chia sẻ SMB (CIFS) vào thư mục này:

    mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share

  12. Nhập mật khẩu của người dùng.
  13. Bây giờ, hệ thống Linux của bạn đã kết nối với chia sẻ SMB, và bạn có thể sao chép nội dung được lưu trữ bên trong tệp VMDK sang chia sẻ SMB qua mạng.

    Hãy chuyển đến thư mục mà chia sẻ SMB được gắn vào và sao chép tệp bootmgr từ phân vùng đã gắn của đĩa ảo (tệp VMDK trên kho dữ liệu ESXi) sang thư mục hiện tại (chia sẻ SMB).

    cd /mnt/smb-share

    cp /mnt/win-disk-2/bootmgr .

    Copying files from the mounted VMDK file to the mounted SMB share by using Ubuntu Live DVD on a VM

  14. Sau đó, hãy đảm bảo rằng các tệp cần thiết đã được sao chép và kiểm tra nội dung của chia sẻ SMB.

    ls -al /mnt/smb-share

    Như bạn có thể thấy trong ảnh chụp màn hình ở trên, tệp bootmgr được sử dụng trong ví dụ này đã được sao chép thành công. Bây giờ bạn đã biết phương pháp đầu tiên để sao chép nội dung của tệp VMDK sang một vị trí khác khi hệ điều hành được cài đặt trên máy ảo (VM) không thể khởi động. Logic sử dụng phương pháp này trên VMware Player hoặc VMware Workstation là giống nhau.

Phương pháp 2: Gắn tệp VMDK dưới dạng đĩa ảo vào một máy ảo đang hoạt động tốt (ESXi/Workstation/Player)

Phương pháp này tương tự như phương pháp trước, nhưng trong trường hợp này, đĩa ảo VMDK phải được gắn vào một máy ảo hiện có đang chạy hệ điều hành hoạt động bình thường. Bạn có thể gắn tệp VMDK dưới dạng đĩa ảo bổ sung vào một máy ảo hiện có đang chạy trên máy chủ ESXi, VMware Workstation và VMware Player. Nếu bạn muốn mở tệp VMDK của máy ảo ESXi trên VMware Workstation hoặc Player, bạn nên sao chép cả đĩa ảo và tệp mô tả của nó ( vmdk và – flat.vmdk ) vào một ổ đĩa vật lý mà máy tính của bạn có thể truy cập được, nơi đã cài đặt VMware Workstation hoặc Player. Nếu đã tạo bản sao lưu ( ảnh chụp nhanh ) cho máy ảo (VM) và sau đó có thay đổi trên các đĩa ảo của VM, đừng quên sao chép các tệp VMDK của đĩa ảo delta (differencing) bên cạnh các tệp VMDK gốc.

Hãy xem xét hai ví dụ:

Example 1: cách mở đĩa ảo VMDK của một VM bằng cách sử dụng một VM khác trên máy chủ ESXi (cả hai đều được đăng ký trên máy chủ ESXi)

Example 2: Cách trích xuất nội dung từ đĩa ảo VMDK của một máy ảo ESXi bằng cách gắn đĩa ảo đó vào một máy ảo định dạng VMware Workstation

Lưu ý rằng hệ điều hành đang hoạt động trên máy ảo đầu tiên (khỏe mạnh) phải tương thích với hệ thống tệp được sử dụng trên đĩa ảo của máy ảo thứ hai có hệ điều hành không thể khởi động (máy ảo mà tệp VMDK của nó bạn muốn gắn làm đĩa ảo bổ sung để trích xuất tệp).

Ví dụ 1: Gắn đĩa ảo vào một VM đang chạy trên ESXi

  1. Tắt nguồn VM đang sử dụng đĩa ảo mà bạn muốn trích xuất tệp.
  2. Tìm đĩa ảo này trong kho dữ liệu (datastore) của ESXi.
  3. Sao chép đĩa ảo sang một thư mục khác trên cùng kho dữ liệu hoặc sang một kho dữ liệu khác để tránh lỗi do khóa đĩa ảo gây ra. Trong ví dụ này, chúng tôi sẽ hướng dẫn cách mở tệp VMDK có tên là Win-test2.vmdk (đây là đĩa ảo của máy ảo Windows Win-test2 trong trường hợp của chúng tôi). Máy chủ ESXi được quản lý bởi vCenter. Nếu bạn sử dụng máy chủ ESXi độc lập mà không có vCenter, bạn có thể áp dụng logic được giải thích trong ví dụ này – sự khác biệt chỉ nằm ở giao diện người dùng.
  4. Mở VMware vSphere Client, truy cập Storage, và chọn kho dữ liệu (datastore) chứa tệp VMDK cần thiết. Chọn tệp VMDK và nhấp vào Copy to.

    LƯU Ý: Nếu bạn có máy chủ ESXi độc lập và không có vCenter, hãy mở VMware Host Client bằng cách nhập địa chỉ IP của máy chủ ESXi vào trình duyệt web, sau đó truy cập Storage > [Your datastore name] > Datastore Browser, chọn tệp VMDK của bạn và nhấp vào Copy. Chọn đích đến và nhấp vào nút Copy để xác nhận. Hãy nhớ rằng các đĩa ảo được hiển thị dưới dạng tệp VMDK trong giao diện web của VMware vSphere Client và VMware Host Client, nhưng một đĩa ảo bao gồm các tệp – flat.vmdk vmdk (một đĩa ảo và tệp mô tả của nó). Bạn cũng có thể mở trực tiếp giao diện điều khiển ESXi trên máy chủ hoặc kết nối qua SSH để sao chép các tệp này.

    Copying virtual disk and descriptor vmdk files on the ESXi datastore

  5. Trong cửa sổ vừa mở, hãy chọn vị trí đích. Bạn có thể sao chép tệp VMDK vào một vị trí trên cùng một kho dữ liệu hoặc sang một kho dữ liệu khác. Trong ví dụ này, chúng ta sẽ sao chép tệp VMDK vào thư mục gốc của cùng một kho dữ liệu. Cả hai tệp vmdk và – flat.vmdk đều được sao chép trong trường hợp này.

    Selecting destination to copy vmdk files

  6. Bây giờ bạn cần gắn đĩa ảo VMDK vào một máy ảo (VM) khác đang hoạt động bình thường và có hệ điều hành hoạt động đúng cách. Trong ví dụ này, một VM chạy Windows Server 2016 trên cùng một máy chủ ESXi được sử dụng (tên VM là WinServer2016 ). Đĩa ảo có thể được gắn vào VM này trong khi VM đang chạy. Trong vSphere Client, truy cập Hosts and Clusters, chọn máy ảo hoạt động bình thường, nhấp chuột phải vào máy ảo và chọn Edit Settings.

    Editing settings of the healthy VM for opening a virtual disk copy of the dead VM

  7. Trong cửa sổ hiện ra, nhấp vào Add New Device và chọn Existing Hard Disk.

    Adding a virtual disk to the healthy VM in vCenter

  8. Chọn bản sao tệp VMDK mà bạn đã tạo trước đó. Trong ví dụ hiện tại, bản sao của Win-test2.vmdk nằm trong thư mục gốc của kho dữ liệu đã được chọn.

    Opening a vmdk file by attaching a virtual disk to the ESXi VM

  9. Khởi động máy ảo (VM) đang hoạt động mà bạn đã gắn đĩa ảo cần quan tâm, nếu VM chưa được khởi động. Đĩa ảo sẽ được thêm vào ngay lập tức cho một VM Windows Server 2016 đang chạy.
  10. Trong hệ điều hành Windows khách, truy cập Computer Management > Disk Management (hoặc chạy diskmgmt.msc trong dòng lệnh) và tìm đĩa ảo đã được gắn. Theo mặc định, đĩa mới được gắn sẽ ở trạng thái ngoại tuyến. Nhấp chuột phải vào đĩa và chọn Online. Một ký tự ổ đĩa sẽ được gán tự động cho các phân vùng trên đĩa vừa thêm. Nếu một phân vùng chưa được gán ký tự ổ đĩa, hãy nhấp chuột phải vào phân vùng đó và chọn Change Drive Letter and Paths.

    A virtual disk is attached to the healthy Windows VM and a partition is mounted successfully

  11. Bây giờ bạn đã có quyền truy cập đầy đủ (đọc/ghi) vào các tệp và thư mục của đĩa ảo VMDK. Chỉ cần mở đĩa đã gắn vào trong Windows Explorer và sao chép nội dung cần thiết từ tệp VMDK đã gắn vào máy ảo đang hoạt động bình thường.

    Bạn cũng có thể xóa dữ liệu không cần thiết khỏi đĩa ảo VMDK được gắn (ví dụ: nếu có bất kỳ tệp nào do virus tạo ra), nhưng hãy cẩn thận và đừng làm hỏng đĩa ảo nếu có các bản chụp nhanh liên quan đến đĩa VMDK đã được gắn.
    Browse vmdk file contents in Windows Explorer after mounting

Ví dụ 2: Gắn đĩa ảo vào máy ảo (VM) đang chạy trên VMware Player hoặc Workstation
Ví dụ này tương tự như ví dụ trước, nhưng sử dụng máy ảo (VM) đang chạy trên VMware Workstation để mở các tệp VMDK của máy ảo ESXi. Phương pháp này có thể được sử dụng khi không có dung lượng đĩa trống trên kho dữ liệu (datastore) của ESXi để sao chép đĩa ảo, ví dụ. Đĩa ảo của máy ảo Win-test2 (
) được đề cập trong ví dụ trước sẽ được gắn vào một máy ảo VMware Workstation để trích xuất nội dung của nó.

  1. Trong VMware vSphere Client, truy cập Storage > [Your datastore name] > Files, chọn tệp VMDK của bạn và nhấp vào Download.

    Như bạn đã biết, một đĩa ảo định dạng ESXi bao gồm các tệp vmdk và – flat.vmdk . Bạn cần tải cả hai tệp này về máy tính nơi đã cài đặt VMware Workstation hoặc VMware Player. Khi tải đĩa ảo từ kho dữ liệu ESXi bằng VMware HTML5 vSphere Client, hai tệp này sẽ được nén thành một tệp zip duy nhất.

    Ngoài ra, bạn có thể kích hoạt quyền truy cập SSH vào máy chủ ESXi, truy cập vào thư mục kho dữ liệu và sao chép thủ công cả hai tệp đĩa ảo vào máy tính của mình bằng một trình khách SCP, ví dụ: WinSCP.

    LƯU Ý: Khi bạn tải xuống một cung cấp theo nhu cầu đĩa ảo từ kho dữ liệu ESXi sử dụng hệ thống tệp VMFS về máy tính của mình, bạn sẽ nhận được một tệp vmdk nhẹ và một tệp – flat.vmdk có kích thước bằng với kích thước được phân bổ tối đa của đĩa ảo (giống như khi bạn tải xuống một đĩa ảo được phân bổ dày). Điều này là do phân bổ mỏng có thể được coi là một Hệ thống tệp VMFS tính năng.

    Downloading vmdk virtual disk and descriptor file to open vmdk files in VMware Workstation

    Bây giờ bạn có thể thấy hai tệp của đĩa ảo định dạng ESXi đã được tải xuống trong một tệp ZIP. Kích thước của đĩa ảo được phân bổ mỏng trên kho dữ liệu VMFS hiện khoảng 2 GB (xem ảnh chụp màn hình ở trên), và kích thước của cùng một đĩa được tải xuống máy trạm khoảng 8 GB (xem ảnh chụp màn hình bên dưới).

  2. Giải nén hai tệp từ tệp lưu trữ. Theo mặc định, các tệp được giải nén vào thư mục Win-test2.vmdk , có tên giống với tên tệp lưu trữ nhưng không có phần mở rộng tệp.

    A downloaded zip archive that contains a virtual disk and descriptor vmdk files

  3. Đối với bước này, bạn cần có một máy ảo (VM) hoạt động bình thường với hệ điều hành đang chạy trên máy tính của mình, đồng thời đã cài đặt VMware Workstation hoặc Player. Trong khi ví dụ trước sử dụng máy ảo chạy Windows Server 2016, thì ví dụ này sẽ sử dụng một máy ảo hoạt động bình thường chạy Windows Server 2008.

    Mở VMware Workstation hoặc VMware Player, chọn máy ảo của bạn, và edit virtual machine settings.

    Editing VM settings in VMware Workstation to open vmdk files of the ESXi format

  4. Trong tab Hardware , nhấp vào nút Add .

    Adding a virtual disk of the ESXi format to a healthy VM in VMware Workstation

  5. Trong Trình hướng dẫn thêm phần cứng mở ra, chọn Hard disk làm loại phần cứng. Sau đó, chọn loại đĩa (bạn có thể giữ nguyên giá trị được đề xuất). Trên màn hình Chọn đĩa , chọn tùy chọn Use an existing virtual disk .

    How to attach a vmdk file to a VM in VMware Workstation

  6. Chọn tệp vmdk (không phải – flat.vmdk ) mà bạn đã giải nén từ tệp ZIP. Bạn có thể duyệt tìm tệp hoặc nhập đường dẫn đầy đủ đến tệp theo cách thủ công.

    Selecting the VMDK file to add the virtual disk to a VM

    Trong ví dụ này, chúng tôi sử dụng ESXi 6.5 và VMware Workstation 15. Máy ảo VMware Workstation chạy Windows Server 2008 trong ví dụ của chúng tôi có phiên bản phần cứng Workstation 12 (phiên bản máy ảo 12). Máy ảo ESXi mà chúng ta muốn gắn đĩa ảo có phiên bản máy ảo là 7.

  7. Chúng ta nhận được thông báo lỗi trong VMware Workstation cho biết đĩa ảo được sao chép từ máy chủ ESXi không tương thích với máy ảo này:

    A compatibility issue may occur when opening VMDK files

    Lỗi này có thể được khắc phục bằng cách chỉnh sửa tệp mô tả đĩa (tệp vmdk nhẹ trong trường hợp đĩa ảo của máy ảo ESXi). Mở tệp VMDK của bạn trong trình soạn thảo văn bản và chỉnh sửa số trong chuỗi Ddb.virtualHWVersion . Trong trường hợp của chúng tôi, số 13 được thay đổi thành 12.

    LƯU Ý: Hãy nhớ rằng đối với các đĩa ảo của máy ảo VMware Workstation, mô tả đĩa ảo được tích hợp sẵn trong tệp VMDK của đĩa ảo (không có tệp mô tả riêng biệt như đối với các đĩa ảo của máy ảo ESXi).

    Editing a virtual disk descriptor vmdk file

    Sau khi chỉnh sửa tệp, đĩa ảo đã được thêm thành công vào máy ảo hiện có.

  8. Bật nguồn máy ảo nếu nó chưa được bật nguồn.
  9. Mở Quản lý đĩa trong Windows, thay đổi trạng thái đĩa ảo thành trực tuyến, gán ký tự ổ đĩa cho phân vùng và duyệt các tệp.

    A vmdk virtual disk of the ESX format has been attached to a Windows VM

Cách trích xuất dữ liệu từ tệp VMDK mà không cần bật nguồn máy ảo

Các phương pháp không yêu cầu bạn cấu hình và bật nguồn máy ảo có những ưu điểm riêng. Một số phương pháp này không yêu cầu cài đặt trình ảo hóa. Bạn có thể gắn các tệp VMDK trực tiếp vào hệ điều hành máy chủ trong thời gian ngắn.

Method 1: Mounting VMDK files in a host OS with VMware Workstation

Phương pháp này yêu cầu cài đặt VMware Workstation trên hệ điều hành Windows hoặc Linux đang chạy trên máy tính vật lý của bạn. VMware Workstation cung cấp một tính năng hữu ích cho phép bạn gắn các tệp VMDK vào hệ điều hành máy chủ. Các đĩa ảo định dạng ESXi và đĩa delta liên quan đến ảnh chụp nhanh máy ảo (VM snapshot) đều được hỗ trợ. Tương tự như tất cả các phương pháp đã được đề cập trong bài viết này, hệ điều hành của bạn phải hỗ trợ các hệ thống tệp của phân vùng đĩa ảo.

Nếu bạn có các bản sao lưu của máy ảo, các đĩa ảo delta sẽ được tạo ra sau khi tạo mỗi bản sao lưu. Bạn cần có đĩa ảo gốc và các đĩa ảo delta sẵn sàng nếu muốn mở trạng thái đĩa ảo ngay sau khi tạo một bản sao lưu cụ thể. Trong trường hợp này, bạn nên gắn đĩa ảo delta phù hợp vào hệ điều hành chủ. Các phụ thuộc liên quan đến đĩa ảo cha sẽ được giải quyết tự động.

Nếu bạn có các bản sao lưu nhưng muốn mở đĩa ảo cha, hãy mở đĩa ảo cha ở chế độ chỉ đọc. Điều này là do việc thực hiện thay đổi trên đĩa ảo cha có thể làm hỏng các bản sao lưu hoặc các bản sao liên kết được tạo từ máy ảo cha sử dụng đĩa ảo cha đó. Chế độ chỉ đọc ngăn bạn ghi dữ liệu lên đĩa ảo sau khi gắn đĩa vào hệ điều hành chủ. Bạn có thể gắn tệp đĩa ảo VMDK nếu máy ảo sử dụng đĩa ảo này đang tắt nguồn, hoặc nếu một máy ảo cụ thể không sử dụng đĩa ảo này.

Hãy xem cách gắn đĩa ảo VMDK của máy ảo VMware Workstation có các bản sao lưu. Trên đĩa ảo của máy ảo này có cài đặt Windows trên một phân vùng NTFS. Sau khi tạo bản sao lưu đầu tiên, tệp Snapshot1.txt được tạo trong thư mục gốc của đĩa C: và, tương tự, sau khi tạo bản sao lưu thứ hai, tệp Snapshot2.txt được tạo tại đó. Ví dụ đầu tiên dành cho Linux, và ví dụ thứ hai dành cho Windows. Các tệp đĩa ảo của máy ảo Windows XP cũ được sử dụng trong ví dụ này.

Ví dụ 1: Gắn VMDK vào máy chủ Linux

  1. Mở VMware Workstation cho Linux và truy cập File > Mount Virtual Disks.

    How to mount vmdk files using VMware Workstation on a Linux host

  2. Nhấp vào Mount Disk, và một cửa sổ bật lên sẽ mở ra. Nhấp vào Browse và chọn tệp đĩa ảo VMDK.

    How to mount vmdk file as a virtual disk to a Linux host machine

  3. Hãy chọn tệp VMDK của đĩa ảo chênh lệch thứ hai được tạo sau khi chụp ảnh nhanh máy ảo lần thứ hai. Trong những trường hợp như vậy, tên tệp này sẽ có dạng VM_name-000002.vmdk (trong ví dụ này sử dụng tệp WinXP-test-000002.vmdk ).

    Selecting a vmdk file to mount as a virtual disk on the Linux host

  4. Tạo thư mục trên hệ thống tệp Linux của bạn để gắn đĩa ảo định dạng VMDK vào thư mục đó. Hãy tạo thư mục /mnt/vmdk/ trong giao diện dòng lệnh Linux.

    mkdir /mnt/vmdk/

  5. Đặt quyền truy cập cho người dùng của bạn (tên người dùng là user1 và là thành viên của group1 trong ví dụ này):

    chown -R user1:group1 /mnt/vmdk/

    chmod -R 0775 /mnt/vmdk/

  6. Bây giờ, chọn thư mục bạn đã tạo làm thư mục đích, đánh dấu vào ô “ Mount in read-only mode ” và nhấp vào Mount.

    Everything is ready to mount a VMDK virtual disk

  7. Bây giờ bạn có thể mở thư mục /mnt/vmdk/ trong trình quản lý tệp Linux của mình và duyệt các tệp và thư mục nằm trên đĩa ảo VMDK. Bạn có thể thấy các tệp Snapshot1.txt Snapshot2.txt , được tạo ra sau khi tạo bản sao lưu đầu tiên và thứ hai trong ví dụ này. Mỗi tệp trong số hai tệp này nằm trên một đĩa ảo VMDK delta riêng biệt.

    Browse vmdk file contents after mounting the image to the directory

  8. Đừng quên gỡ gắn đĩa ảo VMDK khỏi thư mục (điểm gắn) trên hệ thống Linux chủ của bạn khi bạn đã hoàn tất các thao tác với nội dung đĩa ảo.

    Unmount the vmdk image file from your host Linux file system when not in use

Nếu bạn thích sử dụng giao diện dòng lệnh, bạn có thể gắn hình ảnh đĩa VMDK trên hệ thống Linux chủ trong giao diện dòng lệnh bằng lệnh sau:

vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk

Trong đó:

vm_name là tên của máy ảo, trùng với tên thư mục VM trong trường hợp này. WinXP-test là tên máy ảo trong ví dụ của chúng tôi.

vm_disk_name là tên của đĩa ảo ( WinXP-test.vmdk được sử dụng trong ví dụ này).

vm_disk_name-000001.vmdk là tên của đĩa delta (so sánh) đầu tiên được tạo sau khi chụp ảnh nhanh máy ảo lần đầu tiên ( WinXP-test-000001.vmdk trong trường hợp này).

vm_disk_name-000002.vmdk là tên của đĩa delta thứ hai được tạo sau khi chụp ảnh chụp nhanh VM thứ hai tương ứng ( WinXP-test-000002.vmdk trong trường hợp này).

  1. Gắn đĩa ảo. Theo mặc định, đĩa ảo được gắn ở chế độ đọc/ghi. Bạn có thể sử dụng khóa -r trong dòng lệnh để gắn đĩa ở chế độ chỉ đọc.

    vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk

  2. Liệt kê tất cả các đĩa ảo VMDK đã được gắn:

    vmware-mount -L

  3. Trước khi kết thúc việc làm việc với các đĩa ảo VMDK đã được gắn, hãy tháo gắn tất cả các đĩa ảo:

    vmware-mount -x

Ví dụ 2: Cách gắn đĩa VMDK trên máy chủ Windows

Cách thức gắn các tệp VMDK trong Windows cũng tương tự. Ngoài tùy chọn File > Map Virtual Disks trong giao diện người dùng đồ họa (GUI) của VMware Workstation, bạn có thể thực hiện theo các bước dưới đây. Hãy gắn tệp VMDK của đĩa ảo chênh lệch đầu tiên được tạo sau khi chụp ảnh nhanh (snapshot) máy ảo (VM) đầu tiên. Tên của tệp VMDK này có định dạng sau: VM_name-000001.vmdk ( WinXP-test-000001.vmdk được mở trong hướng dẫn này).

  1. Nhấp chuột phải vào tệp VMDK trong Windows Explorer và chọn Map Virtual Disk.

    An easy method to map a vmdk virtual disk in Windows

  2. Chọn các thông số để gắn tệp VMDK. Nên mở tệp VMDK ở chế độ chỉ đọc để tránh gây hư hỏng cho các đĩa ảo thuộc chuỗi bản sao sau khi ghi dữ liệu. Ký tự ổ đĩa mặc định là Z: trong trường hợp này, và ổ đĩa sẽ tự động mở trong Windows Explorer sau khi gắn nếu hộp kiểm tương ứng được chọn. Nhấp vào OK để tiếp tục.

    How to open vmdk by mapping a virtual disk in Windows

  3. Bây giờ đĩa ảo đã được gắn vào ổ Z: trong Windows, và bạn có thể xem nội dung tệp VMDK. Trong hình ảnh minh họa bên dưới, bạn có thể thấy tệp Snapshot1.txt được tạo ra sau khi tạo bản sao lưu đầu tiên. Tệp Snapshot2.txt không có vì nó được tạo sau khi chụp ảnh chụp nhanh thứ hai của máy ảo, và chúng ta đã mở đĩa ảo delta liên quan đến ảnh chụp nhanh đầu tiên của máy ảo.

    Browse vmdk file contents in Windows Explorer after mounting a vmdk file

  4. Khi bạn đã hoàn tất việc làm việc với đĩa ảo VMDK đã được gắn, đừng quên ngắt kết nối đĩa. Nhấp chuột phải vào tệp VMDK tương ứng và sau đó nhấp vào Disconnect Virtual Disk. Sau khi ngắt kết nối đĩa ảo, bạn có thể khởi động máy ảo sử dụng đĩa ảo này.

    Disconnecting a virtual disk vmdk file from a Windows host OS

Phương pháp 2: Sử dụng 7-zip để trích xuất nội dung từ tệp VMDK

Nếu bạn đang tìm cách mở tệp VMDK mà không cần chạy máy ảo, bạn có thể cài đặt 7-zip và trích xuất nội dung từ hình ảnh đĩa ảo. 7-zip là một công cụ miễn phí dùng để nén tệp và giải nén tệp từ các tệp nén và hình ảnh khác. Bạn có thể sử dụng 7-zip như một công cụ trích xuất VMDK. Công cụ này có thể được sử dụng trên các máy tính chạy Linux và Windows. 7-zip có thể mở các tệp vmdk và – flat.vmdk (tiện ích này có thể mở một tệp duy nhất – flat.vmdk nếu tệp mô tả vmdk bị thiếu) – 7-zip thực tế dành cho các đĩa ảo định dạng ESXi. 7-zip không thể mở các tệp VMDK delta được tạo sau khi chụp ảnh nhanh máy ảo.

How to open VMDK files with 7-zip on Linux

  1. Cài đặt gói đầy đủ của 7-zip trên máy Linux của bạn. Ubuntu được sử dụng trong ví dụ này.

    apt-get install p7zip-full

  2. Danh sách nội dung của tệp vmdk bằng 7-zip:

    7z l vm_name.vmdk

  3. Hãy tìm các tệp có chứa “ boot .” trong tên của chúng, ví dụ:

    7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]

    Trong đó user1 là tên người dùng Linux của chúng ta, l – danh sách.

    Using 7-zip as a vmdk extractor in Linux

  4. Hãy trích xuất (e) tệp boot.ini từ hình ảnh VMDK:

    7z e /media/user1/vms/WinXP-test/WinXP-test.vmdk boot.ini

    Bạn có thể trích xuất các tệp và thư mục khác từ tệp VMDK theo cách tương tự.

How to open VMDK files with 7-zip on Windows

  1. Tải xuống phiên bản tương thích của 7-zip từ trang web chính thức và cài đặt ứng dụng trên máy tính Windows của bạn. Sử dụng trình cài đặt EXE để thuận tiện hơn.
  2. Sau khi cài đặt 7-zip trên Windows, các tùy chọn mới của 7-zip sẽ được thêm vào menu ngữ cảnh khi bạn nhấp chuột phải vào bất kỳ tệp hoặc thư mục nào trong Windows Explorer (xem ảnh chụp màn hình bên dưới). Sử dụng các tùy chọn này để mở tệp VMDK dưới dạng tệp lưu trữ hoặc giải nén tệp ngay lập tức.

    Opening a vmdk file in 7zip to browse vmdk file contents in Windows

  3. Trong hình ảnh minh họa bên dưới, nội dung của tệp độc lập Win-test2-flat.vmdk được hiển thị trong giao diện người dùng (GUI) của 7-Zip trên Windows. Bạn có thể giải nén nội dung VMDK mà bạn cần.

    You can browse vmdk file contents by opening a file in 7-zip in Windows

Cách gắn tệp VMDK trong Linux (Các phương pháp khác)

Một trong những khả năng mạnh mẽ nhất của Linux là khả năng thực hiện số lượng lớn các thao tác trên giao diện dòng lệnh, ngay cả với các công cụ tích hợp sẵn. Các công cụ này sẽ giúp bạn gắn tệp VMDK và truy cập nội dung được lưu trữ trên đĩa ảo. Ubuntu Linux được sử dụng trong các ví dụ được cung cấp.

Method 1: How to mount VMDK files by using /dev/loop

Thiết bị vòng lặp (Loop devices) là các thiết bị ảo trong Linux, cho phép truy cập tệp dưới dạng thiết bị khối và có thể được sử dụng để gắn hình ảnh đĩa chứa hệ thống tệp. Thiết bị vòng lặp được đặt tên là /dev/loopX trong đó X là số thứ tự của thiết bị vòng lặp. Phương pháp này rất hữu ích để gắn – flat.vmdk các tệp, ngay cả khi không có mô tả đĩa ảo.

Hãy cùng tìm hiểu cách gắn tệp VMDK trong Linux để truy cập các tệp trên đĩa ảo làm ví dụ. Có một đĩa ảo định dạng ESXi chứa một phân vùng – tệp mô tả bị thiếu. Cách đây rất lâu, Windows XP đã được cài đặt trên đĩa ảo đó.

  1. Sử dụng một trong hai lệnh sau để kiểm tra số lượng thiết bị vòng lặp hiện có trên hệ thống Linux của bạn.

    fdisk -l | grep /dev/loop

    df -h | grep /dev/loop

  2. Trong trường hợp của chúng ta, các thiết bị có số từ 1 đến 21 đã tồn tại (/dev/loop1 /dev/loop21 ). Do đó, hãy tạo thiết bị vòng lặp số 30 – số này còn trống. Chúng ta sẽ liên kết thiết bị này với tệp – flat.vmdk .

    losetup /dev/loop30 /vms/Win-test2-flat.vmdk

  3. Đặt độ lệch:

    losetup -o 32256 /dev/loop31 /dev/loop30

    Trong đó 32256 là độ lệch tương ứng với 63*512 cho đĩa được định dạng trong Windows XP/Server 2003 và các phiên bản Windows cũ hơn (63 là số thứ tự của sector đầu tiên trong phân vùng, và 512 byte là kích thước sector). Đối với Windows 7/Server 2008 và các phiên bản Windows mới hơn, hãy thử độ lệch 105906176.

    Bạn có thể lấy thông tin về kích thước sector và sector đầu tiên được sử dụng để khởi động bằng lệnh:

    fdisk -l /dev/loop30 /vms/Win-test2-flat.vmdk

    How to mount vmdk files in Linux without having a hypervisor installed

    Ngoài ra, đối với các đĩa ảo chứa nhiều phân vùng, bạn có thể sử dụng parted để xác định điểm bắt đầu và kết thúc của từng phân vùng:

    parted /dev/loop30

    Trong giao diện dòng lệnh parted tại , nhập các lệnh sau:

    unit

    B

    print

    Checking information about a vmdk virtual disk and its partitions

  4. Tạo một thư mục để sử dụng làm điểm gắn cho hình ảnh VMDK:

    mkdir /mnt/vmdk-image

  5. Gắn thiết bị loopback liên quan đến hình ảnh VMDK vào thư mục đã tạo:

    mount /dev/loop31 /mnt/vmdk-image

  6. Liệt kê nội dung của hình ảnh đã gắn:

    ls -al /mnt/vmdk-image

  7. Sau khi hoàn tất việc làm việc với nội dung của đĩa ảo, hãy tháo gắn hình ảnh VMDK và ngắt kết nối thiết bị loop:

    umount /mnt/vmdk-image

    losetup -d /dev/loop31

    Using a loopback pseudo-device to mount vmdk virtual disk images in Linux

Phương pháp 2: Cách gắn tệp VMDK bằng kpartx

Kpartx là một công cụ có thể gắn các phân vùng trong tệp hình ảnh vào các thư mục của hệ thống tệp Linux thực tế của bạn. Công cụ này có thể được sử dụng để thiết lập ánh xạ thiết bị cho các phân vùng của thiết bị khối. Phương pháp này cũng hoạt động để gắn các hình ảnh – flat.vmdk được sử dụng trên máy chủ ESXi. Hãy xem cách gắn tệp – flat.vmdk được sử dụng trong ví dụ trước.

  1. Cài đặt kpartx:

    apt-get install kpartx

  2. Thêm ánh xạ phân vùng cho hình ảnh VMDK trong chế độ hoạt động chi tiết:

    kpartx -av /vms/Win-test2-flat.vmdk

  3. Gắn phân vùng vào thư mục /mnt/vmdk-image đã chuẩn bị trước đó:

    mount /dev/mapper/loop30p1 /mnt/vmdk-image/

    Trong đó loop30 là số thứ tự của thiết bị vòng lặp, và p1 là số thứ tự của phân vùng bên trong hình ảnh (phân vùng đầu tiên trên hình ảnh đĩa).

  4. Liệt kê nội dung của phân vùng đĩa ảo mà bạn đã gắn:

    ls -al /mnt/vmdk-image/

    Using kpartx to mount vmdk images in Linux

  5. Khi đã hoàn tất các thao tác với các tệp trong hình ảnh VMDK, hãy tháo gắn hình ảnh đĩa ảo VMDK:

    umount /mnt/vmdk-image

    kpartx -d /vms/Win-test2-flat.vmdk

Kết luận

Việc nắm vững nhiều phương pháp trích xuất nội dung VMDK mang lại sự linh hoạt và độ tin cậy, vì mỗi phương pháp có thể là lựa chọn tối ưu trong các tình huống cụ thể. Hơn nữa, việc sao lưu các máy ảo (VM) của bạn bên cạnh kiến thức này là điều còn tốt hơn nữa.

NAKIVO Backup & Replication có thể sao lưu và khôi phục các máy ảo đang chạy trên VMware vSphere một cách tối ưu. Bạn có thể khôi phục toàn bộ máy ảo, đĩa ảo cụ thể hoặc các tệp riêng lẻ từ bản sao lưu đến một vị trí tùy chỉnh.

Hãy thử NAKIVO Backup & Replication

Hãy thử NAKIVO Backup & Replication

Đăng ký dùng thử miễn phí để khám phá toàn bộ các tính năng bảo vệ dữ liệu của giải pháp. Dùng thử miễn phí trong 15 ngày. Không có bất kỳ giới hạn nào về tính năng hay dung lượng. Không cần thẻ tín dụng.

People also read