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イメージのインストールは非常に簡単です。
まず、guestmountをインストールします(Fedora / Debian / Arch / etcのlibguestfs-toolsまたはlibguestfsの一部として)。
yum install libguestfs-tools
これにより、-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 ファイルを解放するには、エミュレーターを停止します。
その後、ファイルシステムへの読み取り/書き込みアクセス権があります。コピー速度が5MB / sを超えています。sudo guestmount -a /path/to/some.qcow2 -i --rw /path/to/tempdir
- 削除:
guestunmount /path/to/tempdir