仮想マシンミラーファイルのLVM論理パーティションのマウント
「CentOSでのKVMのインストールと構成」という記事で説明した方法でguestオペレーティングシステムをrawファイルにインストールすると(virt-install...–disk path=/home/vpsee/centos.img...)、今後のメンテナンス中にトラブルが発生する可能性があります.例えば、この間、VpSeeはrootパスワードを忘れてこの仮想マシンのファイルシステムをマウントしshadowを復元する必要があるユーザーに遭遇しました.この場合、仮想マシンをマウントできるファイルシステムが必要です.仮想マシンのファイルシステムはrawファイル上にあり、このミラーファイルは完全にハードディスクをシミュレートしている.ハードディスクパーティションテーブルとLVM論理ボリュームが含まれているので、moutで簡単にマウントすることはできない.追加の作業が必要だ.では、このミラーファイルのLVM論理パーティションをマウントするにはどうすればいいのだろうか.
まずlosetupツールでcentos.imgファイルとloopデバイスをマッピングし、-fパラメータを使用して次の利用可能なloopデバイスを見つけます.
次に、fdisk/dev/loop 0を使用してcentos.imgのパーティションテーブルを表示します.-uパラメータは、cylinderではなくsectorを使用してオフセット量(offset)を記録することを示します.
各sectorは512バイト(bytes)であるため、offsetは208845 X 512=106928640に等しく、このoffsetは重要であり、以下の操作で使用される.
/dev/loop 0とcentos.imgのマッピングを解除し、offset=106928640でマッピングし直します.
システムに2つのPV(物理ボリュームグループ)があることがわかります.1つはシステム自体で、1つはcentos.imgの中のPVです.この2つのPVの名前は同じです.システムをインストールしたときにデフォルトの名前を使っていたので、面倒になりました.後の操作でPVの名前を変えて、後続の操作を便利にしました.
2つの同じ名前のVolGroup 00に名前を変更するので、まず彼らの異なるUUIDを見つけなければなりません.
上の2つ目はcentos.imgの中のVolGroup 00(9.88 GBあれ)で、vps 01と名前を変えました.
ボリュームグループの名前とスペースの大きさから、LogVol 00 vps 01をマウントする必要があると判断できます(LogVol 01 vps 01はswapです):
やっとcentos.imgのLVM論理パーティションをマウントできます.
使用後、順番にきれいにアンインストールする必要があります.
分類:Cloud | Virtualization | Thin|コメントなし
まずlosetupツールでcentos.imgファイルとloopデバイスをマッピングし、-fパラメータを使用して次の利用可能なloopデバイスを見つけます.
# losetup -f
/dev/loop0
# losetup /dev/loop0 /home/vpsee/centos.img
次に、fdisk/dev/loop 0を使用してcentos.imgのパーティションテーブルを表示します.-uパラメータは、cylinderではなくsectorを使用してオフセット量(offset)を記録することを示します.
# fdisk -u -l /dev/loop0
Disk /dev/loop0: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/loop0p1 * 63 208844 104391 83 Linux
/dev/loop0p2 208845 20964824 10377990 8e Linux LVM
各sectorは512バイト(bytes)であるため、offsetは208845 X 512=106928640に等しく、このoffsetは重要であり、以下の操作で使用される.
/dev/loop 0とcentos.imgのマッピングを解除し、offset=106928640でマッピングし直します.
# losetup -d /dev/loop0
# losetup /dev/loop0 /home/vpsee/centos.img -o 106928640
システムに2つのPV(物理ボリュームグループ)があることがわかります.1つはシステム自体で、1つはcentos.imgの中のPVです.この2つのPVの名前は同じです.システムをインストールしたときにデフォルトの名前を使っていたので、面倒になりました.後の操作でPVの名前を変えて、後続の操作を便利にしました.
# lvm pvscan
PV /dev/sda2 VG VolGroup00 lvm2 [465.66 GB / 0 free]
PV /dev/loop0 VG VolGroup00 lvm2 [9.88 GB / 0 free]
Total: 2 [475.53 GB] / in use: 2 [475.53 GB] / in no VG: 0 [0 ]
# lvm vgchange -ay
2 logical volume(s) in volume group "VolGroup00" now active
2 logical volume(s) in volume group "VolGroup00" now active
2つの同じ名前のVolGroup 00に名前を変更するので、まず彼らの異なるUUIDを見つけなければなりません.
# vgs -v
Finding all volume groups
Finding volume group "VolGroup00"
Finding volume group "VolGroup00"
VG Attr Ext #PV #LV #SN VSize VFree VG UUID
VolGroup00 wz--n- 32.00M 1 2 0 465.66G 0 dqfs1x-QBY1-kNRr-l0X0-RnoW-GgIR-ZfjkCS
VolGroup00 wz--n- 32.00M 1 2 0 9.88G 0 XrQNej-Aikn-qjxy-q7Lf-mBDk-gSfs-bLEgT6
上の2つ目はcentos.imgの中のVolGroup 00(9.88 GBあれ)で、vps 01と名前を変えました.
# vgrename XrQNej-Aikn-qjxy-q7Lf-mBDk-gSfs-bLEgT6 vps01
Volume group "VolGroup00" successfully renamed to "vps01"
ボリュームグループの名前とスペースの大きさから、LogVol 00 vps 01をマウントする必要があると判断できます(LogVol 01 vps 01はswapです):
# lvm lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
LogVol00 VolGroup00 -wi-ao 460.03G
LogVol01 VolGroup00 -wi-ao 5.62G
LogVol00 vps01 -wi--- 8.88G
LogVol01 vps01 -wi--- 1.00G
やっとcentos.imgのLVM論理パーティションをマウントできます.
# mount /dev/mapper/vps01-LogVol00 /mnt
# ls /mnt
bin dev home lib64 media opt root selinux sys usr
boot etc lib lost+found mnt proc sbin srv tmp var
使用後、順番にきれいにアンインストールする必要があります.
# umount /mnt
# vgchange -an vps01
0 logical volume(s) in volume group "vps01" now active
# losetup -d /dev/loop0
分類:Cloud | Virtualization | Thin|コメントなし