如何擴充 ext4 分割區和檔案系統?

如何擴充 ext4 分割區和檔案系統?

我有一個 400GB 磁碟,帶有 320GB ext4 分割區。我想擴大 ext4 分割區以使用剩餘空間(80GB 可用空間)。

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

我怎麼能這樣做呢?

我看過有人使用resize2fs,但我不明白它是否會調整分割區大小。

另一個解決方案是使用fdisk但我不想刪除我的分割區和鬆散的資料。我怎樣才能簡單地擴大分區而不丟失任何文件?

注意:我說的是沒有 LVM 的未掛載資料分割區,而且我有備份,但我想避免花費一些時間進行還原。

答案1

您必須從卸載分割區開始。如果您無法卸載它(例如,它是您的根分區或系統需要運行的其他分區),請使用類似系統救援光碟反而。

  1. 運行parted,或者gparted如果您更喜歡 GUI,請調整分區大小以使用額外的空間。我更喜歡它,gparted因為它為您提供了一個很好的圖形表示,與您在問題中繪製的圖形非常相似。

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever(只是為了看看你是否安全)

  4. 重新安裝您的分割區。

雖然我從未見過這種失敗,但請先備份您的資料!

答案2

使用growpartresize2fs範例:

請注意以下情況和之間的空格:/dev/sda1growpart /dev/sda 1

這是兩個命令:

growpart  /dev/sda 1
resize2fs /dev/sda1
$ growpart /dev/sda 1
CHANGED: partition=1 start=2048 old: size=39999455 end=40001503 new: size=80000991,end=80003039
$ resize2fs /dev/sda1
resize2fs 1.45.4 (23-Sep-2019)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 5
The filesystem on /dev/sda1 is now 10000123 (4k) blocks long.

如果這沒有按預期工作,可能是由於擴展分區所致,在這種情況下,應應用以下答案:https://unix.stackexchange.com/a/687489/124109

答案3

是的,如果您的分割區已經排序,您可以在線上成長 EXT4 檔案系統。分區整理好了嗎?有LVM嗎?

sudo resize2fs /dev/drive_to_grow

fdisk將調整您的分割區大小,確實如此,但如果這是根分割區(或實際上任何已安裝的分割區),則必須先卸載它。所以很有可能離線!

與任何與磁碟/檔案系統操作相關的事情一樣,我強烈建議進行備份、經過測試、易於理解的復原過程。

答案4

接受的答案有些過時:調整 ext4 檔案系統的大小較好在線的而不是離線,因為線上擴展程式碼路徑比離線擴展程式碼路徑更常用。

更困難的事情可能是擴展底層分區,除非您使用 LVM您的捲組中有可用空間。要在線擴展分區,可以使用fdiskparted;然後,您必須運行kpartx <device>以通知內核變更。如果使用 LVM,則需要將pvresize剛剛調整大小的分割區放在lvresize磁碟區之前。

最後,您可以發布resize2fs您的檔案系統。

相關內容