Как открыть файлы VMDK в VMware и извлечь данные

Понимание того, как открыть файлы VMDK и извлечь содержимое из них, полезно, когда вы сталкиваетесь с проблемой виртуальной машины. Вы можете обнаружить, что ВМ не могут быть запущены после проблем с установкой приложений, обновлением ОС, атаками вредоносного ПО, случайным удалением данных и т. д. Когда это происходит, вы теряете доступ к виртуальному диску ВМ.

К счастью, вы можете открыть файлы VMDK с помощью WinZip, Linux Reader или VMware Workstation Player. Продолжайте читать, чтобы узнать о методах восстановления содержимого виртуальных дисковых файлов VMDK. Обратите внимание, что эти методы применимы только в том случае, если виртуальный диск не зашифрован или поврежден.

Что такое файл VMDK?

VMDK – это формат файла виртуального диска виртуальной машины, который является открытым форматом, разработанным VMware. Этот формат виртуального диска имеет расширение .vmdk для файлов и используется виртуальными машинами VMware и VirtualBox. Однако виртуальные машины, находящиеся на серверах ESXi, используют немного другой формат виртуальных дисков vmdk. На хранилище ESXi дескриптор виртуального диска и область виртуального диска, содержащая сырые данные виртуального диска, представлены двумя отдельными файлами.

Шаблон имени дескриптора виртуального диска – diskname.vmdk, а шаблон имени расширения виртуального диска, который содержит все сырые данные – diskname-flat.vmdk. Что касается виртуальных дисков формата VMware Workstation, они представлены в виде единственного файла diskname.vmdk (монолитный разреженный), который является файлом данных разрешения, содержащим внедренный виртуальный дескриптор диска. Виртуальный дескриптор диска определяет структуру виртуального диска, геометрию виртуального диска, версию виртуального оборудования и идентификаторы.

Файл виртуального дескриптора диска

A virtual disk descriptor is represented as plain text. On the left side of the screenshot below, you can see a virtual disk descriptor of the ESXi format (a vmdk file that can be opened with any text editor). On the right side of the screenshot, you can see the data of the virtual disk descriptor that is embedded into a single vmdk file of the VMware Workstation format. The vmdk file can be opened in a HEX editor.

Как видите, встроенные данные дескриптора диска записываются в монолитный файл vmdk формата Workstation с адреса 0x200, который является номером первого байта. Если преобразовать значение 200 HEX в двоичный и десятичный форматы, получится:

200 HEX = 1000000000 Binary = 512 Decimal

Это означает, что если вы хотите извлечь встроенный дескриптор из файла vmdk, вы должны извлечь часть данных, начиная с 512-го байта. Вы можете найти больше информации о файлах виртуального дескриптора диска VMware и узнать, как извлекать, редактировать и импортировать встроенный виртуальный дескриптор диска в статье на блоге о преобразовании ВМ VMware в ВМ Hyper-V.

Файл данных виртуального диска

На снимке экрана ниже открыты два файла виртуальных дисков в HEX-редакторе. На обоих виртуальных дисках установлена одна и та же операционная система (первый раздел, используемый для установки ОС, был создан и отформатирован с помощью встроенной утилиты диска Windows). На левой стороне снимка экрана отображается файл – flat.vmdk (формат ESXi). Сырые данные записаны с 0x00000000 на этом виртуальном диске – flat.vmdk файле. На правой стороне снимка экрана отображается виртуальный диск формата Workstation, и те же данные записаны с 0x00150000 (байт номер 5376), что не является началом vmdk файла.

Теперь, ознакомившись с теорией, пришло время для практической части. Прежде чем продолжить, рекомендуется создать резервную копию ваших данных, чтобы избежать возможного повреждения виртуального диска. Операции с вашими дисками выполняйте на свой страх и риск.

2 метода открытия файлов VMDK при включении ВМ

Чтобы открыть файлы VMDK, включив существующие ВМ, вам нужен гипервизор, такой как VMware ESXi, VMware Workstation, VMware Player или Oracle VirtualBox, установленный на вашем физическом компьютере. Вы можете воспользоваться классическим методом, используя загрузочный DVD или монтируя файл VMDK как виртуальный диск.

Метод 1: Использование загрузочного DVD, даже если ОС на ВМ мертва

