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 磁盘格式规范更多细节。