DEV Community

Cover image for 擴充 AWS 主機硬碟空間
Leon
Leon

Posted on • Originally published at editor.leonh.space

擴充 AWS 主機硬碟空間

過往我曾經在〈各家 Serverless 短評〉談到主機雲端化帶給我們的便利,剛好最近碰到要擴充 AWS 上某台機器的硬碟,很適合讓人更具體地感受到雲端化對 IT 維運上的優勢,要擴充硬碟只需要進入 AWS 主控台調整一下設定即可,當然自建虛擬機也可以做到同樣的便利性,但自建虛擬機的 host 還是會有硬碟被瓜分光的一天,你各位終究還是要自己去機櫃抽插硬碟的。


想要擴充硬碟空間,第一步是到 AWS 的 EBS 頁面,對目標硬碟做修改設定,在這邊我們是把原本一個 8G 的卷加成 16G:

AWS EBS 修改卷
卷修改完了,但卷內的分割區還是原本的 8G,所以我們登入 shell 去修改分割區。

在修改前,先確認目前的分割區配置:

$ lsblk
Enter fullscreen mode Exit fullscreen mode
NAME      MAJ:MIN RM  SIZE  RO  TYPE  MOUNTPOINT
xvda      202:0   0   16G   0   disk
  -xvda1  202:1   0    8G   0   part  /
Enter fullscreen mode Exit fullscreen mode

可以看到 disk 是 16G,但分割區 xvda1 還是只有原本配置的 8G,而剩下的 8G 目前是真空未配置的狀態。

用指令讓分割區 xvda1 吃滿未配置的空間:

$ sudo growpart /dev/xvda 1
Enter fullscreen mode Exit fullscreen mode

再次用 lsblk 驗證結果:

NAME      MAJ:MIN RM  SIZE  RO  TYPE  MOUNTPOINT
xvda      202:0   0   16G   0   disk
  -xvda1  202:1   0   16G   0   part  /
Enter fullscreen mode Exit fullscreen mode

確認分割區已經擴充,但…檔案系統還沒,看 xvda1 的 ext4 還是只擁有約 8G 的空間:

$ df --human-readable --print-type
Enter fullscreen mode Exit fullscreen mode
Filesystem  Type  Size  Used  Avail Use%  Mounted on
/dev/xvda1  ext4  7.7G  7.0G  734M  91%   /
Enter fullscreen mode Exit fullscreen mode

所以還要再一步修改檔案系統:

$ sudo resize2fs /dev/xvda1
Enter fullscreen mode Exit fullscreen mode

再次確認:

Filesystem  Type  Size  Used  Avail Use%  Mounted on
/dev/xvda1  ext4  16G   7.0G  8.5G  46%   /
Enter fullscreen mode Exit fullscreen mode

確認變為 16G,至此大功告成。

注意到了嗎,我們擴充硬碟空間的整個程序中,是沒有重新開機的,也不需要什麼高深的熱抽換技術,就兩三個一望即知的指令,隨便拉一個三十年前用過 DOS 的小朋友都會做。

本文是 AWS 文件〈調整磁碟區大小後擴展 Linux 檔案系統〉的 human readable 版。

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay