我对一个非常简单的任务感到困惑。我有一个img文件,其中包含一个带有2个分区的文件系统。 正如在一些教程中发现的那样,我以这种方式扩展了可用空间:
dd if=/dev/zero of=./temp_image bs=1 count=1 seek=3G
cat temp_image >> orig_image.img
losetup --offset [offset of the second partition*512] /dev/loop0 orig_image.img
e2fsck -f /dev/loop0
resize2fs -f /dev/loop0
losetup -d /dev/loop0
但我担心分区表没有正确调整大小:
parted orig_image.img > print
Model: (file)
Disk /home/user/orig_image.img: 7255MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 4194kB 67,1MB 62,9MB primary fat16 lba
2 67,1MB 4000MB 3933MB primary ext4
但如果我chroot进入系统,它实际上找到了新的空间...... 我错过了一些步骤吗?
我尝试使用gparted调整分区大小,但它在e2fsck期间无法抱怨错误。
在/ dev / loop0上运行e2ksck失败,超级块幻数中出错
—
Mark
FWIW,最好不要使用
—
Tom Yan
parted
因为它默认使用SI单位而不是二进制单位,这可能会引起混淆。使用 fdisk -l
代替。
此外,您需要在调整文件系统大小之前调整分区(分区表上的条目)的大小
—
Tom Yan
resize2fs
。
FIY这是我找到dd命令的链接(第二个答案): raspberrypi.stackexchange.com/questions/4943/...
—
Mark
没关系。我错了。该命令确实创建了一个具有3GiB稀疏文件+ 1字节零的图像。
—
Tom Yan
truncate -s 3G image_for_append
尽管如此,仍然更好