2014年01月11日 (土) [長年日記]
_ 旧サーバのHDD吸い出し
こないだ撤去した旧サーバ.たぶんもう起動することはないだろうけど,念のためHDDの中身をすべてイメージで保存することにした.全部イメージ化しておけば,あとで何か中のファイルが必要になってもVMで取り出せるだろう.
イメージ化のためには,少なくとも同じ容量の空きドライブが必要になる.そんなにでかい空き容量のHDDはメインPCにしかなかったので,旧サーバからHDDを引っこ抜き,USB接続でメインPCにつないだ.そしてメインPC内の仮想VM上のlinuxで,ddとqemu-imgでvmdkファイルまで作った.また,このままでは元のHDDと同じサイズのでかいイメージファイルになる.実際に使っているのはせいぜい数GB.ところが,なぜかvmware-toolbox-cmdでのdisk shrinkがエラーになった.そこでググってみたところ,/dev/zeroを使い,空き領域いっぱいに中身がゼロでうまったファイルを作り,それを消してからvmdkを圧縮するという,なるほど目からウロコ的な方法を見つけた.ということでうまくコンパクトにHDDをイメージ化できた.
いちおう手順のメモを残しとこう(パスやファイル名は適宜読み替える).
1.USB接続したディスクのデバイスを調べる
fdisk -l
2.イメージをrawで抜き出し
dd if=/dev/sd??? of=HDDimage.img
3.rawイメージをvmdk形式に
qemu-img convert -f raw HDDimage.img -O vmdk HDDimage.vmdk
4.いったんVMを終了して,できたHDDimage.vmdkをホスト側にコピー,仮想VM用の別ディスクとしてマウント
fdisk -l mount /dev/sd??? /tekitou
5.そのパーティションいっぱいにファイルを作る.ディスクフルになれば適当に止まる
dd if=/dev/zero of=/tekitou/zero
6.できたファイルを消す
rm /tekitou/zero
7.VMを終了し,VMwareのホストでディスク圧縮