Идея этого метода заключается в том, что у вас есть виртуальная машина (VM), с которой можно загрузиться с DVD-диска. Образ ISO диска можно использовать как DVD-диск, вставленный в виртуальный DVD-привод VM. После загрузки операционной системы с DVD-носителя вы можете подключить разделы вашего виртуального диска и скопировать файлы с виртуального диска на USB-жесткий диск, подключенный к VM или к вашему хост-компьютеру, или к любому другому компьютеру через сеть. Некоторые дистрибутивы Live DVD автоматически монтируют диски (разделы).

Это устаревший метод, потому что принцип аналогичен копированию файлов с физических дисков физических компьютеров, когда установленная операционная система не может загрузиться. Этот метод можно использовать для извлечения данных из дисков VMDK виртуальных машин, работающих на VMware ESXi и VMware Player/Workstation.

Обратите внимание, что операционная система, загруженная с Live DVD, должна распознавать файловые системы разделов вашего виртуального диска, файлы которого вы хотите получить доступ. Например, Windows не может работать с файловыми системами Linux, такими как EXT3, EXT4, ReiserFS и т. д., По умолчанию. Использование дополнительных инструментов в Windows может помочь в решении этой проблемы. В свою очередь, современный Linux распознает файловые системы Windows, такие как NTFS и FAT32, и поэтому вы можете использовать диски Live DVD на основе Linux для копирования файлов, хранящихся на виртуальных дисках, используемых вашей Windows-виртуальной машиной, которая не может загрузиться.

Пример: Открытие файлов VMDK на ESXi

HOстом ESXi

Примечание: Для новых версий рассматриваемых в этом посте продуктов применяется такой же workflow. Вы можете использовать VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04 и т.д., и использовать принцип работы, объясненный в этой статье.

  1. ISO-образ установочного диска Ubuntu 18 необходимо загрузить на датастор, доступный для HOста ESXi, на котором размещена виртуальная машина.
  2. Откройте VMware vSphere Client, перейдите в Хосты и кластеры, выберите вашу виртуальную машину и нажмите Изменить настройки.

  3. В окне настроек виртуальной машины перейдите в параметры CD/DVD привода. Выберите опцию Файл ISO на хранилище данных, если у вас есть необходимый файл ISO на хранилище данных, доступное для ESXi-хоста. Затем для опции CD/DVD медиа нажмите Обзор и выберите соответствующий файл ISO на хранилище данных. В данном случае имя файла ubuntu-18.04.1-desktop-amd64.iso.

  4. Запустите виртуальную машину, загрузитесь с образа ISO и выберите “Попробовать Ubuntu без установки”. После загрузки Ubuntu с живого DVD-носителя откройте консоль (терминал).
  5. Получите привилегии root:

    sudo -i

  6. Просмотрите доступные устройства жесткого диска:

    ls -al /dev/sd*

    Есть два раздела – /dev/sda1 и /dev/sda2

  7. Создайте каталоги, которые будут использоваться в качестве точек монтирования для каждого раздела:

    mkdir /mnt/win-disk1

    mkdir /mnt/win-disk2

  8. Примонтируйте разделы виртуального диска к соответствующим каталогам:

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

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

  9. Затем выведите список файлов и каталогов смонтированных разделов:

    ls -al /mnt/win-disk2/

    ls -al /mnt/win-disk1/

    Как видно на скриншоте выше, раздел, смонтированный в /mnt/win-disk2, это раздел, используемый как диск C: в Windows.

  10. Теперь вы можете подключить жесткий диск (HDD) через USB-порт вашего хоста ESXi и подключить этот HDD к виртуальной машине с функцией USB-прохода. Таким образом, вы можете скопировать необходимые файлы, хранящиеся на файле VMDK, используемом в качестве виртуального диска виртуальной машины. Другой способ – использовать SMB (CIFS) общий ресурс и скопировать содержимое виртуального диска (то есть файл VMDK) в другое место через сеть.

    В этом примере мы объясняем копирование данных на SMB-ресурс. SMB-ресурс был создан на хосте с IP-адресом 192.168.17.125, имя ресурса – \\192.168.17.125\share, и у пользователя10 есть права на запись для этого ресурса. Не забывайте, что Linux, в отличие от Windows, использует правую косую черту при подключении к ресурсу.

    Давайте примонтируем SMB (CIFS) ресурс на Linux, загруженном с загрузочного DVD. Сначала создайте каталог, который будет использоваться в качестве точки монтирования.

    mkdir /mnt/smb-share

  11. Затем примонтируйте SMB (CIFS) ресурс в этот каталог:

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

  12. Введите пароль пользователя.
  13. Теперь ваша система Linux подключена к SMB-шаре, и вы можете скопировать содержимое, хранящееся в файле VMDK, на SMB-шару по сети.

    Перейдем в каталог, к которому подключен SMB-шара, и скопируем файл bootmgr с примонтированного раздела виртуального диска (файла VMDK на хранилище данных ESXi) в текущий каталог (SMB-шару).

    cd /mnt/smb-share

    cp /mnt/win-disk-2/bootmgr

  14. ls -al /mnt/smb-share

    Как вы можете видеть на скриншоте выше, файл bootmgr, использованный в этом примере, был успешно скопирован. Теперь вы знаете первый метод копирования содержимого файла VMDK в другое местоположение, когда операционная система, установленная на виртуальной машине, не может загрузиться. Логика использования этого метода в VMware Player или VMware Workstation такая же.

