vmwareのハードディスクを縮小する

(注)以下の方法はゲストOSのデータを失う可能性があります。

ここでは65Gのハードディスクを30Gに縮小する。65Gのハードディスクにはプライマリパーティションが1つしかなく、それが全領域を占めている。そして、65Gのうち40G位は空いていなければならない。またホストにはあらじめ30G位の空き領域がなければならない。

1、ゲストの65Gのハードディスクを25Gと40Gのパーティションに区切り、データを25Gの方に移動する。

ここではUbuntuのLiveCD(ubuntu-ja-9.04-desktop-i386-20090510.iso)を使う。
このisoをゲストに接続し、”コンピュータに変更を加えないでUbuntuを使ってみる”で起動する。

ubustart

[システム]→[システム管理]→[パーティションエディタ]を選択して、gpartedを起動する。

パーティションをリサイズし25Gで区切り、[適用]をクリックして実行する。これでデータはすべて25Gの方に移る。

gparted-resize

Ubuntuをシャットダウンし(右上のボタン)、isoを切り離して、OSを起動してみて、起動できるかを一応確認しておく。

2、30Gのハードディスクを新しく作成しデータをコピーする

次に30Gのハードディスクを新しく作成して、ゲストに接続し、再びUbuntuをLiveモードで起動する。

再びgpartedを起動し、新しく追加した30Gのハードディスクにパーティションを追加する。このパーティションはハードディスク全領域にする。フォーマットはしなくていい。
partition-noformat

またこのとき、65Gと30Gのハードディスクのパスを確認しておく。ここでは65Gは/dev/sda、30Gは/dev/sdbになっている。

[アプリケーション]→[アクセサリ]→[端末]を選択して、以下のコマンドを実行してハードディスクをコピーする。(間違えるとデータが全部消える。ifは入力、ofは出力、sda1やsdb1の1は最初のパーティションを意味する。)

dd

コピーが終了したら、再びgpartedを起動し、30Gのハードディスクのパーティションを全領域にする。その後、30Gのハードディスクにbootフラグを付ける。

flag

Ubuntuをシャットダウンし、ゲストから65Gのハードディスクを切りはなし、30Gのハードディスクから立ち上がるかを確認する。

成功したら65Gのハードディスクをホストから削除する。