Mount
如何在 Linux 中掛載 QEMU FreeBSD qcow2 映像
我有一個 FreeBSD 11 qcow2 映像,我想將它安裝在我的 Debian Jessie 機器上。我還有其他帶有 Debian Jessie 的 qcow2 映像,我可以使用 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 分區中。
我想出瞭如何做到這一點,它結合了上面 ridgy 的建議和使用本部落格中建議的 qemu-nbd 實用程序:
- 將 FreeBSD qcow2 文件連接到 NBD 設備:
qemu-nbd -c /dev/nbd0 qcow2_file 2. 確定要掛載 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 映像掛載為只讀,否則可能會損壞。