Метод 2: Подключение файла VMDK как виртуального диска к рабочей виртуальной машине (ESXi/Workstation/Player)

Этот метод аналогичен предыдущему, но в этом случае виртуальный диск VMDK должен быть подключен к существующей виртуальной машине, у которой есть функционирующая операционная система. Вы можете подключить файл VMDK как дополнительный виртуальный диск к существующей виртуальной машине, работающей на хосте ESXi, VMware Workstation и VMware Player.

Если вы хотите открыть файл VMDK виртуальной машины ESXi на VMware Workstation или Player, вам следует скопировать как виртуальный диск, так и его дескрипторные файлы (vmdk и –flat.vmdk) на физический диск, доступный вашему компьютеру, где установлен VMware Workstation или Player. Если для ВМ были созданы снимки, и после этого вносились изменения в диски ВМ, не забудьте скопировать файлы VMDK для дельт (разностных) виртуальных дисков в дополнение к родительским файлам VMDK.

Рассмотрим два примера:

Пример 1: как открыть виртуальный диск VMDK одной ВМ, используя другую ВМ на хосте ESXi (обе зарегистрированы на хосте ESXi)

Пример 2: как извлечь содержимое из виртуального диска VMDK ВМ ESXi, присоединив виртуальный диск к ВМ формата VMware Workstation

Имейте в виду, что функционирующая операционная система на первой (здоровой) ВМ должна быть совместима с файловыми системами, используемыми на виртуальном диске второй ВМ, у которой нет загрузочной операционной системы (ВМ, файл VMDK которой вы хотите присоединить в качестве дополнительного виртуального диска для извлечения файлов).

