2

Можно ли по-прежнему монтировать образы дисков VMWare под Linux?

Я нашел следующие две статьи, обе они рекомендуют использовать kpartx -av diskimage-flat.vmdk . Однако обе статьи старые, и, когда я попробую это сделать на Ubuntu Utopic 14.10, он больше не работает.

$ sudo kpartx -av MyWin81.vmdk

$ sudo ls /dev/mapper/loop* | wc -l 
ls: cannot access /dev/mapper/loop*: No such file or directory
0

Раскрытие: Мой образ диска VMWare - это образ плоского диска. Кроме того (перед тем, как вы порекомендуете монтирование цикла), это образ диска с несколькими разделами, первый из которых - Window8, а следующие два в Linux. Это следующие два раздела Linux, над которыми мне больше интересно работать.

Может кто-нибудь подтвердить, пожалуйста? Благодарю.

Монтирование плоских образов дисков VMWare под Linux http://cromoteca.com/en/blog/mountflatvmwarediskimagesunderlinux/

Смонтируйте файл виртуального диска VMware (.vmdk) на компьютере под управлением Linux http://www.commandlinefu.com/commands/view/12554/mount-a-vmware-virtual-disk-.vmdk-file-on-a-linux -Box

ОБНОВИТЬ:

vmware-mount выглядит очень многообещающе, но я пока не могу заставить его работать:

$ vmware-mount -p Win81.vmdk
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Nr      Start       Size Type Id Sytem                   
-- ---------- ---------- ---- -- ------------------------
 1       2048   78643200 BIOS  7 HPFS/NTFS
 2   78645248    6039552 BIOS 83 Linux
 3   84684800   41144320 BIOS 83 Linux

% vmware-mount Win81.vmdk 1 /mnt/tmp1/
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Failed to mount partition 1 of disk 'Win81.vmdk' on '/mnt/tmp1/': Insufficient permissions to perform this operation

% vmware-mount -L
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
No mounted disks.

$ vmware-mount | head -3
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
VMware DiskMount Utility version 6.0.0, build-2496824

Usage: vmware-mount diskPath [partition num] mountPoint

NB, 2-я и 3-я команды запускаются напрямую от имени пользователя root , но я получаю « Недостаточно прав для выполнения этой операции »?

3 ответа3

1

Вы также можете использовать 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 и затем смонтирует его.

Моя конфигурация:

Ubuntu: 16.04.3 LTS 
Kernel: 4.4.0-112-generic  
Package: qemu-utils version: 1:2.5+dfsg-5ubuntu10.22 
Vmdk: 3 but should be any
1

В моей машине петлевые устройства находятся в /dev . В этой статье упоминаются /dev /wrapper и /dev, так что это может вам помочь.

С другой стороны, эта другая статья использует команду vmware-mount для достижения того же.

Примечание: моя система является Slackware64 (в основном), но в основном с программным обеспечением на основе gtk.

1

Установите affuse, затем смонтируйте файл вместе с ним:

affuse /path/file.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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .