Luks

luks 中的 ext4:如何計算最小“外部分區”的大小

  • November 1, 2020

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

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