PR

[VMware][Xen] Dom0が起動しないXen img を vmdk に変換(2)

前回の続き。

2日目

USB 変換器を持ってきた。

  1. まず、USB で壊れたハードディスクをUbuntu につなぐ
  2. Domain0 ホストOS が CentOS だからLVM を使えるようにして、マウントする
  3. マウントしたらXenのimg をUbuntu に転送する
  4. Xen の img をVMware 形式(vmdk)に変換する

さて、問題はここからなのだ。これまで行った経験のある作業だと、DomainU 上からkernel やgrub を書き換えたが、今度はそうもいかない。どうしたものか。

Xen img をマウントしてループバック、さらにCentOS だからLVM もマウント。が、前回作業がうまくいかない。(あとになって思えば、もしかしたらchroot すればよかったのかもしれないが;後述)

壊れたHDD をUSB で繋ぎ、イメージを退避

LVM を使えるようにしたらコピーする。


casey@vm:/mnt/lvm1$ cp /mnt/lvm1/var/lib/xen/images/SVVCO501.img ~


スポンサードリンク

Xen img をマウントしたけど諦める


casey@vm:~$ sudo aptitude install kpartx
casey@vm:~$ file SVVCO501.img
SVVCO501.img:  x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot  drive 0x80, 1st sector stage2 0x1c43f; partition 1: ID=0x83, active,  starthead 1, startsector 63, 208782 sectors; partition 2: ID=0x8e,  starthead 0, startsector 208845, 20755980 sectors, code offset 0x48
casey@vm:~$ sudo mkdir /mnt/img
casey@vm:~$ sudo losetup /dev/loop0 ~/SVVCO501.img
casey@vm:~$ sudo losetup -a
/dev/loop0: [0801]:1441812 (/home/casey/SVVCO501.img)
casey@vm:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
casey@vm:~$ sudo fdisk -lu /dev/loop0

ディスク /dev/loop0: 10.7 GB, 10737418240 バイト
ヘッド 255, セクタ 63, シリンダ 1305, 合計 20971520 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000d8912

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/loop0p1   *          63      208844      104391   83  Linux
/dev/loop0p2          208845    20964824    10377990   8e  Linux LVM
casey@vm:~$ sudo mkdir /mnt/xen
casey@vm:~$ sudo mkdir /mnt/p1
casey@vm:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
casey@vm:~$ sudo pvscan
PV /dev/sdb2   VG VolGroup00   lvm2 [37.16 GiB / 0    free]
Total: 1 [37.16 GiB] / in use: 1 [37.16 GiB] / in no VG: 0 [0   ]
casey@vm:~$ sudo vgscan
Reading all physical volumes.  This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
casey@vm:~$ sudo lvscan
ACTIVE            '/dev/VolGroup00/LogVol00' [35.69 GiB] inherit
ACTIVE            '/dev/VolGroup00/LogVol01' [1.47 GiB] inherit
casey@vm:~$ ls /mnt/p1
casey@vm:~$ ls /dev/mapper/
VolGroup00-LogVol00  VolGroup00-LogVol01  control  loop0p1
casey@vm:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
casey@vm:~$ sudo pvscan
PV /dev/sdb2   VG VolGroup00   lvm2 [37.16 GiB / 0    free]
Total: 1 [37.16 GiB] / in use: 1 [37.16 GiB] / in no VG: 0 [0   ]
casey@vm:~$ sudo losetup -a
/dev/loop0: [0801]:1441812 (/home/casey/SVVCO501.img)
casey@vm:~$ sudo losetup -f
/dev/loop1
casey@vm:~$ sudo kpartx /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
casey@vm:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
casey@vm:~$ sudo kpartx -a /dev/loop0
casey@vm:~$ sudo ls /dev/mapper/
VolGroup00-LogVol00  VolGroup00-LogVol01  control  loop0p1  loop0p2
casey@vm:~$ sudo umount /mnt/lvm1/
casey@vm:~$ sudo vgchange -an
0 logical volume(s) in volume group "VolGroup00" now active
0 logical volume(s) in volume group "VolGroup00" now active
casey@vm:~$ sudo pvscan
PV /dev/dm-3   VG VolGroup00   lvm2 [9.88 GiB / 0    free]
Total: 1 [9.88 GiB] / in use: 1 [9.88 GiB] / in no VG: 0 [0   ]
casey@vm:~$ sudo vgscan
Reading all physical volumes.  This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
casey@vm:~$ sudo vgchange -ay
2 logical volume(s) in volume group "VolGroup00" now active
casey@vm:~$ sudo mkdir /mnt/p2
casey@vm:~$ sudo mount /dev/VolGroup00/LogVol00 /mnt/p2
casey@vm:~$ cd /mnt/p2
casey@vm:/mnt/p2$ ls
bin   dev  home  lost+found  misc  net  poweroff  root  selinux  sys  usr
boot  etc  lib   media       mnt   opt  proc      sbin  srv      tmp  var
casey@vm:/mnt/p2$ ls ./var/www/
.wkyInstaller  error/         html/
cgi-bin/       geeklog/       icons/
casey@vm:/mnt/p2$ cd
casey@vm:~$ sudo umount /mnt/p2/
casey@vm:~$ sudo vgchange -an
0 logical volume(s) in volume group "VolGroup00" now active
casey@vm:~$ sudo kpartx -d /dev/loop0
casey@vm:~$ sudo losetup -d /dev/loop0
casey@vm:~$ sudo losetup -a


上記で諦めたのは以下ができなかったから。たぶんchroot すればよかったのだろう。

casey@vm:/mnt/p2$ sudo vi boot/grub/menu.lst


諦めてqemu でXen img を vmdk に変換

これも前にやった作業なので問題ない。


casey@vm:/mnt/p2$ sudo aptitude install qemu
casey@vm:~$ qemu-img convert SVVCO501.img -O vmdk SVVCO501.vmdk


前回よりえらく時間がかかった。マシン性能によるものだと思う。

コメント