Luks
luks 中的 ext4:如何計算最小“外部分區”的大小
loop0p2 包含一個包含 ext4 的 luks2。問題是:如何計算外部分區為容納內部分區所需的最小大小。給定的是內部分區的大小(在範例中:25614K)
Device Start End Sectors Size Type /dev/loop0p1 2048 4095 2048 1M Microsoft basic data /dev/loop0p2 4096 87273 83178 40,6M unknown
83178 扇區 (a 512 B) = 42587136 B
cryptsetup luksDump /dev/loop0p2 Metadata area: 16384 [bytes] Keyslots area: 16744448 [bytes]
42587136 B - 16760832 B(luks2 成本)= 25826304 B
25826304 B == 50442 個扇區 == 25221 KiB
dumpe2fs -h /dev/mapper/test| grep -iE '^(block|inode) (count|size)' dumpe2fs 1.45.6 (20-Mar-2020) Inode count: 5232 Block count: 24567 Block size: 1024 Inode size: 128
內分區:128 5232 + 24567 1024 = 25156608 B = 24567 KiB
resize2fs /dev/mapper/test 25614K resize2fs 1.45.6 (20-Mar-2020) The containing partition (or device) is only 25205 (1k) blocks. You requested a new size of 25614 blocks.
25221 KiB - 25205 KiB = 16 KiB
所以:外部分區擁有 41589 KiB,luks 成本為 16368 KiB 內部分區:25221 KiB 內部分區的實際大小似乎是:24567 KiB。內部分區說,它不能增長超過 25205 KiB。
16 KiB 中儲存了什麼?我是否誤算了 LUKS 成本?這與ext4有關嗎?
“額外”的 16 KiB 是輔助 LUKS2 標頭。“元數據區:16384
$$ bytes $$" 是標頭的大小,但磁碟上有兩個。有關詳細資訊,請參閱LUKS2 On-Disk Format Specification。