Пример 1: Подключение виртуального диска к ВМ, работающей на ESXi

  1. Выключите ВМ, использующую виртуальный диск, из которого вы хотите извлечь файлы.
  2. Найдите этот виртуальный диск в хранилище данных ESXi.
  3. Скопируйте виртуальный диск в другой каталог на том же хранилище или на другое хранилище, чтобы предотвратить ошибку, вызванную блокировкой виртуального диска. В нашем примере мы покажем, как открыть файл VMDK с именем Win-test2.vmdk (это виртуальный диск виртуальной машины Windows Win-test2 в нашем случае). Хост ESXi управляется vCenter. Если вы используете автономный хост ESXi без vCenter, вы можете использовать логику, объясненную в этом примере – различия только в пользовательском интерфейсе.
  4. Откройте VMware vSphere Client, перейдите в раздел Хранилище, и выберите хранилище, в котором находится необходимый файл VMDK. Выберите файл VMDK и нажмите Копировать в.

    ПРИМЕЧАНИЕ: Если у вас есть автономный хост ESXi и нет vCenter, откройте клиент VMware Host, введя IP-адрес вашего хоста ESXi в веб-браузер, затем перейдите в раздел Хранилище > [Имя вашего хранилища] > Обозреватель хранилища, выберите ваш файл VMDK и нажмите Копировать. Выберите место назначения и нажмите кнопку Копировать, чтобы подтвердить. Помните, что виртуальные диски отображаются как файлы VMDK в веб-интерфейсе клиента VMware vSphere и клиента VMware Host, но виртуальный диск состоит из файлов – flat.vmdk и vmdk (виртуальный диск и его дескриптор). Вы также можете открыть консоль ESXi напрямую на сервере или подключиться через SSH для копирования файлов.

  5. В открывшемся окне выберите место назначения. Вы можете скопировать файл VMDK в некоторое место на том же хранилище данных или на другое хранилище данных. Для этой демонстрации давайте скопируем файл VMDK в корневой каталог того же хранилища данных. В этом случае будут скопированы оба файла vmdk и –flat.vmdk.

  6. Теперь вам нужно подключить виртуальный диск VMDK к другой здоровой виртуальной машине, операционная система которой работает нормально. В этом примере используется виртуальная машина с установленной Windows Server 2016 на том же хосте ESXi (имя виртуальной машины – WinServer2016). Виртуальный диск можно подключить к этой здоровой виртуальной машине, пока она работает. В клиенте vSphere перейдите в Хосты и кластеры, выберите здоровую виртуальную машину, щелкните правой кнопкой мыши на виртуальной машине и выберите Изменить параметры.

  7. В открывшемся окне нажмите Добавить новое устройство и выберите Существующий жесткий диск.

  8. Выберите копию вашего файла VMDK, которую вы ранее создали. В текущем примере выбрана копия файла Win-test2.vmdk, расположенная в корневом каталоге хранилища данных.

  9. Включите здоровую виртуальную машину, к которой вы подключили интересующий вас виртуальный диск, если она еще не включена. Виртуальный диск добавляется на лету для работающей виртуальной машины Windows Server 2016.
  10. В гостевой ОС Windows перейдите в Управление компьютером > Диспетчер дисков (или выполните diskmgmt.msc в командной строке) и найдите подключенный виртуальный диск. По умолчанию, новый подключенный диск находится в офлайне. Щелкните правой кнопкой мыши на диске и выберите Включить. Для разделов на добавленном диске должна быть автоматически назначена буква диска. Если буква диска не назначена для раздела, щелкните правой кнопкой мыши на разделе и выберите Изменить букву диска и пути.

  11. Теперь у вас есть полный (чтение/запись) доступ к файлам и каталогам виртуального диска VMDK. Просто откройте подключенный диск в Проводнике Windows и скопируйте необходимое содержимое файла VMDK, подключенного к здоровой ВМ. Вы также можете удалить ненужные данные с подключенного виртуального диска VMDK (например, если есть файлы, созданные вирусами), но будьте осторожны и не повреждайте виртуальный диск, если есть связанные снимки для подключенного диска VMDK.

Пример 2: Подключение виртуального диска к ВМ, работающей на VMware Player или Workstation

