Czy na Ubuntu można zamontować wirtualny dysk twardy (VHD, HDD, VDI, VMDK)? Jak można to zrobić?
Czy na Ubuntu można zamontować wirtualny dysk twardy (VHD, HDD, VDI, VMDK)? Jak można to zrobić?
Odpowiedzi:
Zgodnie z tym artykułem :
Linux i inne hosty uniksopodobne mogą montować obrazy utworzone w formacie typu raw przy użyciu urządzenia loopback. Z loginu root (lub używając sudo) zamontuj sprzężenie zwrotne z przesunięciem 32 256.
mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint
W przypadku innych typów obrazów qemu możesz użyć qemu-nbd
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 image.qcow2
partprobe /dev/nbd0
mount /dev/nbd0p1 /mnt/image
Ponadto zwykle można konwertować obraz z jednego formatu na inny.
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.
Spróbuj google, znalazłem rozwiązanie dla (VirtualBox) .VDI w ciągu jednej sekundy :
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
To samo, co polecenia „Sposób Qemu”. Brak granic!
To jest na 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
kończy się niepowodzeniem only root can use "--options" option
. Z sudo
nie udaje się failed to setup loop device: Permission denied
.
Możesz także użyć qemu:
.vdi
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi
jeśli nie są zainstalowane, możesz je zainstalować (na Ubuntu jest to polecenie)
sudo apt install qemu-utils
a następnie zamontuj
mount /dev/nbd1p1 /mnt
.vmdk
sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk
zauważ, że korzystam z opcji -r
, ponieważ VMDK w wersji 3 musi być tylko do odczytu, aby móc ją zamontować przez qemu
a następnie montuję
mount /dev/nbd1p1 /mnt
Używam, nbd1
ponieważ nbd0
czasami daje „mount: specjalne urządzenie / dev / nbd0p1 nie istnieje”
tar -tf image.ova
tar -xvf image.ova
Powyższe spowoduje wyodrębnienie .vmdk
dysku, a następnie jego zamontowanie.
Dla vmdk
i vhd
plików, mam tylko szczęście z kpartx
komendy poniżej:
sudo kpartx -a -v <image-flat.vmdk>
Sprawdź, czy dane wyjściowe losetup
powinny zawierać urządzenie pętli /dev/loop0
; sprawdź także sudo blkid
partycję /dev/mapper/loop0p1
, a następnie użyj jej w poleceniu mount:
sudo mount -o rw /dev/mapper/loop0p1 /mnt/vmdk
Gdzie / mnt / vmdk jest punktem montowania, z którego należy utworzyć, sudo mkdir /mnt/vmdk
jeśli nie istnieje.
źródło w commandlinefu.com (kpartx i polecenie mount)
Odmontuj za pomocą:
sudo umount /mnt/vmdk
sudo kpartx -d -v <image-flat.vmdk>
vhd
, działa!