img 文件中已用和未用空间的总和不等于总容量

img 文件中已用和未用空间的总和不等于总容量

我有一个大小为 2.3GB 的图像文件,几乎已满(只有大约 70MB 未使用空间)。

所以为了扩展它,我使用了命令

dd if=/dev/zero bs=1M count=1700MB >> ./image.img

然后使用调整分区大小parted

然而,当我安装这个新映像时,我得到了相同的未使用空间(即 70MB),而不是 1.7GB。

GParted 显示扩展空间呈灰色,我不知道为什么。

截屏:

答案1

您可以使用它truncate来扩展图像文件。

例如

truncate -c -s 4G image.img

或者

truncate -c -s +1700M image.img

请参阅man truncate了解更多详细信息。手册页的关键细节是:

如果文件大于指定的大小,则多余的数据将丢失。如果文件较短,则会对其进行扩展,并且扩展部分(孔)读取为零字节。

然后,您应该能够编辑分区表以扩展分区以包含新空间 - 您可以为此使用partedfdiskgdisksfdisk或其他类似工具。sgdisk

完成此操作后,您需要扩展文件系统,以便它利用新的可用空间。根据您链接到的 .png 图像,您正在使用 ext4 作为文件系统,因此您需要使用resize2fs 编辑分区表。

您可以使用gpartedGUI 来扩展分区和扩展文件系统。

笔记: 你应该总是在对 image.img 文件执行类似操作之前,先对其进行备份。如果出现任何问题,您始终可以恢复到最后一个已知良好的工作映像文件。

答案2

我不确定附加运算符“>>”是否可以与 dd 一起正常工作。我建议制作一个您想要的大小的 image2.img 文件,然后将您的 image.img 文件添加到 image2.img 的顶部,然后将其添加到您想要的任何分区上。您可以直接对分区执行此操作,而不是使用图像文件,但要小心。

'dd if=/dev/zero of=image2.img count=4000MB bs=1M' 然后 'dd if=image.img of=image2.img bs=1M'

相关内容