Смонтировать образы дисков VMWare под Linux

17464
xpt

Можно ли по-прежнему монтировать образы дисков 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, но я получаю « Недостаточно прав для выполнения этой операции »?

2
[Подтверждено] (http://www.cyborgworkshop.org/2014/07/05/mount-a-vmdk-in-linux-without-having-vmware-installed/). Или, может быть, попробуйте _vboxmanage_? farosch 8 лет назад 0

3 ответа на вопрос

1
jcoppens

In my machine the loop devices are in /dev. This article mentions /dev/wrapper and /dev, so it could be of help to you.

On the other hand, this other article uses the vmware-mount command to accomplish the same.

Note: My system is Slackware64-current (mostly), but with mainly gtk-based software.

Благодарю. a) Пожалуйста, запустите `lsb_release -a` и` uname -a` и опубликуйте ваши результаты, чтобы люди знали, какая ОС у вас на компьютере и имеет петлевые устройства. б) 1-я статья, которую вы упомянули, - это та, которую я уже включил в свой ОП. в) Спасибо за вторую статью, я попробую. xpt 8 лет назад 0
`lsb_release` не является командой, которая доступна по умолчанию для всех дистрибутивов. Я читаю ваши результаты. Я использую Virtualbox здесь, поэтому у меня нет файлов VMDK для тестирования, jcoppens 8 лет назад 0
Просто еще одна идея: кажется, Virtualbox распознает изображения `vmdk`. Так что, возможно, замечание от sehams по вашему первоначальному вопросу не так надумано, как мне показалось. Если вы устанавливаете VB, вы можете использовать `vboxmanage` для преобразования, а затем просто" смонтировать "его с помощью устройства" loop ". jcoppens 8 лет назад 0
1
MetalGodwin

Установите 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

Как я мог сделать это R / W? Antonio Petricca 6 лет назад 0
Спасибо MetalGodwin. Пожалуйста, дайте людям знать, на какой ОС установлена ​​ваша машина, например, запустите `lsb_release -a` и / или` uname -a`, и сообщите нам версию `affuse` и` vmdisk`, которую вы используете сейчас, затем отправьте сообщение обратно результаты, достижения. Спасибо. xpt 6 лет назад 0
1
Eduard Florinescu

Вы также можете использовать 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 
Спасибо, Эдуард. Пожалуйста, дайте людям знать, на какой ОС установлена ​​ваша машина, например, запустите `lsb_release -a` и / или` uname -a`, и сообщите нам версию `qemu` и` vmdisk`, которую вы используете сейчас, затем отправьте сообщение обратно результаты, достижения. xpt 6 лет назад 1
работает с `qemu-nbd 2.12.0` в Arch Linux - мне пришлось пропустить использование `-r` для файла в файловой системе, смонтированной` ro` Stuart Cardall 5 лет назад 1