Монтирование образа диска VMDK
У меня есть один файл образа диска vmware с расширением vmdk
Я пытаюсь смонтировать это и исследовать все разделы (включая скрытые).
Я пытался следовать нескольким руководствам, таким как: http://forums.opensuse.org/showthread.php/469942-mounting-virtual-box-machine-images-host
Я могу смонтировать образ с помощью vdfuse
vdfuse -w -f windows.vmdk /mnt/
После этого я вижу один раздел и весь диск выставлен
# ll /mnt/
total 41942016
-r-------- 1 te users 21474836480 Feb 28 14:16 EntireDisk
-r-------- 1 te users 1569718272 Feb 28 14:16 Partition1
Продолжая руководство, я пытаюсь смонтировать либо FullDisk, либо Partition1, используя
mount -o loop,ro /mnt/Partition1 mnt2/
Но это дает мне ошибку "mount: вы должны указать тип файловой системы"
Пытаясь найти правильный тип, я пытался
dd if=/mnt/EntireDisk | file -
which outputs a ton of information but of note is:
/dev/stdin: x86 boot sector; partition 1: ....... FATs ....
Так что я устал монтировать как Vfat, но это дало мне
mount: wrong fs type, bad option, bad superblock ...etc
Что я делаю неправильно?
6 ответов
Для более новых систем Linux есть команда 'guestmount'. После установки вы можете запустить следующую команду для монтирования третьего раздела в образе VMDK:
guestmount -a xyz.vmdk -m /dev/sda3 --ro /mnt/vmdk
Кроме того, для автоматического определения и монтирования образа (менее надежного) вы можете попробовать:
guestmount -a xyz.vmdk -i --ro /mnt/vmdk
Обратите внимание, что флаг --ro
просто монтирует изображение только для чтения; чтобы смонтировать образ как для чтения-записи, просто замените его на флаг --rw
,
guestmount содержится в следующих пакетах для каждого дистрибутива:
- Ubuntu: libguestfs-tools
- OpenSuse: гостевые инструменты
- CentOS: libguestfs-tools-c
Вы также можете использовать qemu:
За .vdi
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi
если они не установлены, вы можете установить их (в Ubuntu эта команда)
sudo apt install qemu-utils
а затем смонтировать его
mount /dev/nbd1p1 /mnt
За .vmdk
sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk
обратите внимание, что я использую опцию -r
это потому, что VMDK версии 3 должен быть доступен только для чтения, чтобы его можно было смонтировать с помощью qemu
а потом я монтирую его
mount /dev/nbd1p1 /mnt
я использую nbd1
так как nbd0
иногда выдает 'mount: специального устройства /dev/nbd0p1 не существует'
Для.ova
tar -tf image.ova
tar -xvf image.ova
Выше будет извлекать .vmdk
диск, а затем смонтировать это.
Установите affuse, затем подключите его.
affuse /path/file.vmdk /mnt/vmdk
Необработанный образ диска теперь находится в /mnt/vmdk. Проверьте размер сектора
fdisk -l /mnt/vmdk/file.vmdk.raw
# example
Disk file.vmdk.raw: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000da525
Device Boot Start End Sectors Size Id Type
/mnt/vmdk/file.vmdk.raw1 * 2048 41943039 41940992 20G 83 Linux
Умножьте сектор и начальный сектор. В примере это будет 2048*512
echo 2048*512 | bc
1048576
Смонтировать, используя это смещение
mount -o ro,loop,offset=1048576 /mnt/vmdk/file.raw /mnt/vmdisk
Теперь диск должен быть смонтирован и доступен для чтения в /mnt/vmdisk
Я нашел и ответ от commandlinefu.com довольно приятно:
kpartx -av <image-flat.vmdk>; mount -o /dev/mapper/loop0p1 /mnt/vmdk
Вы также можете активировать тома LVM в образе, запустив
vgchange -a y
а затем вы можете установить LV внутри изображения.
Чтобы размонтировать образ, отключите раздел /LV, деактивируйте VG для образа.
vgchange -a n <volume_group>
затем беги
kpartx -dv <image-flad.vmdk>
удалить сопоставления разделов.
В этой статье вы можете найти ссылку для загрузки VMware Virtual Disk Development Kit (VDDK). После загрузки и установки:
vmware-mount -p path_to_vmdk
покажет разделы внутри файла VMDK. Например:
Nr Start Size Type Id Sytem
-- ---------- ---------- ---- -- ------------------------
1 2048 461371392 BIOS 83 Linux
Тогда просто сделайте:
sudo vmware-mount path_to_vmdk 1 /mnt/mount_point
Я попытался guestmount
, но это очень и очень медленно. Внизу он создает виртуальную машину, использует KVM и так далее. Сумасшедшие вещи, чертовски медленные.
Не разрешено комментировать пост @Thomas (ответ 38 upvotes). Я хотел бы сообщить следующему человеку, который может столкнуться со следующим кодом ошибки, сгенерированным из guestmount, когда использует qemu-img, как решить проблему.
ERROR: qemu-img: '' uses a vmdk feature which is not supported by this qemu version: VMDK version
Попробуйте сгенерировать сырую версию.vmdk, используя vmdkmount
# vmdkmount {file}.vmdk /ur/mount/path
Внутри смонтированного каталога находится файл vmdk1 (ваш необработанный файл)
Теперь попробуйте загрузить vmdk, используя guestmount
# guestmount -a vmdk1 -i --ro /ur/mount/path
У вас есть пакет программного обеспечения для NTFS?
Пытаться
apt-get install ntfs-3g
в системах на основе Debian.