2024年8月12日 星期一

利用 Linux 的 Parted 指令修復磁碟分割區

 

情境說明

Azure虛擬機掛載的磁碟在管理上看到是 64 GB


但是實際上只有用到 29 GB


執行 lsblk 指令檢查磁碟和分區的詳細情況,可以看到磁碟的總大小確實是64G,但分割區的配置問題導致只能看到部分磁碟空間。

所以 disk 64GB 是正常的, 只是ROOT / 部份不夠用而已,調整適合該 partition 大小即可。


 

 

利用Linux parted 指令修復磁碟分割區

(以下用AWS EC2操作展示,同樣都是 Linux 系統)

 

1.      原本EC2的磁碟區大小為8GB(左方為EC2 Connect畫面,右方為控制台畫面)

 

2.      控制台將磁碟區大小調整為30GB


 

3.      調整完成後 lsblk 查看磁碟區資訊,發現根 (xvda1) 的磁碟大小還是未調整前的8GB

 

4.      執行 parted 指令進到 parted 環境(提示符號顯示(parted)

 

5.      parted 環境執行 print 指令可以看到根磁碟大小是8GB

 

6.      執行 resizepart 指令將根磁碟(磁區列表代號1)可用磁區調整為100%,再次 print 查看根磁碟大小已調整完成

 

7.      退出 parted 環境,lsblk 顯示 /dev/xvda1 已經擴展到 30GB,但使用 df -h 指令查看檔案系統的使用狀況還是8GB,這表示雖然磁碟區已經成功擴展,但並不代表檔案系統也已經擴展使用了全部空間。

 

8.      執行 xfs_growfs () 並指定根路徑(/)即可完成檔案系統擴展,再次執行 df -h,確認 / 已經使用了全部的 30GB 空間。


 

()

擴展檔案系統時,需視檔案系統的格式使用不同指令:

對於 ext4 檔案系統,可使用指令 resize2fs 來擴展檔案系統。

對於 XFS 檔案系統,可使用指 xfs_growfs 來擴展檔案系統。

 

 

額外補充:

growpart parted 一樣,也是一種可以自動擴展磁碟區大小的工具。

sudo -i

yum install cloud-utils-growpart gdisk  //安裝

lsblk -f  //驗證封裝含根 ( / ) 分區的分區和檔案系統類型

gdisk -l /dev/ xvda   //列出 sda 磁碟的分區表

growpart /dev/ xvda 1   //擴展root 的分區

xfs_growfs /   //擴展分區上的檔案系統

★系統磁碟擴展的情況下 注意磁碟路徑★

 

 

 

參考資料:

Azure 擴充磁碟分割與檔案系統(Linux

https://learn.microsoft.com/zh-tw/azure/virtual-machines/linux/expand-disks?tabs=ubuntu#expand-a-disk-partition-and-filesystem


Linux Parted 指令教學:建立、變更與修復磁碟分割區

https://blog.gtwang.org/linux/parted-command-to-create-resize-rescue-linux-disk-partitions/3/#google_vignette


AWS 調整 EBS 卷大小後擴展文件系統

https://docs.aws.amazon.com/zh_tw/ebs/latest/userguide/recognize-expanded-volume-linux.html#extend-file-system

 



沒有留言:

張貼留言

搜尋此網誌