Partition

縮小分區以完全適合底層文件系統大小

  • November 3, 2020

最近我將 ext4 文件系統的大小縮小到 500GB

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       493G   64G  404G  14% /

現在我想縮小分區大小以完全適合文件系統大小。

我嘗試使用 parted 和 resizepart 命令。問題是當 parted 要求新尺寸時。如果我選擇 500GB,則生成的分區比 500GB 小,因此底層文件系統無法適應該分區。關於如何進行正確尺寸計算的任何提示?

報告的大小df將不正確,因為它們僅考慮文件系統內部使用的數據塊和未命中塊以及保留塊。

最簡單的方法是將文件系統縮小到比您想要的小至少 10%。將分區大小調整為您想要的大小,然後使用 resize2fs 擴展文件系統。

如果你想手動計算它,你必須知道文件系統內部有多大。檢查這一點tune2fs -l /dev/sda2並將塊計數乘以塊大小。在 parted 中調整分區大小時,將單元切換到帶有unit sprint表的扇區以獲取起始扇區和邏輯扇區大小。將上面的總大小(以字節為單位)除以扇區大小。向上舍入到最接近的 2048 倍數並調整為此扇區數(結束扇區 = 扇區大小 + 起始扇區 - 1)。

方程(可在python中執行只需填寫前4個值):

block_count = N
block_size = N
sector_size = N
start_sector = N
fs_size = block_count * block_size
fs_sectors = fs_size/sector_size
part_sectors = ((fs_sectors-1)/2048+1)*2048
end_sector = start_sector + part_sectors - 1
print "Partition start: %d end: %d size: %d"%(start_sector,end_sector,part_sectors)
print "Resize in parted with: \nresizepart <number> %ds"%(end_sector)

引用自:https://serverfault.com/questions/796758