2020年6月30日火曜日

Ubuntu 20.04でシステム領域のディスク容量の拡張を行う

Ubuntu 20.04を仮想環境で動かしているのだが、システム領域のディスク容量はデフォルトの16GBで運用していた。しかし、Linuxとはいえ、各種GUIのソフトウェアをインストールすることで、残り容量が心もとなくなってきた。

そこで、ディスク容量を拡張をすることにしたのだが、UbuntuではRHEL系のLinuxとはパーティションの切り方が異なっており、手順にも差異があった。Ubuntuにおけるディスク容量の拡張手順を本記事にて記載することにする。

環境

  • Ubuntu 20.04 LTS

ディスク容量拡張手順

UbuntuはRHEL系のLinuxとは異なり、LVMが使用されていない。以下、dfコマンドの結果となるが、マウントポイント「/」には「/dev/sda5」が直接マウントされていることがわかる(★箇所)。今回は、この領域を16GBから18GBに拡張することにする。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           394M  1.8M  392M   1% /run
/dev/sda5        16G   10G  4.5G  70% /   ★
tmpfs           2.0G  274M  1.7G  14% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop1       55M   55M     0 100% /snap/core18/1754
/dev/loop0      243M  243M     0 100% /snap/gnome-3-34-1804/27
/dev/loop2       63M   63M     0 100% /snap/gtk-common-themes/1506
/dev/loop3       50M   50M     0 100% /snap/snap-store/433
/dev/loop4       28M   28M     0 100% /snap/snapd/7264
/dev/sda1       511M  4.0K  511M   1% /boot/efi
tmpfs           394M   36K  394M   1% /run/user/125
tmpfs           394M   48K  394M   1% /run/user/1000

1. 拡張したディスクを認識

仮想ディスクを拡張しても容量を自動認識しなかったため、拡張したディスクをコマンドにて認識させる。コマンド自体はRHEL系のLinuxと同様のコマンドとなるが、Ubuntuでは、原則sudoを使って実行する必要があるため、sudo sh -c <command>といった形で実行する。このように実行しないと、リダイレクトやパイプを含むコマンドが正常に実行できない

$ sudo sh -c "echo 1 > /sys/class/block/sda/device/rescan"

2. パーティションを拡張

パーティションの拡張はpartedコマンドで行う。

Ubuntu 20.04では、2番目のパーティションが拡張パーティション (extended) となっており、5番目のパーティションが論理パーティション (logical) として作成されている。

$ sudo parted /dev/sda
GNU Parted 3.3
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) p free                                                           
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 19.3GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ    ファイルシステム  フラグ
      1024B   1049kB  1048kB            空き容量
 1    1049kB  538MB   537MB   primary   fat32             boot
      538MB   539MB   1048kB            空き容量
 2    539MB   17.2GB  16.6GB  extended
 5    539MB   17.2GB  16.6GB  logical   ext4
      17.2GB  19.3GB  2149MB            空き容量

まずは、拡張パーティションから拡張する。「使用中です。それでも実行しますか?」というメッセージが表示されるが、パーティションの拡張はオンラインで実行可能であるため、「y」を選択し続行すれば問題ない。

(parted) resizepart 2
警告: パーティション /dev/sda2 は使用中です。それでも実行しますか?
はい(Y)/Yes/いいえ(N)/No? y                                               
終了?  [17.2GB]? 100%
(parted) p free                                                           
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 19.3GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ    ファイルシステム  フラグ
      1024B   1049kB  1048kB            空き容量
 1    1049kB  538MB   537MB   primary   fat32             boot
      538MB   539MB   1048kB            空き容量
 2    539MB   19.3GB  18.8GB  extended
 5    539MB   17.2GB  16.6GB  logical   ext4
      17.2GB  19.3GB  2149MB            空き容量

拡張パーティションの容量が拡張された後、論理パーティションを拡張する。

