CentOS 上にVMware Server2 インストール していたが、ハードディスクも随分安くなったから大容量のものに交換した。
ハードディスクのコピー
元のハードディスクから新しいハードディスクに Acronis True Image 11 Home を使ってコピーする。この時、/boot と LVM があるのでLVM を大きくしつつコピーしたかったがどういうわけか/boot だけがリサイズ可能だった。仕方ないのでそのままのパーティションサイズでコピーする。
パーティションサイズの変更
コピーしたハードディスクは後方が空いている状態だからEASEUS Partition Manage を使ってパーティションサイズを変更しようとしたら、ブータブルなのはフリーでは提供されていないらしいからGParted を使うことにした。
ここで初めてLVM が対象外なことを知る…。
スポンサードリンク
Ubuntu で構築しなおす
活用されることのないLVM が面倒で、ext4 が不安要素を残しながらも魅力的であることから新しいハードディスクに Ubuntu にVMware Server2 をインストール。ついでにコピーしたもので起動するとGRUB で止まってしまうのでそれを直すのも面倒になってしまったというのもある。
LVM をマウントして仮想マシンをコピーする
そんなこんなで取り敢えずUbuntu に VMware Server2 がインストールされ、SSH もインストールしてそれっぽくなった。古いハードディスクから仮想マシンのデータを引き継ぐ。ここでもLVM が面倒をかけてくれる。
LVM を扱えるようにする
$ sudo aptitude install lvm-common lvm2
LVM を探す
$ sudo lvm vgscan Reading all physical volumes. This may take a while... Found volume group "VolGroup00" using metadata type lvm2
LVM をマウントする
$ sudo lvm vgchange -a y 2 logical volume(s) in volume group "VolGroup00" now active $ sudo mkdir /media/sda $ sudo mount /dev/VolGroup00/LogVol00 /media/sda $ ls /media/sda/ bin dev home lost+found misc net proc sbin srv tmp var boot etc lib media mnt opt root selinux sys usr
マウントできた。
データのコピー
$ sudo cp /media/sda/var/lib/vmware/ /var/lib/vmware/ -vru
以下は必要かどうかわからない
$ sudo chown casey /var/lib/vmware/ -R
LVM のマウント解除
$ sudo umount /media/sda/
USB をマウントして仮想マシンをコピーする
通常のハードディスクに器具を取り付けることで、手軽にUSB ドライブにする道具がある。1つ持っていると意外に重宝する。これを使ってコピーもしくは移動する手順をオマケ程度にメモ。(買いたくない場合や手元にない場合はknoppixを使ってもよい)
マウントポイント作成
$ sudo mkdir /media/sda
接続状態の確認
以下のコマンドで確認する。(偶然全く同じ内容になってしまったのでわかりにくいが)
$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0009bcea Device Boot Start End Blocks Id System /dev/sda1 * 1 58567 470434816 83 Linux /dev/sda2 58567 60802 17948673 5 Extended /dev/sda5 58567 60802 17948672 82 Linux swap / Solaris Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0001ee44 Device Boot Start End Blocks Id System /dev/sdb1 * 1 60037 482241536 83 Linux /dev/sdb2 60037 60802 6141953 5 Extended /dev/sdb5 60037 60802 6141952 82 Linux swap / Solaris
マウントする
上記で、以下に対象のデータを保存している事がわかったのでマウントする。
/dev/sdb1 * 1 60037 482241536 83 Linux
$ sudo mount /dev/sdb1 /media/sda
コピーする
$ sudo cp /media/sda/var/lib/vmware/ /var/lib/vmware/ -vru
rsync でコピー
[Linux] Linkstation に rsync で VMware バックアップ(後日公開)
起動試験
必要と思うファイルをコピーしたが足りないのか仮想マシンは作り直しになったが、単にvmx ファイルをインベントリに追加 してやればいい。
Linux 系はSSH だけなので不必要だが、 Windows 系は仮想マシンへのショートカット から起動している。インベントリに追加しなおした影響で仮想マシンの番号が変わってしまったらしくVMware Remote Console から認証できない。WebUI からは問題ない。ショートカットは作り直した。
vmdk ファイルの圧縮を行う
ついでなので Xen イメージをVMware イメージに変換する で変換したvmdk を圧縮する。中身はCentOS+LVM でLVM の影響かそういうものなのか不明だが20G のDomainU だったから20G img ファイルは20G のvmdk が出来上がっていた。
仮想マシン内の使用容量はさほど無いから小さくできるのでは?と思ってvmshrink を実行する。Windows ではVMware Tools を使っていたが、入手先が閉鎖してしまったのとLinux+CUI での方法をもう一度勉強しなおした。
結果として 20Gのファイルが6G になった。
起動できない
ほとんどの仮想マシンが問題なかったが重要な CentOS がeth0 のLinkUp が上手くいかない。設定などは変更していないハズなのだが。結局ネットワーク関連の設定をあれこれ見直したがわからず、最終手段でルーターの再起動をしたら何事もなかったようにネットワークにつながったorz
※Ubuntu は sudo を使いまくる。root になりたいときは su – ではなく su -i を使うらしい。使ったこと無いけど。ただ気になるのはWinSCP でroot になるにはどうすればいいんだろ。後で探そう…。
参考文献
- 肥大した仮想ディスクの圧縮 | StarPlatinum.jp
- KnoppixでLVMをマウントする – しょうこりもなくブログる
- ディレクトリごとファイルをコピーするには
コメント