CentOS/RHEL 7 の場合
CentOS/RHEL 7 KVM ホスト上のゲストの qcow2 ディスク イメージにアクセスするには、qemu-nbd を使用します。 または libguestfs .
qemu-nbd の使用
以下の手順に従って、qemu-nbd を使用して CentOS/RHEL 7 に qcow2 イメージをマウントします。
1. KVM ホストで NBD カーネル ドライバーを有効にします。
# modprobe nbd
2. qcow2 イメージをネットワーク ブロック デバイスとして接続します。
# qemu-nbd --connect=/dev/nbd0 olseven.qcow2 -f qcow2
3. fdisk を使用してイメージ内のパーティションを見つけます
# fdisk /dev/nbd0 -l Disk /dev/nbd0: 32.2 GB, 32212254720 bytes, 62914560 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x0009e4c2 Device Boot Start End Blocks Id System /dev/nbd0p1 * 2048 2099199 1048576 83 Linux /dev/nbd0p2 2099200 62914559 30407680 8e Linux LVM
4. デバイス /dev/nbd0p2 は LVM であるため、KVM ホスト マシンで新しい PV/VG および LV を見つける必要があります。
# pvscan PV /dev/sda3 VG ol_kvm lvm2 [<363.23 GiB / 8.00 MiB free] Total: 1 [<363.23 GiB] / in use: 1 [<363.23 GiB] / in no VG: 0 [0 ]
ホスト マシンが新しい PV を認識できるように、物理ボリューム キャッシュを更新します。
# pvscan --cache
# pvscan PV /dev/sda3 VG ol_kvm lvm2 [<363.23 GiB / 8.00 MiB free] PV /dev/nbd0p2 VG ol_guestol lvm2 [<29.00 GiB / 4.00 MiB free] >> Now its listed. Total: 2 [392.22 GiB] / in use: 2 [392.22 GiB] / in no VG: 0 [0 ]
# vgscan Reading volume groups from cache. Found volume group "ol_kvm" using metadata type lvm2 Found volume group "ol_guestol" using metadata type lvm2 >> The VG in the image.
# lvscan ACTIVE '/dev/ol_kvm/root' [<46.57 GiB] inherit ACTIVE '/dev/ol_kvm/home' [206.75 GiB] inherit ACTIVE '/dev/ol_kvm/var' [<102.45 GiB] inherit ACTIVE '/dev/ol_kvm/swap' [7.45 GiB] inherit inactive '/dev/ol_guestol/swap' [2.00 GiB] inherit >> LV in the image. inactive '/dev/ol_guestol/root' [26.99 GiB] inherit >> LV in the image.
5. ゲスト OS の VG を有効にします。
# vgchange -ay 4 logical volume(s) in volume group "ol_kvm" now active 2 logical volume(s) in volume group "ol_guestol" now active
# lvscan ACTIVE '/dev/ol_kvm/root' [<46.57 GiB] inherit ACTIVE '/dev/ol_kvm/home' [206.75 GiB] inherit ACTIVE '/dev/ol_kvm/var' [<102.45 GiB] inherit ACTIVE '/dev/ol_kvm/swap' [7.45 GiB] inherit ACTIVE '/dev/ol_guestol/swap' [2.00 GiB] inherit ACTIVE '/dev/ol_guestol/root' [26.99 GiB] inherit
6. LVM パーティションをマウントします
# mount /dev/mapper/ol_guestol-root /ol7/ # cd /ol7/ # ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test tmp usr var
仮想ディスク イメージに変更を加えたら、問題を回避するために仮想ディスクを安全に切断します。
1. LVM パーティションをアンマウントします:
# umount /ol7/
2. ボリューム グループを無効にします。
# vgchange -an ol_guestol 0 logical volume(s) in volume group "ol_guestol" now active
3. NBD からイメージを切り離す
# qemu-nbd --disconnect /dev/nbd0 /dev/nbd0 disconnected
4. NBD カーネル ドライバーを削除します
# rmmod nbd
CentOS/RHEL 6 の場合
CentOS/RHEL 6 に同梱されている qemu-image は、NBD をサポートしていません。そのため、CentOS/RHEL 6 KVM ホストで仮想ディスク イメージにアクセスするには、libguestfs を使用します ツールです。
1. libguestfs ツールをインストールします
# yum install libguestfs-tools
2. ゲスト ファイルシステム シェルを実行します
# guestfish --rw -a /var/lib/libvirt/images/olseven.qcow2 Welcome to guestfish, the guest filesystem shell for editing virtual machine filesystems and disk images. Type: ‘help’ for help on commands ‘man’ to read the manual ‘quit’ to quit the shell [fs]
3. 「実行」コマンドを使用してバックエンドを起動します。
[fs] run 100% ⟦#################################################################################⟧ 00:00
4. イメージ内のファイルシステムを一覧表示します。
[fs] list-filesystems /dev/sda1: xfs /dev/ol_guestol/root: xfs /dev/ol_guestol/swap: swap
5. ゲスト ファイルシステム シェルを終了し、ディスク イメージに表示されるパーティションをマウントします。
# guestmount -a /var/lib/libvirt/images/olseven.qcow2 -m /dev/ol_guestol/root /ol7/
# cd /ol7/ # ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test tmp usr var
6. イメージへの変更が完了したら、マウントを解除します。
# umount /ol7/