È possibile montare un disco rigido virtuale (VHD, HDD, VDI, VMDK) su Ubuntu? Come si può fare?
È possibile montare un disco rigido virtuale (VHD, HDD, VDI, VMDK) su Ubuntu? Come si può fare?
Risposte:
Secondo questo articolo :
Linux e altri host simili a Unix possono montare immagini create con il tipo di formato non elaborato utilizzando un dispositivo di loopback. Da un login root (o usando sudo), montare un loopback con un offset di 32.256.
mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint
Per altri tipi di immagini qemu, è possibile utilizzare qemu-nbd
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 image.qcow2
partprobe /dev/nbd0
mount /dev/nbd0p1 /mnt/image
Inoltre, in genere, puoi convertire l'immagine da un formato all'altro.
raw - (default) the raw format is a plain binary image of the disc
image, and is very portable.
On filesystems that support sparse files,
images in this format only use the
space actually used by the data recorded in them.
cloop - Compressed Loop format, mainly used for reading Knoppix
and similar live CD image formats
cow - copy-on-write format, supported for historical reasons only and
not available to QEMU on Windows
qcow - the old QEMU copy-on-write format, supported for
historical reasons and superseded by qcow2
qcow2 - QEMU copy-on-write format with a range of special features,
including the ability to take multiple snapshots, smaller
images on filesystems that don't support sparse files,
optional AES encryption, and optional zlib compression
vmdk - VMware 3 & 4, or 6 image format, for exchanging images
with that product
vdi - VirtualBox 1.1 compatible image format, for exchanging
images with VirtualBox.
Prova a google, ho trovato la soluzione per (VirtualBox) .VDI in un secondo :
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 /path/to/some.vdi
mount -o loop /dev/nbd0p1 /mnt
# do stuff
umount /mnt
qemu-nbd -d /dev/nbd0
rmmod nbd
Lo stesso dei comandi "Qemu's way". Senza confini!
Questo è su Ubuntu 16.04 .
apt-get install afflib-tools
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
echo 2048*512 | bc
1048576
mount -o ro,loop,offset=1048576 /mnt/vmdk/file.raw /mnt/vmdisk
mount -o ro,loop,offset=1048576 ./foo.raw /mnt/foo
fallisce only root can use "--options" option
. Con sudo
, fallisce con failed to setup loop device: Permission denied
.
Puoi anche usare qemu:
.vdi
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi
se non sono installate puoi installarle (su Ubuntu è questo comando)
sudo apt install qemu-utils
e poi montalo
mount /dev/nbd1p1 /mnt
.vmdk
sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk
notare che uso l'opzione -r
perché VMDK versione 3 deve essere letta solo per poter essere montata da qemu
e poi lo monto
mount /dev/nbd1p1 /mnt
Io uso nbd1
perché a nbd0
volte dà 'mount: dispositivo speciale / dev / nbd0p1 non esiste'
tar -tf image.ova
tar -xvf image.ova
Quanto sopra estrae il .vmdk
disco e quindi lo monta.
Per vmdk
e vhd
file, sono stato fortunato solo con il kpartx
comando seguente:
sudo kpartx -a -v <image-flat.vmdk>
Controllare l'output per il losetup
, dovrebbe contenere il dispositivo loop /dev/loop0
; controlla anche la sudo blkid
partizione /dev/mapper/loop0p1
, quindi usala nel comando mount:
sudo mount -o rw /dev/mapper/loop0p1 /mnt/vmdk
Dove / mnt / vmdk è il punto di montaggio, da creare sudo mkdir /mnt/vmdk
se inesistente.
fonte su commandlinefu.com (kpartx e comando mount)
Smonta con:
sudo umount /mnt/vmdk
sudo kpartx -d -v <image-flat.vmdk>
vhd
, funziona!