É possível montar um disco rígido virtual (VHD, HDD, VDI, VMDK) no Ubuntu? Como isso pode ser feito?
É possível montar um disco rígido virtual (VHD, HDD, VDI, VMDK) no Ubuntu? Como isso pode ser feito?
Respostas:
De acordo com este artigo :
O Linux e outros hosts semelhantes ao Unix podem montar imagens criadas com o tipo de formato bruto usando um dispositivo de loopback. Em um login raiz (ou usando o sudo), monte um loopback com um deslocamento de 32.256.
mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint
Para outros tipos de imagens qemu, você pode usar qemu-nbd
modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 image.qcow2
partprobe /dev/nbd0
mount /dev/nbd0p1 /mnt/image
Além disso, geralmente você pode converter imagens de um formato para outro.
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.
Tente google, eu encontrei solução para (VirtualBox) .VDI em um segundo :
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
O mesmo que os comandos "caminho do Qemu". Sem Fronteiras!
Isso está no 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
falha only root can use "--options" option
. Com sudo
, falha com failed to setup loop device: Permission denied
.
Você também pode usar o qemu:
.vdi
sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi
se eles não estiverem instalados, você pode instalá-los (no Ubuntu é este comando)
sudo apt install qemu-utils
e depois monte
mount /dev/nbd1p1 /mnt
.vmdk
sudo modprobe nbd
sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk
note que eu uso a opção -r
porque o VMDK versão 3 deve ser somente leitura para poder ser montado pelo qemu
e depois eu montei
mount /dev/nbd1p1 /mnt
Eu uso nbd1
porque nbd0
às vezes dá 'mount: dispositivo especial / dev / nbd0p1 não existe'
tar -tf image.ova
tar -xvf image.ova
O acima irá extrair o .vmdk
disco e depois montá-lo.
Para arquivos vmdk
e vhd
, tive sorte apenas com o kpartx
comando abaixo:
sudo kpartx -a -v <image-flat.vmdk>
Verifique a saída para losetup
, ela deve conter um dispositivo de loop /dev/loop0
; verifique também sudo blkid
a partição /dev/mapper/loop0p1
e use-a no comando mount:
sudo mount -o rw /dev/mapper/loop0p1 /mnt/vmdk
Onde / mnt / vmdk é o seu ponto de montagem, a ser criado com sudo mkdir /mnt/vmdk
se não existir.
fonte em commandlinefu.com (comando kpartx and mount)
Desmonte com:
sudo umount /mnt/vmdk
sudo kpartx -d -v <image-flat.vmdk>
vhd
, ele funciona!