【CentOS8】OSインストール時に作成された「cl-home」を「cl-root 」へ拡張する手順

VMware上の仮想基盤でCentOS8をインストールした際、100GBのディスク容量を用意していたのですが、「cl-home」に半分近くの容量がとられていました。

Dockerコンテナなどで「cl-root」が使用されるので拡張するため、「cl-home」の容量を「cl-root」へ拡張します。
手順の流れを以下でメモしました。

「CentOS8」インストール時の「cl-home」を「cl-root」へ拡張する手順

CentOS8のインストール後、100GBのディスクを割り当てたのですが、ディスクパーティションは以下のようになっており、「/dev/mapper/cl-home」が多くのサイズを占有している状態になっています。

[root@centos8-test ~]# df -h
ファイルシス        サイズ  使用  残り 使用% マウント位置
devtmpfs              3.8G     0  3.8G    0% /dev
tmpfs                 3.8G     0  3.8G    0% /dev/shm
tmpfs                 3.8G  8.7M  3.8G    1% /run
tmpfs                 3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/mapper/cl-root    50G  2.6G   48G    6% /
/dev/mapper/cl-home    41G  322M   41G    1% /home
/dev/sda2             976M  202M  708M   23% /boot
/dev/sda1             599M  6.9M  592M    2% /boot/efi
tmpfs                 777M     0  777M    0% /run/user/0

Dockerなどで使用するディスクは「/dev/mapper/cl-root」を利用しているようなので、「/dev/mapper/cl-home」を削除し、その容量分、「/dev/mapper/cl-root」のディスクパーティションを拡張させたいと思います。

また、ディスクのタイプは以下コマンドを実行し「xfs」であることが確認できます。

[root@centos8-test ~]# df -hT
ファイルシス        タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs            devtmpfs   3.8G     0  3.8G    0% /dev
tmpfs               tmpfs      3.8G     0  3.8G    0% /dev/shm
tmpfs               tmpfs      3.8G  8.7M  3.8G    1% /run
tmpfs               tmpfs      3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/mapper/cl-root xfs         50G  2.6G   48G    6% /
/dev/mapper/cl-home xfs         41G  322M   41G    1% /home
/dev/sda2           ext4       976M  202M  708M   23% /boot
/dev/sda1           vfat       599M  6.9M  592M    2% /boot/efi
tmpfs               tmpfs      777M     0  777M    0% /run/user/0

「home」ディレクトリバックアップ

「home」ディレクトリをバックアップします。

ファイルシステム上の「/home」配下はOSローカルユーザのホームディレクトリが格納されており、シェルなどの設定ファイルが含まれているため、「/home」の領域を削除した後に、root領域内のディレクトリとして復元させる必要があります。

[root@centos8-test ~]# cp -p /home /tmp
[root@centos8-test ~]#  ls -ld /tmp/home
drwxr-xr-x. 2 root root 6 11月  4 00:22 /tmp/home

「cl-home」アンマウント

以下のコマンドからは管理者権限「root」で実行します。

以下コマンドで該当のファイルシステム「/dev/mapper/cl-home」をアンマウントします。

[root@centos8-test ~]# umount /dev/mapper/cl-home

「/dev/mapper/cl-home」がアンマウントされたことを確認します。

[root@centos8-test ~]# df -Th
ファイルシス        タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs            devtmpfs   3.8G     0  3.8G    0% /dev
tmpfs               tmpfs      3.8G     0  3.8G    0% /dev/shm
tmpfs               tmpfs      3.8G  8.7M  3.8G    1% /run
tmpfs               tmpfs      3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/mapper/cl-root xfs         50G  2.6G   48G    6% /
/dev/sda2           ext4       976M  202M  708M   23% /boot
/dev/sda1           vfat       599M  6.9M  592M    2% /boot/efi
tmpfs               tmpfs      777M     0  777M    0% /run/user/0

論理ボリューム「/dev/mapper/cl-home」を削除

以下コマンドで「/dev/mapper/cl-home」の論理ボリュームを削除します。

[root@centos8-test ~]#  lvremove /dev/cl/home
Do you really want to remove active logical volume cl/home? [y/n]: y
  Logical volume "home" successfully removed

以下コマンドで論理ボリューム「home」がないことを確認します。

[root@centos8-test ~]# lvs
  LV   VG Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cl -wi-ao---- 50.00g
  swap cl -wi-ao----  7.91g

「home」ディレクトリを復元

先ほどバックアップした「home」ディレクトリを「/」配下へ上書きします。

[root@centos8-test ~]# mv /tmp/home /
mv: '/home' を上書きしますか? y

「/etc/fstab」でOS起動時の「/dev/mapper/cl-home」を削除

上記まで正常にできた後はOS起動時にマウントする「/dev/mapper/cl-home」の1行を削除します。
※10行目を削除

[root@centos8-test ~]# vi /etc/fstab

------中略------

/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=377d62ca-462f-44b4-91f9-657e3d132b4f /boot                   ext4    defaul
ts        1 2
UUID=7257-177E          /boot/efi               vfat    umask=0077,shortname=win
nt 0 2
/dev/mapper/cl-home     /home                   xfs     defaults        0 0
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

fstab編集後は以下コマンドで設定ファイルの再読み込みを実施します。

[root@centos8-test ~]# systemctl daemon-reload

論理ボリューム「/dev/cl/home」の容量拡張

上記「home」のボリュームを削除した分の空き容量を使用し、以下コマンドで「root」の容量を拡張します。

[root@centos8-test ~]# lvextend -l +100%FREE /dev/mapper/cl-root
  Size of logical volume cl/root changed from 50.00 GiB (12800 extents) to 90.50 GiB (23168 extents).
  Logical volume cl/root successfully resized.

rootボリューム拡張コマンド実行後、以下コマンドでrootのサイズが拡張したことが確認できます。

[root@centos8-test ~]# lvs
  LV   VG Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cl -wi-ao---- 90.50g
  swap cl -wi-ao----  7.91g

ファイルシステム拡張

論理ボリュームを拡張しても、ファイルシステムから見える「root」領域は拡張しません。
そのため以下のコマンドでファイルシステムの容量も拡張させます。

[root@centos8-test ~]# xfs_growfs /
meta-data=/dev/mapper/cl-root    isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 13107200 to 23724032

上記コマンド実行後、ファイルシステムの「root」領域が拡張されたことが確認できます。

[root@centos8-test ~]# df -Th
ファイルシス        タイプ   サイズ  使用  残り 使用% マウント位置
devtmpfs            devtmpfs   3.8G     0  3.8G    0% /dev
tmpfs               tmpfs      3.8G     0  3.8G    0% /dev/shm
tmpfs               tmpfs      3.8G  8.7M  3.8G    1% /run
tmpfs               tmpfs      3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/mapper/cl-root xfs         91G  2.9G   88G    4% /
/dev/sda2           ext4       976M  202M  708M   23% /boot
/dev/sda1           vfat       599M  6.9M  592M    2% /boot/efi
tmpfs               tmpfs      777M     0  777M    0% /run/user/0

CentOS8のインストール時における「home」ディレクトリの容量を「root」で拡張させる手順は以上となります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

blank

インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!