我需要识别 ext4 文件系统使用的最后一个扇区,以便我可以将其移动到另一个设备。
文件系统已缩小(带有resize2fs
)并且小于包含它的分区,因此我不是问如何找到分区中的最后一个扇区。
我已经完成tune2fs -l
并确定了
Block count: 48934
First block: 0
Block size: 4096
由此,我假设文件系统使用 48934 * 4096 / 512 = 391472 个扇区,并且我可以从dd
分区的第一个扇区开始移动那么多扇区(如 所报告的gdisk
)。
我不确定该块计数是否包括任何 ext4 开销,或者是否需要考虑额外的大小。我读这个问题这意味着还有额外的空间需要考虑。
答案1
你是对的。应该没有什么问题。
为了避免一些计算,您可以使用该bs
选项并使用设备的分区名称,而不是从偏移量开始。
dd count=48934 bs=4096 if=/dev/sdxN of=...
为了100%确定尺寸,您可以先测试一下。 “模拟”一个较小的分区:
umount /dev/XYZ
losetup --offset N-BYTES --sizelimit $(( 48934 * 4096 )) /dev/loop1 /dev/XYZ
mount
或者fsck
of/dev/loop1
应该告诉你你是否把它做得太小了。resize2fs
会告诉分区是否仍然太大,但没有dry-run
。你也可以尝试一下fsadm -v --dry-run check/resize ...
我从未使用过的东西。如果偏执,你应该使用losetup --read-only
.losetup --detach
完成后不要忘记。