Этот пример аналогичен предыдущему, но для открытия файлов VMDK ВМ используется ВМ, работающая на VMware Workstation. Этот метод можно использовать, когда на хранилище данных ESXi нет свободного дискового пространства для копирования виртуального диска, например. Виртуальный диск ВМ Win-test2, упомянутый в предыдущем примере, будет подключен к ВМ VMware Workstation для извлечения его содержимого.

  1. В клиенте VMware vSphere перейдите к Хранилище>[Имя вашего хранилища данных]>Файлы, выберите ваш файл VMDK и нажмите Скачать.

    Как вы помните, виртуальный диск формата ESXi состоит из файлов vmdk и –flat.vmdk. Вам необходимо загрузить оба файла на ваш компьютер, где установлен VMware Workstation или VMware Player. При загрузке виртуального диска с хранилища данных ESXi с помощью клиента VMware HTML5 vSphere эти два файла упаковываются в один zip-архив.

    Как альтернативу, вы можете включить доступ по SSH к вашему хосту ESXi, перейти в каталог хранилища данных и скопировать оба файла виртуального диска на ваш компьютер вручную, используя SCP-клиент, например, WinSCP.

    ПРИМЕЧАНИЕ: При загрузке тонко-провижионированного виртуального диска с хранилища данных ESXi, на котором используется файловая система VMFS, на ваш компьютер вы получите легкий файл vmdk и файл –flat.vmdk, размер которого будет равен максимальному размеру провижионированного виртуального диска (как если бы вы загружали толстый провижионированный виртуальный диск). Это связано с тем, что тонкое провижионирование можно рассматривать как особенность файловой системы VMFS.

    Теперь вы видите два файла виртуального диска формата ESXi, которые были загружены в ZIP-архиве. Размер тонко-провижионированного виртуального диска на хранилище данных VMFS составляет около 2 ГБ (см. скриншот выше), а размер этого же диска, загруженного на компьютер, составляет около 8 ГБ (см. скриншот ниже).

  2. Разархивируйте два файла из архива. По умолчанию файлы извлекаются в каталог Win-test2.vmdk, имя которого совпадает с именем архива, но без расширения файла.

  3. Для этого шага у вас должна быть здоровая виртуальная машина с функциональной операционной системой на вашем компьютере с установленным VMware Workstation или Player. В предыдущем примере использовалась виртуальная машина с установленной Windows Server 2016, в этом примере используется здоровая виртуальная машина с установленной Windows Server 2008.

    Откройте VMware Workstation или VMware Player, выберите вашу здоровую виртуальную машину и измените настройки виртуальной машины.

  4. На вкладке Аппаратное обеспечение нажмите кнопку Добавить.

  5. В Мастере добавления оборудования, который открывается, выберите Жесткий диск как тип оборудования. Затем выберите тип диска (можете оставить рекомендуемое значение). На экране Выбор диска выберите опцию Использовать существующий виртуальный диск.

  6. Выберите файл vmdk (не – flat.vmdk), который вы извлекли из ZIP-архива. Вы можете просмотреть файл или ввести полный путь к файлу вручную.

    В этом примере используются ESXi 6.5 и VMware Workstation 15. Виртуальная машина VMware Workstation, работающая под управлением Windows Server 2008 в нашем примере, имеет версию оборудования Workstation 12 (версию виртуальной машины 12). Виртуальная машина ESXi, виртуальный диск которой мы хотим подключить, имеет версию виртуальной машины 7.

  7. Мы получаем сообщение об ошибке в VMware Workstation, говорящее, что виртуальный диск, скопированный с хоста ESXi, несовместим с этой виртуальной машиной:

    Эту ошибку можно исправить, отредактировав файл описания диска (легкий файл vmdk в случае виртуальных дисков виртуальных машин ESXi). Откройте ваш файл VMDK в текстовом редакторе и отредактируйте число в строке Ddb.virtualHWVersion. В нашем случае 13 меняется на 12.

    ПРИМЕЧАНИЕ: Помните, что для виртуальных дисков виртуальных машин VMware Workstation виртуальный дескриптор диска встроен в файл виртуального диска VMDK (нет отдельного файла дескриптора, как для виртуальных дисков виртуальных машин ESXi).

    После редактирования файла виртуальный диск успешно добавляется к существующей виртуальной машине.

  8. Включите виртуальную машину, если она еще не была включена.
  9. Откройте Управление дисками в Windows, измените статус вашего виртуального диска на онлайн, назначьте букву диска разделу и просмотрите файлы.

Как извлечь данные из файла VMDK без включения виртуальной машины

Методы, которые не требуют настройки и включения виртуальной машины, имеют свои преимущества. Некоторые из этих методов не требуют установки гипервизора. Вы можете примонтировать файлы VMDK напрямую к вашей операционной системе хоста за короткий период времени.

Метод 1: Монтирование файлов VMDKв операционной системе хоста с помощью VMware Workstation

Этот метод требует установки VMware Workstation на компьютере под управлением операционной системы Windows или Linux. VMware Workstation предоставляет удобную функцию, которая позволяет монтировать файлы VMDK на вашу хост-операционную систему. Поддерживаются виртуальные диски формата ESXi и дельта-диски, связанные с снимками виртуальных машин. Аналогично всем предыдущим рассмотренным методам в этом блоге, ваша операционная система должна поддерживать файловые системы разделов виртуальных дисков.

