VMWareFusionで作った仮想マシンのHDDを60GBから150GBへ拡張した。そのままでは仮想マシン側のFedora23では拡張されたことは認識されないので、HDD拡張を認識させるためにやったことをまとめておく。
まずは
fdisk -lで認識されているディスク情報を確認する。
# fdisk -l
ディスク /dev/sda: 150 GiB, 161061273600 バイト, 314572800 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x4c356fd6
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sda1 * 2048 1026047 1024000 500M 83 Linux
/dev/sda2 1026048 125829119 124803072 59.5G 8e Linux LVM
ディスク /dev/mapper/fedora-root: 38.7 GiB, 41490055168 バイト, 81035264 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク /dev/mapper/fedora-swap: 2 GiB, 2147483648 バイト, 4194304 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク /dev/mapper/fedora-home: 18.9 GiB, 20254294016 バイト, 39559168 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
/dev/sda2を拡張させればいいと分かった。ここからは
partedで実施する。
# parted
GNU Parted 3.2
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
素直にhelpを実行する
(parted) help
align-check TYPE N パーティション N のアライメント(TYPE: min|opt)をチェックする
help [コマンド] ヘルプ表示。コマンド指定でそのヘルプを表示
mklabel,mktable ラベルの種類 新しいラベル(パーティションテーブル)を作る
mkpart パーティションの種類 [ファイルシステムの種類] 開始 終了
パーティションを作る
name NUMBER 名前 パーティションに名前をつける
print [devices|free|list,all|NUMBER]
パーティションテーブルや、利用可能なデバイス、空き領域、
見つかった全てのパーティション、あるいは特定のパーティションについて表示する
quit プログラムを終了する
rescue 開始 終了 開始、終了で指定した範囲付近にあるパーティションを復活させる
resizepart NUMBER END パーティション NUMBER を END にリサイズする
rm NUMBER パーティションを削除する
select デバイス 操作するデバイスを選択
disk_set FLAG STATE 選択したデバイスの FLAG を変更
disk_toggle [FLAG] 選択したデバイスの FLAG の状態をトグル
set NUMBER フラグ 状態 ファイルシステムのフラグと状態を設定する
toggle [NUMBER [FLAG]] パーティションのフラグの状態を反転する
unit UNIT デフォルトの単位を UNIT にする
version GNU Parted のバージョンと著作権情報を表示
念のためもう1回ディスク情報を確認する。
(parted) print all
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 161GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 64.4GB 63.9GB primary lvm
パーティション番号の2を変更したいので
resizepart [partition number]を利用する。
(parted) resizepart 2
終了? [64.4GB]? 150GB
(parted) p
モデル: VMware, VMware Virtual S (scsi)
ディスク /dev/sda: 161GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 151GB 150GB primary lvm
これでパーティションが変更された。次に物理ボリュームを変更する。
現在の情報を確認する。
# pvscan
PV /dev/sda2 VG fedora lvm2 [59.51 GiB / 4.00 MiB free]
Total: 1 [59.51 GiB] / in use: 1 [59.51 GiB] / in no VG: 0 [0 ]
物理ボリュームを変更する。
# pvresize /dev/sda2
Physical volume "/dev/sda2" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
変更されたか確認する。
# pvscan
PV /dev/sda2 VG fedora lvm2 [149.45 GiB / 89.95 GiB free]
Total: 1 [149.45 GiB] / in use: 1 [149.45 GiB] / in no VG: 0 [0 ]
次は論理パーティションを変更する
# lvextend -L +90G /dev/mapper/fedora-root
Insufficient free space: 23040 extents needed, but only 23026 available
そのまま拡張したサイズを指定しても1GB=1024KBの関係で拡張できないので少し小さくする。
# lvextend -L +89G /dev/mapper/fedora-root
Size of logical volume fedora/root changed from 38.64 GiB (9892 extents) to 127.64 GiB (32676 extents).
Logical volume root successfully resized.
ファイルシステムを最後に変更して完了。
# resize2fs /dev/mapper/fedora-root
resize2fs 1.42.13 (17-May-2015)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/fedora-root
Couldn't find valid filesystem superblock.
怒られた。
調べたらxfsのアイルシステムでは
resize2fsは使えないようなので
xfs_growfsを利用する。
# xfs_growfs /dev/mapper/fedora-root
meta-data=/dev/mapper/fedora-root isize=512 agcount=4, agsize=2532352 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1
data = bsize=4096 blocks=10129408, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=4946, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 10129408 to 33460224
再起動して
df -hなどで確認しておく。