
У меня есть образ FreeBSD 11 qcow2, который я хотел бы смонтировать на своей машине Debian Jessie. У меня есть другие образы qcow2, на которых установлен Debian Jessie, и я могу смонтировать разделы в образе на хосте с помощью libguestfs-tools. В случае Debian Jessie qcow2 я обычно делаю что-то вроде этого, и это работает так, как и ожидалось:
guestmount -a <qcow2 image> -m <parition to mount in the image> --ro <mount point>
Однако когда я делаю то же самое для образа FreeBSD, я получаю ошибку:
root@bonddtest:/home/igw/bondd_testbed/ooo# guestmount -a ../shaper.qcow2 -m /dev/gpt/rootfs --ro /mnt
libguestfs: error: mount_options: mount_options_stub: /dev/gpt/rootfs: No such file or directory
guestmount: '/dev/gpt/rootfs' could not be mounted.
guestmount: Did you mean to mount one of these filesystems?
guestmount: /dev/sda1 (unknown)
guestmount: /dev/sda2 (unknown)
guestmount: /dev/sda3 (ufs)
Я попробовал три других предложения по разделам, но все они приводят к одной и той же ошибке. Это не работает из-за различий в типах файловых систем? Раздел FreeBSD, который я пытаюсь смонтировать, — это UFS, тогда как точка монтирования находится в разделе EXT4.
решение1
Я понял, как это сделать, и это комбинация предложения Ridgy выше и использования утилиты qemu-nbd, как предложено в этомблог:
Подключите файл FreeBSD qcow2 к устройству NBD:
qemu-nbd -c /dev/nbd0 qcow2_file
Определить раздел для монтирования устройства NBD. Я использовал lslbk:
root@host:# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom nbd0 43:0 0 21G 0 disk ├─nbd0p3 43:3 0 20G 0 part ├─nbd0p1 43:1 0 62.5K 0 part └─nbd0p2 43:2 0 1G 0 part
Мой образ qcow2 имеет размер 20G, поэтому я выбрал nbd0p3 для монтирования
Смонтируйте раздел устройства NBD в точку монтирования:
mount -r -t ufs -o ufstype=ufs2 /dev/nbd0p3 /mnt
Примечание: Лучше всего монтировать образ qcow2 как доступный только для чтения, иначе он может быть поврежден.