Если у вас есть снимки вашей виртуальной машины, дельта-виртуальные диски создаются после создания каждого снимка. У вас должен быть родительский виртуальный диск и доступные дельта-диски, если вы хотите открыть состояние виртуального диска в момент после создания того или иного снимка. В этом случае вы должны примонтировать соответствующий дельта-виртуальный диск на вашу хост-операционную систему. Зависимости, связанные с родительским виртуальным диском, будут автоматически разрешены.

Если у вас есть снимки, но вы хотите открыть родительский виртуальный диск, откройте его в режиме только для чтения. Это потому, что внесение изменений в родительский виртуальный диск может повредить снимки или связанные клонированные машины, созданные из родительской виртуальной машины с родительским виртуальным диском. Режим только для чтения предотвращает запись данных на виртуальный диск после его монтирования в хост-ОС. Вы можете монтировать файлы виртуальных дисков VMDK, если виртуальная машина, использующая этот виртуальный диск, выключена, или если конкретная виртуальная машина не использует этот виртуальный диск.

Давайте посмотрим, как смонтировать виртуальный диск VMDK в виртуальной машине VMware Workstation снимки. На виртуальном диске виртуальной машины установлена Windows на одном разделе NTFS. После создания первого снимка файл Snapshot1.txt создается в корневом каталоге диска C:, и аналогично после создания второго снимка там создается файл Snapshot2.txt. Первый пример для Linux, а второй пример для Windows. В этом примере используются файлы виртуального диска старой виртуальной машины Windows XP.

Пример 1: Смонтирование VMDK на хосте Linux

  1. Откройте VMware Workstation для Linux и перейдите в Файл > Смонтировать виртуальные диски.

  2. Нажмите Смонтировать диск, и откроется всплывающее окно. Нажмите Обзор и выберите файл виртуального диска VMDK.

  3. Давайте выберем файл VMDK второго дифференциального виртуального диска, созданного после второго снимка виртуальной машины. В таких случаях имя этого файла отображается как VM_name-000002.vmdk (WinXP-test-000002.vmdk используется в этом примере).

  4. Создайте каталог на вашей файловой системе Linux для монтирования виртуального диска формата VMDK в этот каталог. Давайте создадим каталог /mnt/vmdk/ в консоли Linux.

    mkdir /mnt/vmdk/

  5. Установите разрешения для вашего пользователя (имя пользователя – user1, и он является членом group1 в этом примере):

    chown -R user1:group1 /mnt/vmdk/

    chmod -R 0775 /mnt/vmdk/

  6. Теперь выберите созданный вами каталог в качестве целевого каталога, установите флажок “Смонтировать в режиме только для чтения” и нажмите Смонтировать.

  7. Теперь вы можете открыть каталог /mnt/vmdk/ в вашем файловом менеджере Linux и просматривать файлы и каталоги, находящиеся на виртуальном диске VMDK. Вы увидите файлы Snapshot1.txt и Snapshot2.txt, которые были созданы после создания первого и второго снимков в этом примере. Каждый из этих двух файлов находится на отдельном дельта-виртуальном диске VMDK.

  8. Не забудьте отмонтировать виртуальный диск VMDK из каталога (точки монтирования) на вашей хост-системе Linux, когда вы закончите операции с содержимым виртуального диска.

Если вы предпочитаете использовать консольный интерфейс, вы можете смонтировать образы дисков VMDK на хост-системе Linux в консоли с помощью этой команды:

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

Где:

vm_name – это имя виртуальной машины, которое совпадает с именем каталога VM в данном случае. В нашем примере имя VM – WinXP-test.

vm_disk_name – это имя виртуального диска (WinXP-test.vmdk используется в этом примере).

vm_disk_name-000001.vmdk – это имя первого дельта-диска (дифференциального) созданного после первого снимка ВМ (WinXP-test-000001.vmdk в данном случае).

vm_disk_name-000002.vmdk – это имя второго дельта-диска, созданного после второго снимка ВМ соответственно (WinXP-test-000002.vmdk в данном случае).

  1. Примонтируйте виртуальный диск. По умолчанию виртуальный диск смонтирован в режиме чтения/записи. Вы можете использовать ключ -r в командной строке для монтирования диска в режиме только чтения.

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

  2. Перечислите все смонтированные виртуальные диски VMDK:

    vmware-mount -L

  3. Перед завершением работы с смонтированными виртуальными дисками VMDK отмонтируйте все виртуальные диски:

    vmware-mount -x

