1. 拡張前のディスク状況を確認 (ゲストの中から確認)
1-1. Windows7 の場合
2. ドメインを停止させる (ホストの CentOS 6 の GUI から操作。virsh でも可能)
↓
3. イメージ形式を変換・圧縮する (ホストの CentOS 6 のコンソールから操作)
$ su
# cd /var/lib/libvirt/images/
3-a. イメージフォーマットが RAW (非圧縮) だった場合はこちら。(RAW → QCOW2)
# mv Win7Pro64.img Win7Pro64.old3-b. イメージフォーマットが既に QCOW2 だった場合はこちら。(QCOW2 → QCOW2)
# qemu-img convert -f raw -O qcow2 Win7Pro64.old Win7Pro64.qcow2
※ゲストが問題なく動作したら、Win7Pro64.old は削除する。
ストレージを使い込んでいる場合、再変換することによりイメージファイルが小さくなる可能性がある。3-c. イメージフォーマットが既に QCOW2 で、圧縮もバックアップも必要ない場合はこちら。
# mv Win7Pro64.img Win7Pro64.old
# qemu-img convert -c -O qcow2 Win7Pro64.old Win7Pro64.qcow2
※ゲストが問題なく動作したら、Win7Pro64.old は削除する。
# mv Win7Pro64.img Win7Pro64.qcow2
4. イメージを拡張して再度マウント
4-1. ディスクイメージを拡張する。
# qemu-img resize Win7Pro64.qcow2 +76G4-2. イメージファイルのフォーマットを QCOW2 へ変更 (ホストの CentOS 6 の GUI から操作)
(増加ではなく大きさを指定する場合は 76G を指定する)
Storage format を qcow2 にして ボタンをクリックする。
![]()
Storage format:
↓
5. ドメインを開始する (ホストの CentOS 6 の GUI から操作)
↓
7. ゲストの中でパーティションを調節する
7-1. Windows7 の場合 (Vista 以降で可能)
7-1-1.
「未割り当て」のパーティションが増えていることが分かる。
7-1-2.
拡張したいパーティション (ここでは C:) を選択し、
メニューから [操作(A)]-[すべてのタスク]-[ボリュームの拡張(X)] を選択する。
7-1-3.
7-1-4.
分かりにくい日本語だが、
「ボリュームを拡張できます」
と書いてある。
7-1-5.
7-1-6. システムボリューム拡張完了
8. ゲスト OS が Linux (xfs) の例:
ゲストの仮想ディスク 40GB → 100GB
# virsh shutdown guest # ゲスト OS 停止
# qemu-img resize r9-exp.qcow2 100G # ゲストの仮想ディスクを 100GB へ拡張
# virsh start guest # ゲスト OS 開始
…ゲスト OS へログイン…
guest# fdisk /dev/vda
guest# reboot # ゲスト OS を再起動
fdisk (util-linux 2.37.4) へようこそ。 ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。 書き込みコマンドを使用する際は、注意して実行してください。 This disk is currently in use - repartitioning is probably a bad idea. It's recommended to umount all file systems, and swapoff all swap partitions on this disk. コマンド (m でヘルプ): p ⏎ ディスク /dev/vda: 100 GiB, 107374182400 バイト, 209715200 セクタ 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0x33554bb6 デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ /dev/vda1 * 2048 2099199 2097152 1G 83 Linux /dev/vda2 2099200 83886079 81786880 39G 8e Linux LVM ← これを拡張 コマンド (m でヘルプ): d ⏎ パーティション番号 (1,2, 既定値 2): 2 ⏎ パーティション 2 を削除しました。 コマンド (m でヘルプ): n ⏎ パーティションタイプ p 基本パーティション (1 プライマリ, 0 拡張, 3 空き) e 拡張領域 (論理パーティションが入ります) 選択 (既定値 p): p ⏎ パーティション番号 (2-4, 既定値 2): 2 ⏎ 最初のセクタ (2099200-209715199, 既定値 2099200): ⏎ 最終セクタ, +/-セクタ番号 または +/-サイズ{K,M,G,T,P} (2099200-209715199, 既定値 209715199): ⏎ 新しいパーティション 2 をタイプ Linux、サイズ 99 GiB で作成しました。 パーティション #2 には LVM2_member 署名が書き込まれています。 署名を削除しますか? [Y]es/[N]o: n ⏎ ← 署名は削除しない コマンド (m でヘルプ): w ⏎ パーティション情報が変更されました。 ディスクを同期しています。
…再起動…
guest# pvresize /dev/vda2 # ボリュームサイズを変更
guest# lvextend -l +100%FREE /dev/rl/root # 論理ボリュームサイズを変更
Physical volume "/dev/vda2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
guest# xfs_growfs / # ファイルシステムを拡張
Size of logical volume rl/root changed from <37.00 GiB (9471 extents) to <97.00 GiB (24831 extents). Logical volume rl/root successfully resized.
meta-data=/dev/mapper/rl-root isize=512 agcount=9, agsize=1113856 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=1 inobtcount=1 nrext64=0 data = bsize=4096 blocks=9698304, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 9698304 to 25426944