[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 を使えるようにしたらコピーする。

[email protected]:/mnt/lvm1$ cp /mnt/lvm1/var/lib/xen/images/SVVCO501.img ~


スポンサードリンク

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

[email protected]:~$ sudo aptitude install kpartx
[email protected]:~$ 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
[email protected]:~$ sudo mkdir /mnt/img
[email protected]:~$ sudo losetup /dev/loop0 ~/SVVCO501.img
[email protected]:~$ sudo losetup -a
/dev/loop0: [0801]:1441812 (/home/casey/SVVCO501.img)
[email protected]:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
[email protected]:~$ 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
[email protected]:~$ sudo mkdir /mnt/xen
[email protected]:~$ sudo mkdir /mnt/p1
[email protected]:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
[email protected]:~$ 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   ]
[email protected]:~$ sudo vgscan
Reading all physical volumes.  This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
[email protected]:~$ sudo lvscan
ACTIVE            '/dev/VolGroup00/LogVol00' [35.69 GiB] inherit
ACTIVE            '/dev/VolGroup00/LogVol01' [1.47 GiB] inherit
[email protected]:~$ ls /mnt/p1
[email protected]:~$ ls /dev/mapper/
VolGroup00-LogVol00  VolGroup00-LogVol01  control  loop0p1
[email protected]:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
[email protected]:~$ 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   ]
[email protected]:~$ sudo losetup -a
/dev/loop0: [0801]:1441812 (/home/casey/SVVCO501.img)
[email protected]:~$ sudo losetup -f
/dev/loop1
[email protected]:~$ sudo kpartx /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
[email protected]:~$ sudo kpartx -l /dev/loop0
loop0p1 : 0 208782 /dev/loop0 63
loop0p2 : 0 20755980 /dev/loop0 208845
[email protected]:~$ sudo kpartx -a /dev/loop0
[email protected]:~$ sudo ls /dev/mapper/
VolGroup00-LogVol00  VolGroup00-LogVol01  control  loop0p1  loop0p2
[email protected]:~$ sudo umount /mnt/lvm1/
[email protected]:~$ sudo vgchange -an
0 logical volume(s) in volume group "VolGroup00" now active
0 logical volume(s) in volume group "VolGroup00" now active
[email protected]:~$ 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   ]
[email protected]:~$ sudo vgscan
Reading all physical volumes.  This may take a while...
Found volume group "VolGroup00" using metadata type lvm2
[email protected]:~$ sudo vgchange -ay
2 logical volume(s) in volume group "VolGroup00" now active
[email protected]:~$ sudo mkdir /mnt/p2
[email protected]:~$ sudo mount /dev/VolGroup00/LogVol00 /mnt/p2
[email protected]:~$ cd /mnt/p2
[email protected]:/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
[email protected]:/mnt/p2$ ls ./var/www/
.wkyInstaller  error/         html/
cgi-bin/       geeklog/       icons/
[email protected]:/mnt/p2$ cd
[email protected]:~$ sudo umount /mnt/p2/
[email protected]:~$ sudo vgchange -an
0 logical volume(s) in volume group "VolGroup00" now active
[email protected]:~$ sudo kpartx -d /dev/loop0
[email protected]:~$ sudo losetup -d /dev/loop0
[email protected]:~$ sudo losetup -a


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

[email protected]:/mnt/p2$ sudo vi boot/grub/menu.lst


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

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

[email protected]:/mnt/p2$ sudo aptitude install qemu
[email protected]:~$ qemu-img convert SVVCO501.img -O vmdk SVVCO501.vmdk


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

関連記事

スポンサードリンク

Comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です