どういう状況?
CentOS7のkvm上で動かしていたVM(qcow2イメージ)をRocky9にマイグレーションしたら、NIC周りが変わってIPが割り当てられない。Ubuntu18.04なのでserialも繋がらないので、/etc/netplan以下のファイルを 書き換える必要が出た。
やり方(qcow2の中味がraw installedな場合)
(以下全部rootでのコマンド)
# nbdのカーネルモジュールをロード(たぶん明示的に淹れなくても入ってる)
% modprobe nbd max_part=8
# qemu-nbdで接続
% qemu-nbd --connect=/dev/nbd0 [マウントしたいqcow2のパス]
# ブロックデバイスのパーティションを確認、LVMじゃないならLinuxとか出るはず
% fdisk /dev/nbd0 -l
(省略)
#普通にマウントすればよい
% mount /dev/nbd0p2 /mnt/hoge
# ここから後処理、必ずやること。でないとqcow2がロックされたままになる
% umount /mnt/hoge
% qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected
やり方(qcow2の中味がLVM Partitionな場合)
(以下全部rootでのコマンド)
# nbdのカーネルモジュールをロード(たぶん明示的に淹れなくても入ってる)
% modprobe nbd max_part=8
# qemu-nbdで接続
% qemu-nbd --connect=/dev/nbd0 [マウントしたいqcow2のパス]
# ブロックデバイスのパーティションを確認、LVMならLinux LVMっていうPartition Typeになってる
% fdisk /dev/nbd0 -l
Disk /dev/nbd0: 200 GiB, 214748364800 bytes, 419430400 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
Disklabel type: dos
Disk identifier: 0x390c36ae
Device Boot Start End Sectors Size Id Type
/dev/nbd0p1 * 2048 419428351 419426304 200G 8e Linux LVM
# 重要。RHEL7や8だと勝手にlvm にdetectされたけど、9は明示的にこうしないとダメぽい。
% lvmdevices --adddev /dev/nbd0p1
# LVMの管理下になったので、vgscanで状況の確認
% vgscan
Devices file /dev/nbd0 is excluded: device is partitioned.
Found volume group "rl" using metadata type lvm2
Found volume group "ubuntu1804golden-vg" using metadata type lvm2
# vgchangeで論理ボリュームをアクティブにする
% vgchange -ay ubuntu1804golden-vg
Devices file /dev/nbd0 is excluded: device is partitioned.
2 logical volume(s) in volume group "ubuntu1804golden-vg" now active
# /dev/mapper以下にLVMの中味のパーティションが出てくる。この例だとubuntu1804golden-root
% ls /dev/mapper
control rl-home rl-root rl-swap ubuntu1804golden--vg-root ubuntu1804golden--vg-swap_1
# hogeにマウント。hogeはお好きなディレクトリに。ubuntu1804golden--vg-rootもインストールしたときの命名で変わるから注意ね
% mount /dev/mapper/ubuntu1804golden--vg-root /mnt/hoge
# ここから後処理、必ずやること。でないとqcow2がロックされたままになる
% umount /mnt/hoge
% vgchange -an ubuntu1804golden-vg
0 logical volume(s) in volume group "ubuntu1804golden-vg" now active
% qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected