如何找到 ext4 文件系统使用的最后一个扇区?

如何找到 ext4 文件系统使用的最后一个扇区?

我需要识别 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或者fsckof/dev/loop1应该告诉你你是否把它做得太小了。resize2fs会告诉分区是否仍然太大,但没有dry-run。你也可以尝试一下fsadm -v --dry-run check/resize ...我从未使用过的东西。如果偏执,你应该使用losetup --read-only.losetup --detach完成后不要忘记。

相关内容