Resize root disk on Google Compute Engine

我在兩年內 resize 了四次吧

但每次都找不到文件

官方的都寫的很怪 看不懂 (而且有錯)

網路上其他文件 過一陣子不知道為什麼就會404

所以只好自己寫一篇了

剛又 resize 了一次

趕快把流程記下來

1. 進到你的 Google Cloud 後台 改變你的硬碟大小

像我這次是從 400G 擴充到 500G

就從400改500

改的時候不用關機

但改好要重開機 GCP

才能讀到最新的數值

2. ssh 到你的機器裡面

跑底下的指令

sudo growpart /dev/sda 1

神奇的事情是
會出現這個錯誤

/bin/growpart: line 175: 磁柱,171*磁區/磁軌*: syntax error: operand expected (error token is “磁柱,171*磁區/磁軌*”)

後來 google 了一下
好像是語系的問題 = =

解決來源
https://hacknote.jp/archives/7575/
只要改語系設定就好

執行這個
export LANG=”en_US.UTF-8″

再跑一次
sudo growpart /dev/sda 1

就好了

然後有的文件會叫你跑
sudo resize2fs /dev/sda 1

但我跑了以後會噴錯誤
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Device or resource busy while trying to open /dev/sda
Couldn’t find valid filesystem superblock.

我也不知道是什麼問題
但 Google Cloud 的文件是這樣寫的= =

不過沒關係
不用理這個
可以跑下一個指令

sudo xfs_growfs -d /dev/sda1

然後系統會顯示類似的資訊
meta-data=/dev/sda1 isize=256 agcount=161, agsize=655296 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=104857344, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 104857344 to 131071244

跟你說區塊已經修改了

Google Cloud 的文件不曉得在欉三小

他會叫你這樣下

sudo xfs_growfs /dev/sda 1

但這根本就是錯的

3. 執行完畢後不需要重開機
可以用 df 查一下
發現硬碟大小已經改變了

原本
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 400G 358G 43G 90% /

改變後# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 500G 358G 143G 72% /

就完成啦

希望這流程不要再改了= =

備註一下

我的系統是 CentOS7

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *