Windowsだと簡単なのに、Linuxのディスク拡張はなぜこんなにもめんどくさいのでしょうか。。
ディスク拡張をする必要があり、色々ググりながら調べましたがピンポイントなものがヒットしなく苦労したので、改めて手順をまとめます。
手順
■前提
・RHEL 8.2の環境を利用
・fdiskコマンドを利用したファイル拡張を実施
・LVM(logical volume manager)の利用はなし
1.現在の容量を確認
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 11G 32G 26% /
/dev/sda1 976M 359M 551M 40% /boot
/dev/sdb1 1.5T 289G 1.2T 21% /mnt01
tmpfs 3.2G 0 3.2G 0% /run/user/0
ディスク /dev/sdb: 1.5 TiB, 1649267441664 バイト,3221225472 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 55E90779-7DE7-46CC-8C05-4986C252C73F
3.Linux OSのハードディスクを容量拡張
4.ディスク容量が拡張されたことをリスキャン
5.fdiskコマンドにより、ディスク容量が拡張されたことを確認
GPT PMBR のサイズが合致していません (3221225471 != 7516192767) が、w (書き込み) コマンドで修正されます。
The backup GPT table is not on the end of the device. This problem will be corrected by write.
ディスク /dev/sdb: 3.5 TiB, 3848290697216 バイト, 7516192768 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 55E90779-7DE7-46CC-8C05-4986C252C73F
6.ディレクトリとしてマウントしていると拡張できないため、アンマウントを行う
7.fdiskのユーティリティにより拡張を行う
fdisk (util-linux 2.32.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 3.5 TiB, 3848290697216 バイト, 7516192768 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 55E90779-7DE7-46CC-8C05-4986C252C73F
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/sdb1 2048 3221223423 3221221376 1.5T Linux ファイルシステム
コマンド (m でヘルプ): d
パーティション 1 を選択
パーティション 1 を削除しました。
※パーティションは一度削除するが、開始位置を同じにして再作成することでデータは削除されない。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 3.5 TiB, 3848290697216 バイト, 7516192768 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 55E90779-7DE7-46CC-8C05-4986C252C73F
コマンド (m でヘルプ): n
パーティション番号 (1-128, 既定値 1): 1
最初のセクタ (34-7516192734, 既定値 2048):
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (2048-7516192734, 既定値 7516192734):
新しいパーティション 1 をタイプ Linux filesystem、サイズ 3.5 TiB で作成しました。
パーティション #1 には ext4 署名が書き込まれています。
署名を削除しますか? [Y]es/[N]o: Y
署名は write (書き込み)コマンドを実行すると消えてしまいます。
※署名を確認されるケースもあるが、削除してもデータは消えないためYで実行。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 3.5 TiB, 3848290697216 バイト, 7516192768 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 55E90779-7DE7-46CC-8C05-4986C252C73F
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/sdb1 2048 7516192734 7516190687 3.5T Linux ファイルシステム
パーティション 1 にあるファイルシステム/RAIDの署名が完全に消去されます。
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 13139/100663296 files (71.0% non-contiguous), 82335929/402652672 blocks
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/sdb1 to 939523835 (4k) blocks.
The filesystem on /dev/sdb1 is now 939523835 (4k) blocks long.
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 45G 11G 32G 26% /
/dev/sda1 976M 359M 551M 40% /boot
tmpfs 3.2G 0 3.2G 0% /run/user/0
/dev/sdb1 3.5T 289G 3.0T 9% /mnt01
補足とまとめ
Linux初心者向けの解説ですが、sdbは物理デバイス(仮想マシンであれば仮想ハードディスク)、sdb1はWindowsでいうところのCドライブなどのドライブレターを指します。
fdiskコマンドにより物理デバイス拡張を認識させた後、e2fsckコマンドでファイルシステムとして拡張を実施しました。
少しでも皆様のお役に立てば幸いです。
コメント