VMware Workstation 15 Player CentOS7(Scientific Linux 7.x)のディスク領域拡張

VMware側での作業

VMware Workstation 15 Playerを起動して、対象のCentOS 7(Scientific Linux 7.x)を選択します。


右ペイン下に表示されている「仮想マシン設定の編集」をクリックします。


表示される「仮想マシン設定」画面で、「ハードディスク(SCSI)」を選択します。

右ペインの「展開」ボタンをクリックします。


表示される「ディスク容量の拡張」画面で、拡張したいディスク容量を指定して、「展開」ボタンをクリックします。

「仮想マシン設定」画面でOKボタンをクリックして保存します。

VMware Workstation 15 Player側の作業はこれだけです。

対象の仮想マシンここでは、CentOS 7を起動してください。

CentOS7(Scientific Linux 7.x)側での作業

注意:

私の環境では、既に40GBほど拡張済みなので、既に/dev/sda3が存在している。

初めてボリューム拡張する場合は、/dev/sda4でなく、/dev/sda3になるので以降の記載では、/dev/sda4を/dev/sda3と読み替えて作業してください。

VMware側でディスク領域を拡張してもCentOS 7ではディスク容量は変化しない。

suでスーパーユーザーに移行してください。

dfコマンドで現在のディスクを確認すると以下の表示になり、CentOS 7(/dev/mapper/centos-root)で、136Gと表示されている。

[root@centos7-xxx-jp xxx]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.9G     0  2.9G    0% /dev
tmpfs                     2.9G  4.0K  2.9G    1% /dev/shm
tmpfs                     2.9G   13M  2.9G    1% /run
tmpfs                     2.9G     0  2.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   136G   73G   63G   54% /
/dev/sda1                1014M  401M  614M   40% /boot
vmhgfs-fuse               930G  793G  138G   86% /mnt/hgfs
tmpfs                     579M   56K  579M    1% /run/user/1000
tmpfs                     579M     0  579M    0% /run/user/0
[root@centos7-xxx-jp xxx]#

fdiskコマンドで現在のディスクを確認すると以下の表示になる。

[root@centos7-xxx-jp xxx]# fdisk -l

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a79a5

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   209715199   103808000   83  Linux
/dev/sda3       209715200   293601279    41943040   83  Linux

Disk /dev/mapper/centos-root: 145.1 GB, 145080975360 bytes, 283361280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

Disk /dev/mapper/centos-swap: 4160 MB, 4160749568 bytes, 8126464 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

[root@centos7-xxx-jp xxx]#

/dev/sdaの表示が、214.7 GBと表示されているので、領域としては、拡張した200GBの容量を認識している。

fdiskを使用して物理ボリュームの拡張を行う。

[root@centos7-xxx-jp xxx]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

コマンド (m でヘルプ):

[p]を入力して、パーティションテーブルを出力して、パーティションの数を識別します。初めて領域拡張する場合は、/dev/sda3は表示されずsda1とsda2が表示されます。

コマンド (m でヘルプ): p

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a79a5

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   209715199   103808000   83  Linux
/dev/sda3       209715200   293601279    41943040   83  Linux

コマンド (m でヘルプ):

[n]を入力して、新規でプライマリーパーティションを作成します。

Partition typeへは、primaryの[p]を入力します。

コマンド (m でヘルプ): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p

以降は、デフォルトで問題無いので、全てEnterで進めます。

以下で、「Selected partion 4」となっているのは、既にパーティションを追加しているためなので、初めての場合は、「Selected partion 3」となります。

Selected partition 4
最初 sector (293601280-419430399, 初期値 293601280):
初期値 293601280 を使います
Last sector, +sectors or +size{K,M,G} (293601280-419430399, 初期値 419430399):
初期値 419430399 を使います
Partition 4 of type Linux and of size 60 GiB is set

コマンド (m でヘルプ):

私の場合、system partition IDは、Linuxだったので、変更していませんが、system partition IDがLinux LVMと表示されている場合は、

[t]を入力して、system partition IDの変更を行ってください。

[t]の後、「Selected partion」で表示されている番号、初めての場合は3を入力してパーティションを選択し、[8e]を入力して、Linux LVMパーティションに変更してください。

ここまで完了したら、[w]を入力してパーティションテーブルに変更を書き込みます。

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。

WARNING: Re-reading the partition table failed with error 16: デバイスもしくはリソースがビジー状態です.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
ディスクを同期しています。
[root@centos7-xxx-jp xxx]#

WARNINGが表示されますが、再起動することで反映されますのでご心配なく。

仮想マシンを再起動します。

fdiskで確認してみます。