Пример 2: Как смонтировать VMDK на хосте Windows

Идея того, как смонтировать файлы VMDK в Windows, аналогична. Кроме опции Файл > Карта виртуальных дисков в графическом интерфейсе (GUI) VMware Workstation, вы можете следовать следующим шагам. Давайте смонтируем файл VMDK первого дифференциального виртуального диска, созданного после первого снимка ВМ. Имя этого файла VMDK имеет следующий формат: VM_name-000001.vmdk (WinXP-test-000001.vmdk открыт в данном руководстве).

  1. Щёлкните правой кнопкой мыши на файле VMDK в проводнике Windows и выберите Отобразить виртуальный диск.

  2. Выберите параметры для монтирования файла VMDK. Рекомендуется открывать файл VMDK в режиме только для чтения, чтобы предотвратить возможное повреждение виртуальных дисков, принадлежащих цепочке снимков, после записи данных. По умолчанию буква диска в данном случае – Z:, и диск открывается в проводнике Windows автоматически после отображения, если установлен соответствующий флажок. Нажмите ОК, чтобы продолжить.

  3. Теперь виртуальный диск смонтирован как диск Z: в Windows, и вы можете читать содержимое файла VMDK. На скриншоте ниже вы можете увидеть файл Snapshot1.txt, созданный после взятия первого снимка. Файл Snapshot2.txt отсутствует, потому что он был создан после взятия второго снимка ВМ, и мы открыли дельтовый виртуальный диск, связанный с первым снимком ВМ.

  4. Когда вы закончите работу с отображаемым виртуальным диском, не забудьте отключить его. Щелкните правой кнопкой мыши соответствующий файл Disconnect Virtual Disk, а затем щелкните

    . После отключения виртуального диска вы можете включить ту виртуальную машину, которая использует этот виртуальный диск.

Метод 2: Использование 7-zip для извлечения содержимого из файлов VMDK

Если вы ищете, как открыть файлы VMDK без запуска виртуальных машин, вы можете установить 7-zip и извлечь содержимое из образов виртуальных дисков. 7-zip – это бесплатный инструмент, предназначенный для архивации файлов и извлечения файлов из архивов и других образов. Вы можете использовать 7-zip в качестве извлекателя vmdk. Этот инструмент можно использовать на машинах Linux и Windows.

7-zip может открывать файлы vmdk и –flat.vmdk (эта утилита может открыть отдельный файл –flat.vmdk, если отсутствует дескрипторный файл vmdk) – 7-zip предназначен для виртуальных дисков формата ESXi. 7-zip не может открывать файлы delta VMDK, созданные после создания снимков ВМ.

Как открыть файл VMDKс помощью 7-zip на Linux

  1. Установите полный набор 7-zip на вашу машину Linux. В этом примере используется Ubuntu.

    apt-get install p7zip-full

  2. Список содержимого файла vmdk с помощью 7-zip:

    7z l vm_name.vmdk

  3. Давайте найдем файлы, содержащие в своих именах “boot“. например:

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

    Где user1 – это имя нашего пользователя Linux, l – список.

  4. Давайте извлечем (e) файл boot.ini из образа VMDK:

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

    Вы можете извлечь другие файлы и каталоги из файла VMDK таким же образом.

Как открыть файлы VMDK с помощью 7-zip в Windows

  1. Загрузите совместимую версию 7-zip с официального сайта и установите приложение на вашем компьютере под управлением Windows. Используйте EXE-установщик для большего удобства.
  2. После установки 7-Zip в Windows в контекстное меню добавляются новые опции 7-Zip при щелчке правой кнопкой мыши на любом файле или папке в проводнике Windows (см. скриншот ниже). Используйте эти опции, чтобы открыть файл VMDK как архив или извлечь файлы прямо сейчас.

  3. На скриншоте ниже отображается содержимое автономного файла Win-test2-flat.vmdk в графическом интерфейсе пользователя 7-Zip, используемом в Windows. Вы можете извлечь необходимое содержимое VMDK.

Как подключить файлы VMDK в Linux (другие методы)

Одной из наиболее мощных возможностей Linux является способность выполнять наивысшее число операций в консоли, даже с встроенными инструментами. Эти инструменты помогут вам подключить файлы VMDK и получить доступ к содержимому, хранящемуся на виртуальных дисках. В приведенных примерах используется Ubuntu Linux.