(parted) resizepart 5
警告: パーティション /dev/sda5 は使用中です。それでも実行しますか?
はい(Y)/Yes/いいえ(N)/No? y                                               
終了?  [17.2GB]? 100%                                                     
(parted) p free                                                           
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 19.3GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ    ファイルシステム  フラグ
      1024B   1049kB  1048kB            空き容量
 1    1049kB  538MB   537MB   primary   fat32             boot
      538MB   539MB   1048kB            空き容量
 2    539MB   19.3GB  18.8GB  extended
 5    539MB   19.3GB  18.8GB  logical   ext4

以上でパーティション拡張が完了となるので、partedコマンドを終了する。

(parted) q                                                                
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

3. ファイルシステムを拡張

Ubuntu 20.04のファイルシステムはext4を使用しているので、resize2fsを使って拡張する。拡張する対象は、論理パーティションの「/dev/sda5」となる。

$ sudo resize2fs /dev/sda5
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/sda5 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/sda5 is now 4587008 (4k) blocks long.

4. 拡張後の確認

最後にdfコマンドで確認すると、★箇所の「/dev/sda5」の容量が16GBから18GBに拡張されていることがわかる。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.9G     0  1.9G   0% /dev
tmpfs           394M  1.8M  392M   1% /run
/dev/sda5        18G   10G  6.4G  62% /   ★
tmpfs           2.0G  222M  1.8G  12% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop1       55M   55M     0 100% /snap/core18/1754
/dev/loop0      243M  243M     0 100% /snap/gnome-3-34-1804/27
/dev/loop2       63M   63M     0 100% /snap/gtk-common-themes/1506
/dev/loop3       50M   50M     0 100% /snap/snap-store/433
/dev/loop4       28M   28M     0 100% /snap/snapd/7264
/dev/sda1       511M  4.0K  511M   1% /boot/efi
tmpfs           394M   36K  394M   1% /run/user/125
tmpfs           394M   48K  394M   1% /run/user/1000

以上で、Ubuntu 20.04におけるディスク容量の拡張作業は完了となる。

【注意事項】「エラー: 重なりのあるパーティションは持てません。」のエラーについて

拡張パーティションの前に論理パーティションを拡張しようとすると、「エラー: 重なりのあるパーティションは持てません。」と表示され失敗する。手順で説明したとおり、必ず拡張パーティションを拡張してから論理パーティションを拡張するようにしよう。

$ sudo parted /dev//sda
GNU Parted 3.3
/dev/sda を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) p free                                                           
モデル: VMware Virtual disk (scsi)
ディスク /dev/sda: 19.3GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ: 

番号  開始    終了    サイズ  タイプ    ファイルシステム  フラグ
      1024B   1049kB  1048kB            空き容量
 1    1049kB  538MB   537MB   primary   fat32             boot
      538MB   539MB   1048kB            空き容量
 2    539MB   17.2GB  16.6GB  extended
 5    539MB   17.2GB  16.6GB  logical   ext4
      17.2GB  19.3GB  2149MB            空き容量

(parted) resizepart 5                                                     
警告: パーティション /dev/sda5 は使用中です。それでも実行しますか?
はい(Y)/Yes/いいえ(N)/No? y                                               
終了?  [17.2GB]? 100%                                                     
エラー: 重なりのあるパーティションは持てません。

11 件のコメント:

  1. 有用な情報、ありがとうございます。

    返信削除
  2. 非常に分かりやすく、参考にさせていただきました。
    ありがとうございました。

    返信削除
  3. Gpartedが使用できない状態だったので、非常に助かりました。

    返信削除
  4. とても的確な操作例でしたので、確実にできました。とても助かりました。

    返信削除
  5. 困っていた時にこのページのおかげで問題解決できました。良い情報、ありがとうございました。

    返信削除
  6. ありがとうございます。しかし問題があります。作業完了し、p free で確認すると拡張されているのですが、df -h の結果に反映されず、ディスク容量エラーが止まりません。どこを確認したらよいでしょうか?

    返信削除
  7. 困ったいた時にこのページのおかげで解決出来ました。有難うご座いました。

    返信削除

人気の投稿