CH-J Server Manager透過 SSH 管理伺服器
選單
所有指南與文章 →

如何擴充 Linux 伺服器磁碟而不遺失資料

擴大虛擬磁碟後,依正確順序擴充分割區、LVM 以及 ext4 或 XFS 檔案系統。

變更前的準備

請先建立並測試備份或虛擬機器快照。擴充是例行作業,但裝置名稱寫錯可能損毀資料,而且分割表備份並不等於資料備份。接著在 Hypervisor 中或透過主機代管業者擴大磁碟,因為系統只能使用磁碟已具備的空間。

了解磁碟配置

必須由下往上逐層擴充:磁碟、分割區、LVM(若有使用),最後是檔案系統。這些指令會顯示各層結構、檔案系統類型,以及各個儲存空間的掛載位置。以下範例中的裝置名稱僅供說明;請使用自己伺服器上的裝置名稱。

lsblk -f
df -hT
sudo pvs; sudo vgs; sudo lvs

分割區與 ext4 或 XFS

Ubuntu 和 Debian 的 cloud-guest-utils 套件提供 growpart,可將分割區擴充到其後方的可用空間。請注意,磁碟與分割區編號是兩個獨立的引數。接著擴充檔案系統:用於 ext4 的 resize2fs 接受裝置作為引數,xfs_growfs 則接受掛載點。兩者都能在檔案系統已掛載時執行。

sudo growpart /dev/sda 2

# ext4
sudo resize2fs /dev/sda2

# XFS
sudo xfs_growfs /

使用 LVM 時

若分割區包含 LVM 實體磁碟區,請讓 LVM 得知新的大小,再擴充邏輯磁碟區。-r 選項也會擴充其上的檔案系統,因此無須另行執行調整大小的指令。

sudo growpart /dev/sda 3
sudo pvresize /dev/sda3
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

檢查結果並了解限制

再次執行 df -hT,確認新的大小。growpart 只能使用緊接在分割區後方的可用空間,因此若中間隔著交換分割區或其他分割區,必須先處理。XFS 完全無法縮小,縮小其他檔案系統的風險也遠高於擴充,因此請審慎決定擴充幅度。

CH-J Server Manager 中的 Disk Manager

適用於 Linux 伺服器的 Disk Manager 會顯示包含分割區、檔案系統以及 LVM 和 LUKS 層的磁碟配置圖,並可在磁碟擴大後提出自動擴充建議。變更會在佇列中等待,供您以計畫形式檢閱;執行前,應用程式會重新讀取伺服器狀態,若狀態不再相符就會停止。變更前會儲存分割表中繼資料,但這無法取代資料備份。Windows 伺服器會被辨識,並因不受支援而遭拒。

詳細文件

man: resize2fs →

man: xfs_growfs →

man: lvextend →

生物辨識解除鎖定與安全性 →