KVMゲスト ( Windows ) のディスク容量を変更する

小ネタ

KVMゲスト上で動作している Windows OS のディスクサイズを変更するための手順。
Windows と書いていますが、Windows以外のOSでも似たような手順で容量を変更可能かと思います。

はじめに

Windows (物理サーバ) 上で起動しているサービスを仮想化するためにKVMゲスト上にWindows をインストールしたのですが、ディスク容量を少なく設定したためOSをインストールした状態で既に空き容量が400MB程度という状況に。

SQLサーバをインストールしようとしたところ、空き容量が足りずにインストールできませんでした。

KVMゲストを作り直すという手もありますが、ここでは GParted Live CD を利用してパーティションサイズを変更します。

以下手順を示します。

※パーティションをリサイズするツールには幾つかありますが、GParted Live CD は無料で利用可能で、且つ、商用利用もOKです。

環境

環境は以下になります。

KVMホストOS CentOS 6.8
KVMゲストOS Windows
多分2000以降なら同様の手順で行けると思う

手順

※作業をはじめる前に、ディスク容量を変更するKVMゲストはシャットダウンし、必ずKVMイメージのバックアップを取りましょう。

KVMイメージのチェック

KVMイメージのフォーマットとサイズをチェックします。

# qemu-img info /var/lib/libvirt/images/<イメージファイル名>

※ file format: raw になっている事。

ファイル容量の拡張

dd コマンドを利用しKVMイメージのファイル容量を増やします。

# dd if=/dev/zero of=<イメージファイル名>  bs=1G count=12 seek=8

上記は8GBのイメージに12GB追加し、20GBにする場合の例です。
追加するサイズを増やす場合 count=n の値を増やしてください。
元のイメージが 10GBの場合には seek=10 という風になります。

ここまでの手順は Linuxゲスト(LVM)の場合 と同様です。

Gparted Live CD の取得

パーティションリサイズを行うためのソフトウェアである GParted Live CD を取得します。

GParted -- Download から Stable Releases 版 (ISOイメージファイル) をダウンロードします。
KVMホストの適当なディレクトリにダウンロードして下さい。

※記事執筆時点ではDownload gparted-live-0.26.1-1-i686.iso

$ wget http://downloads.sourceforge.net/gparted/gparted-live-0.26.1-1-i686.iso

KVMゲスト設定

先ず、KVMゲストで GParted Live CD を起動するための設定を行います。

設定は "仮想マシンマネージャ" を利用して行います。
仮想マシンマネージャを利用したKVMゲストの設定変更方法に関しては GUIでKVMの仮想マシンを管理する#仮想マシンの設定変更 を参照して下さい。

CDROMの追加

先ず、GParted Live CD を CDROMデバイスとして登録します。

  1. 仮想マシンの情報を表示します。
  2. 右下にある [ハードウェアを追加]ボタンをクリックします。
  3. "Add New Virtual Hardware" ウィンドウが開くので、左ペインの "Storage" を選択します。
  4. 右側にストレージ設定画面が表示されるので、以下を設定します。
    ”管理しているストレージか、他の既存のストレージを選択する"先にダウンロードした GParted Live CD の ISOイメージファイルを選択
    デバイスの種類IDE cdrom
    CDROM追加
  5. 設定できたら、[完了]ボタンをクリックします。
    情報表示画面の右ペインに"IDE CDROM" が追加されている事を確認して下さい。

起動オプションの変更

次にKVMゲストの起動オプションを変更します。

  1. 仮想マシンの情報表示画面の右ペインにある "Boot Options" を選択します。
  2. 起動オプションの設定画面が表示されるので、以下設定します。
    起動デバイスの順序"Enable boot menu" をチェックし、"CDROM" を "Hard Disk" より上に
    Boot Options

GParted Live CD の実行

  1. 起動順が設定できたら、KVMゲストを(再)起動します。
    設定に問題なければ、CDROMから起動が行われ GParted Live CD の起動メニューが表示されます。

    GNOME Partition Editor
  2. GParted Live (Default settings) を選択します。
    放置しておけば勝手に起動します。
  3. keymap の選択入力画面が表示されたら "Don't touch keymap" を選択します。
  4. 次に言語の選択入力を促されるので "Japan" を探して表示されている数字 ( 恐らく 15 ) を入力します。
  5. 次に起動モードの選択入力を促されます。"(0) Continue to start X to use GParted automatically" を入力します。
    ( デフォルトで 0 が選択されているので、そのままリターンでOK )
  6. GParted の画面が表示されるので、リサイズするパーティションが表示されている事を確認します。
    GParted

    ※別パーティションが表示されている場合、メニューから [GParted] > [デバイス] をクリックし、捜査対象のデバイスを選択。

  7. 拡張するパーティションを選択/右クリックし、コンテキストメニューから [リサイズ/移動] をクリックします。
    リサイズ/移動 ウィンドウが表示されるので、新しいサイズを設定して [リサイズ/移動] ボタンをクリックします。
    先にファイル容量を増やした部分全部割り当てるので前方/後方の空き共に0に設定すればOKです。
  8. 変更後の状態が表示されるので、問題なければメニューから [編集] > [保留中の全ての操作を適用する] をクリックします。
    パーティションサイズが変更されます。
    GParted

Windowsの起動

  1. パーティションがリサイズされたら、KVMゲストをシャットダウンします。
  2. 先に設定した起動順序 ( HDD から起動されるように ) を元に戻し、KVMゲストを起動します。
  3. GParted Live CD で拡張したパーティションが正しく認識されるかどうか確認して下さい。

    ※ゲストOSによって確認方法は異なる

まとめ

Linux OS の KVM ゲストを作成するのと同じ感覚で作成した場合、Windows だとディスク容量が足りなくなりがちな気がします。

こういった場合も、KVMゲストの再作成ではなく GParted Live CD を利用する事で解決可能な場合は多いでしょう。

GParted Live CD は、物理サーバでパーティションをリサイズしたい場合にも利用可能なので、PC/サーバ管理者なら一枚は手元に用意しておいてもいいかもしれません。