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

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

内隔板:1285232+245671024 = 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 相关吗?

答案1

“额外”的 16 KiB 是辅助 LUKS2 标头。 “元数据区域:16384 [字节]”是标头的大小,但磁盘上有两个。看LUKS2 磁盘格式规范更多细节。

相关内容