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)

다른 세 가지 파티션 제안을 시도했지만 모두 동일한 오류가 발생합니다. 파일 시스템 유형의 차이로 인해 작동하지 않습니까? 마운트하려는 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 이미지를 읽기 전용으로 마운트하는 것이 가장 좋습니다. 그렇지 않으면 이미지가 손상될 수 있습니다.

관련 정보