[root@centos7-xxx-jp xxx]# fdisk -l

Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x000a79a5

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   209715199   103808000   83  Linux
/dev/sda3       209715200   293601279    41943040   83  Linux
/dev/sda4       293601280   419430399    62914560   83  Linux

Disk /dev/mapper/centos-root: 145.1 GB, 145080975360 bytes, 283361280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

Disk /dev/mapper/centos-swap: 4160 MB, 4160749568 bytes, 8126464 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト

[root@centos7-xxx-jp xxx]#

/dev/sda4に60GBの領域が割り当てられています。
初めて領域を拡張する場合は、/dev/sda3に割り当てられているはずです。

pvcreateコマンドで新しいパーティションを物理ボリュームに変換します。

何度も書きますが、初めて領域を拡張する場合は、/dev/sda3になります。

[root@centos7-xxx-jp xxx]# pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created.
[root@centos7-xxx-jp xxx]#

vgdisplayコマンドで、ボリュームグループ名を確認して、

vgextendコマンドで、物理ボリュームを拡張します。

[root@centos7-xxx-jp xxx]# vgdisplay -C
  VG     #PV #LV #SN Attr   VSize   VFree
  centos   2   2   0 wz--n- 138.99g    0
[root@centos7-xxx-jp xxx]#

[root@centos7-xxx-jp xxx]# vgextend centos /dev/sda4
  Volume group "centos" successfully extended
[root@centos7-xxx-jp xxx]#

vgdisplayコマンドで、拡張されたボリュームを確認します。

[root@centos7-xxx-jp xxx]# vgdisplay -C
  VG     #PV #LV #SN Attr   VSize    VFree 
  centos   3   2   0 wz--n- <198.99g <60.00g
[root@centos7-xxx-jp xxx]#

lvextendコマンドで、FREEの全ての領域を使用して論理ボリュームを拡張します。

[root@centos7-xxx-jp xxx]# lvextend -l +100%FREE /dev/centos/root
  Size of logical volume centos/root changed from <135.12 GiB (34590 extents) to 195.11 GiB (49949 extents).
  Logical volume centos/root successfully resized.
[root@centos7-xxx-jp xxx]#

CentOS 7からはデフォルトファイルシステムがXFS file sysstemとなっているため、xfs_growfsコマンドを使用します。

[root@centos7-xxx-jp xxx]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=12, agsize=2956800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=35420160, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=5775, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 35420160 to 51147776
[root@centos7-xxx-jp xxx]#

dfコマンドで、ファイルシステムに使用できる新しい空き領域が拡張されていることを確認します。

[root@centos7-xxx-jp xxx]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.9G     0  2.9G    0% /dev
tmpfs                     2.9G     0  2.9G    0% /dev/shm
tmpfs                     2.9G   13M  2.9G    1% /run
tmpfs                     2.9G     0  2.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   196G   74G  122G   38% /
vmhgfs-fuse               930G  790G  141G   85% /mnt/hgfs
/dev/sda1                1014M  401M  614M   40% /boot
tmpfs                     579M   56K  579M    1% /run/user/1000
[root@centos7-xxx-jp xxx]#

無事に/パーティションに60GBが拡張され、約200GBに拡張されています。

 

実は、最初に論理ボリュームの拡張(lvextend)コマンドを実行するのを忘れていたため、拡張できずに焦ってしまいました・・・

これを忘れると、dfコマンドで確認しても最初の状態から何も変化しないので、もし変化しないという場合は、コマンドの実行が抜けていないか確認してみてください。

以下、拡張されなかった場合の表示です。

[root@centos7-xxx-jp xxx]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.9G     0  2.9G    0% /dev
tmpfs                     2.9G     0  2.9G    0% /dev/shm
tmpfs                     2.9G   13M  2.9G    1% /run
tmpfs                     2.9G     0  2.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   136G   74G   62G   55% /
vmhgfs-fuse               930G  791G  140G   86% /mnt/hgfs
/dev/sda1                1014M  401M  614M   40% /boot
tmpfs                     579M   56K  579M    1% /run/user/1000
[root@centos7-xxx-jp xxx]#

 

Linuxのボリューム拡張って難しいことではないのですが、面倒で、さらにバージョンによってコマンドが変わったりするので、Linux使いの人は問題無いでしょうが、私のように仕事でたま~にLinuxをさわるような人間には、VMで拡張したらそのまま反映してくれる設定などあれば良いと思うのは私だけでしょうか・・・

 

そういえば、パーティションが4つになったので、この方法ではこれ以上領域拡張できなくなってしまいました。

今度領域拡張する場合は、どうするか調べないと(^^;