Метод 1: Как подключить файл VMDK с помощью /dev/loop

Устройства Loop – это псевдоустройства в Linux, которые делают файлы доступными как блочные устройства и могут использоваться для монтирования образов дисков, содержащих файловые системы. Устройства Loop называются как /dev/loopX, где X – номер устройства Loop. Этот метод хорошо подходит для монтирования файлов – flat.vmdk, даже без дескриптора виртуального диска.

Давайте рассмотрим, как монтировать файл VMDK в Linux, чтобы получить доступ к файлам виртуального диска на примере. Есть виртуальный диск формата ESXi, который содержит один раздел – файл дескриптора отсутствует. Давно на этот виртуальный диск была установлена Windows XP.

  1. Используйте одну из двух команд, чтобы проверить количество существующих устройств Loop в вашей системе Linux.

    fdisk -l | grep /dev/loop

    df -h | grep /dev/loop

  2. В нашем случае устройства с номерами от 1 до 21 уже существуют (/dev/loop1/dev/loop21). Таким образом, создадим устройство Loop с номером 30 – этот номер свободен. Мы свяжем это устройство с файлом – flat.vmdk.

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

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

    Где 32256 – это смещение, равное 63*512 для диска, отформатированного в Windows XP/Server 2003 и более ранних версиях Windows (63 – это номер первого сектора раздела, а 512 байт – размер сектора). Для Windows 7/Server 2008 и более новых версий Windows попробуйте смещение 105906176.

    Вы можете получить информацию о размере сектора и первом использованном секторе для начала загрузки с помощью команды:

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

    В качестве альтернативы для виртуальных дисков, содержащих несколько разделов, вы можете использовать parted для определения начала и конца каждого раздела:

    parted /dev/loop30

    В консоли parted введите следующие команды:

    unit

    B

    print

  4. Создайте каталог, который будет использоваться в качестве точки монтирования для образа VMDK:

    mkdir /mnt/vmdk-image

  5. Смонтируйте устройство loopback, связанное с образом VMDK, в созданный каталог:

    mount /dev/loop31 /mnt/vmdk-image

  6. Отобразите содержимое смонтированного образа:

    ls -al /mnt/vmdk-image

  7. После завершения работы с содержимым виртуального диска отмонтируйте образ vmdk и отключите устройство loop:

    umount /mnt/vmdk-image

    losetup -d /dev/loop31

Метод 2: Как монтировать файлы VMDK с помощью kpartx

Kpartx – это инструмент, который может монтировать разделы внутри образов файлов в каталоги вашей реальной файловой системы Linux. Этот инструмент может использоваться для настройки отображений устройств для разделов блочных устройств. Этот метод также подходит для монтирования образов –flat.vmdk, используемых на серверах ESXi. Давайте посмотрим, как монтировать файл –flat.vmdk, используемый в предыдущем примере.

  1. Установите kpartx:

    apt-get install kpartx

  2. Добавьте отображение раздела для образа VMDK в режиме работы с подробным выводом:

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

  3. Смонтируйте раздел в каталог /mnt/vmdk-image, подготовленный заранее:

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

    Где loop30 – это номер устройства loop, а p1 – номер раздела внутри образа (первый раздел на дисковом образе).

  4. Перечислите содержимое раздела виртуального диска, который вы смонтировали:

    ls -al /mnt/vmdk-image/

  5. Когда закончите операции с файлами образа VMDK, отмонтируйте виртуальный дисковый образ VMDK:

    umount /mnt/vmdk-image

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

Заключение

Знание нескольких методов извлечения содержимого VMDK обеспечивает гибкость и надежность, поскольку каждый метод может быть лучшим в определенных ситуациях. Более того, даже лучше иметь резервные копии ваших виртуальных машин, помимо этого знания.

NAKIVO Backup & Replication может резервировать и восстанавливать ВМ, работающие в VMware vSphere, лучшим образом. Вы можете восстановить всю ВМ, конкретный виртуальный диск или отдельные файлы из резервной копии в пользовательское местоположение.

Source:
https://www.nakivo.com/blog/extract-content-vmdk-files-step-step-guide/