QEMUのパーティションサイズの拡張

KVMで使用しているWindows用のパーティションサイズを拡張できたのでメモ。
イメージファイルはあらかじめRAWで作成していること。
あと、Knoppixを用意しておく。


最初にddで拡張するサイズ分の一時ファイルを作成する
例えば5G増やすとすると以下のようになる

$ dd if=/dev/zero of=tmp.img seek=10485760

ちなみにseekに10485760をセットしているのは、seek*512バイトで計算するから。
5*1024*1024*1024/512=10485760


そしてcatでイメージファイルを繋げる

$ cat winxp_pro.img.org tmp.img > winxp_pro.img


この時点では既存パーティションには影響が無くからの領域が追加されるだけとなる。
Windowsを起動するとCドライブと空の領域が見えて、この空領域を新規パーティションとして作成が可能な状態となる。


これではまずいのでQTPartedで既存パーティションをリサイズする。
KnoppixにはQTPartedがデフォルトでインストールされているので、以降の操作はKnoppixから行う。
hdaにWindowsのイメージファイルを指定して、KVM+Knoppixで起動する。

$ sudo kvm -m 512 -cdrom "knoppix_v5.1.1DVD_20070104-20070122+IPAFont_AC20070123.iso" -hda winxp_pro.img -boot d  -usb -localtime


まずQTPartedで既存パーティションをリサイズする。
リサイズが済んだら、ntfsresizeでNTFSのリサイズを行う。

# ntfsresize -s 15G /dev/hda1

15Gなのは元々が10Gで追加分が5Gだから。


後はWindowsKVMから起動するだけ。
ちなみに自分の環境では、Windows起動時にファイルシステムのチェックが入り、Windowsが起動すると再起動が必要だった。