Linux

Linux分區端大於物理磁碟和分區大小

  • December 20, 2020

我的硬碟上有兩個分區。/dev/sdb1對於我的整個系統和/dev/sdb2作為交換驅動器。我遇到了幾次系統崩潰,並認為我可能需要將交換驅動器的大小從 2GB 增加到 16GB。我通過使用parted 內部的命令將 end 減少/dev/sdb114 GB(從 494GB 到 480GB)來做到這一點。resizepart重新啟動後,我的系統(Arch Linux)啟動失敗:

Arch 引導錯誤

我設法通過/dev/sdb1再次將分區末尾增加到 494GB 來修復錯誤。但我不明白為什麼 parted 顯示驅動器容量為 500GB,分區結束 ( dev/sdb1) 為 494GB。lsblkfdisk返回 465.76 GB 的總驅動器大小和 460.1 GB 的分區大小 ( /dev/sdb1)。為什麼文件系統大小比物理硬碟大 480GB 而不是 494GB(與上述錯誤有關)?

這是我的輸出lsblkfdiskparted

lsblk、fdisk 和 parted 輸出

提前謝謝了。

使用parted調整分區大小是不夠的,您還需要調整剛剛調整大小的分區上的文件系統大小(parted不這樣做)。您打開了 ext4 文件系統,/dev/sda1因此在調整分區大小後,parted您還需要執行sudo resize2fs /dev/sda2以調整文件系統的大小(在resize2fs沒有大小的情況下執行,只需將文件系統大小調整為底層設備的大小)。沒有這個,您將無法掛載文件系統,這就是引導失敗的原因。

parted大小之間的差異lsblk是舊的公制(GB) 與二進制(GiB) 單位。lsblk使用二進制單位(1 GiB 是 1024 MiB),parted使用公制單位(1 GB 是 1000 MB)。500 GB 大約是 465.66 GiB,所以這裡沒有什麼奇怪的事情發生。

引用自:https://unix.stackexchange.com/questions/625373