LinuxでQEMU FreeBSD qcow2イメージをマウントする方法

LinuxでQEMU FreeBSD qcow2イメージをマウントする方法

私のDebian JessieコンピュータにインストールしたいFreeBSD 11 qcow2イメージがあります。 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)

他の3つの分割提案を試しましたが、すべて同じエラーが発生しました。ファイルシステムの種類の違いにより動作しませんか?マウントするFreeBSDパーティションはUFSで、マウントポイントはEXT4パーティションにあります。

ベストアンサー1

私は上記のRidgyの提案を組み合わせて、ここで提案したようにqemu-nbdユーティリティを使ってこれを行う方法を見つけました。ブログ:

  1. 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を選択してマウントします。

  1. NBDデバイスパーティションをマウントポイントにマウントします。

    マウント -r -t ufs -o ufstype=ufs2 /dev/nbd0p3 /mnt

注:qcow2イメージを読み取り専用でインストールするのが最善です。そうしないと、画像が損傷する可能性があります。

おすすめ記事