qcow2 이미지를 마운트하는 방법

qcow2 이미지를 마운트하는 방법

qemu-nbd와 네트워크 블록 장치 커널 모듈을 사용하면 qcow2 이미지를 마운트할 수 있다는 내용을 읽었습니다. 루프 장치를 통해 qcow2를 설치하는 방법에 대한 튜토리얼을 본 적이 없습니다. 가능합니까? 그렇지 않다면 왜 그렇습니까?

qcow2와 iso의 차이점을 잘 모르겠습니다.

답변1

1단계 - 호스트에서 NBD 활성화

modprobe nbd max_part=8

2단계 - QCOW2를 네트워크 블록 장치로 연결

qemu-nbd --connect=/dev/nbd0 /var/lib/vz/images/100/vm-100-disk-1.qcow2

3단계 - QCOW2 내의 파티션 나열

fdisk /dev/nbd0 -l

4단계 - VM에서 파티션 마운트

mount /dev/nbd0p1 /mnt/somepoint/

일반 사용자 권한으로 파일 시스템을 마운트할 수도 있습니다. 비루트:

mount /dev/nbd0p1 /mnt/somepoint -o uid=$UID,gid=$(id -g)

5단계 - 완료되면 제거하고 연결을 끊습니다.

umount /mnt/somepoint/
qemu-nbd --disconnect /dev/nbd0
rmmod nbd

부끄럽게도 도난당했습니다:https://gist.github.com/shamil/62935d9b456a6f9877b5

답변2

지적해 주신 Giles에게 감사드립니다.게스트몬트. qcow2 이미지 설치는 매우 간단합니다.

  1. 먼저 guestmount를 설치합니다(Fedora/Debian/Arch/etc의 libguestfs-tools 또는 libguestfs의 일부로).

    yum install libguestfs-tools
    
  2. 그러면 -i 옵션을 사용하여 qcow2 이미지를 자동으로 마법처럼 마운트할 수 있습니다.

    guestmount -a path_to_image.qcow2 -i --ro /mount_point
    

-m 옵션을 사용하여 이미지 내에서 수동으로 마운트 지점을 지정할 수 있습니다.
항상 그렇듯이 자세한 내용은 guestmount의 매뉴얼 페이지를 읽어보십시오.

참고: 이는 질문 제목에만 해당됩니다. qcow2와 ISO의 차이점은 Peter의 답변을 참조하세요.

답변3

루프 장치는 단순히 파일을 블록 장치로 변환합니다. 파일 블록에 특별한 내부 매핑이 있는 경우 루프 장치는 그 중 어떤 것도 변환하지 않습니다. qcow2는 특별합니다...다른 위치에 저장된 동일한 블록의 다른 스냅샷을 처리할 수 있는 특별한 매핑이 내부에 있습니다. 루프 장치로 마운트하면 이미지의 실제 데이터를 나타내지 않는 장치의 큰 덩어리만 얻게 됩니다.

또 다른 옵션은 원시로 변환하여 루프 장치로 설치하는 것입니다.

qemu-img convert -p -O raw oldfile.qcow2 newfile.raw

하지만 이전처럼 다시 사용하려면 qcow2로 다시 변환해야 합니다.

나는 qemu-nbd를 사용하는 것이 가장 IO 효율적이라고 생각하지 않지만 간단합니다. 또한 가상 머신에 설치하는 것도 쉽습니다(라이브 USB를 사용하여 부팅되는 가상 머신처럼). 변환은 별로 의미가 없습니다...그것은 단지 그것들이 어떻게 다른지에 대한 예일 뿐입니다.

답변4

VirtualBox 내부에 QEMU가 포함된 Debian 10. 일부 대용량 파일을 QEMU VM에 복사해야 합니다. 인터넷 속도가 너무 느립니다.

  • guestmount위에서 제안한 대로 설치하십시오 libguestfs-tools.
  • qcow2 파일을 릴리스하려면 에뮬레이터를 중지하십시오.
    sudo guestmount -a /path/to/some.qcow2 -i --rw /path/to/tempdir
    
    그런 다음 파일 시스템에 대한 읽기/쓰기 액세스 권한을 갖습니다. 복사 속도가 5MB/s를 초과합니다.
  • 제거:
    guestunmount /path/to/tempdir
    

관련 정보