ループバックイメージからLVMパーティションを抜き出す方法
(書きかけ) VMware → Xen の仮想ディスク移行を行いました。
基本的には
- qemu-img convert で raw イメージに変換
- VMware で 2Gごとに分割されている場合は、それぞれを raw イメージに変換
- cat [filename.002] >> [filename.001] などの方法でファイルを連結
- 出来上がった巨大な仮想ディスクイメージが全体のディスク構成になる
fdisk -u <image file>
[mitsu@crest sip_server-01]$ sudo /sbin/fdisk -l -u -C 592 sip_server-f001.img
last_lba(): I don't know how to handle files with mode 81a4
Disk sip_server-f001.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 592 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
sip_server-f001.img1 * 63 208844 104391 83 Linux
sip_server-f001.img2 208845 8385929 4088542+ 8e Linux LVM
FC6などのLVM構成のインストールがデフォルトになっているディストロの仮想ディスクイメージの場合はこの中に LVM の PV が含まれる。以下はそのPV内にある VG/LVを救うための方法。
2番目のパーティション(FC6でのデフォルト構成の場合)がPVなので、上記の sip_server-f001.img2 の開始位置をバイトに変換 (512 * 208845) したものをオフセットとしてループバックマウント。
そこから vgscan で母艦のマシンのLVMに認識させる(!) ※ 母艦のLVMに同じVG名があったらダメかも。
[mitsu@crest sip_server-01]$ sudo /sbin/losetup usage: /sbin/losetup loop_device # give info /sbin/losetup -d loop_device # delete /sbin/losetup [ -e encryption ] [ -o offset ] loop_device file # setup [mitsu@crest sip_server-01]$ sudo /sbin/losetup -o $((512*208845)) /dev/loop7 sip_server-f001.img [mitsu@crest sip_server-01]$ sudo /sbin/vgscan Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2 Found volume group "vg00" using metadata type lvm2 <マウントできない。lvdisplay すると LV Status が NOT available に> [mitsu@crest sip_server-01]$ sudo /usr/sbin/lvchange -ay /dev/VolGroup00/LogVol00 [mitsu@crest sip_server-01]$ sudo mount /dev/VolGroup00/LogVol00 /mnt
添付ファイル
- vm_httpfilter.2 (6.5 KB) - 登録者 mitsu 5 年 前.
- vm_httpfilter.20070411 (4.9 KB) - 登録者 mitsu 5 年 前.
- vm_httpfilter (3.7 KB) - 登録者 mitsu 5 年 前.
