我正在尝试调整包含 GPT 分区表和多个 NTFS 分区的原始映像(使用 dd 创建)的大小。我使用 losetup 挂载了映像,运行了 partprobe 来更新内核知道的分区,运行了 gparted 并调整了最后一个分区的大小,然后卸载了映像。然后我将图像截断到最后一个分区结束的位置加上 512 字节。不幸的是,截断似乎把事情搞砸了,因为如果我尝试再次检查映像中的分区,我会从 fdisk 收到以下错误:
GPT PMBR size mismatch (1875385007 != 488280063) will be corrected by write.
这些数字与旧的扇区数和新的截断扇区数相匹配。 Gparted 也出错并表示无法读取备份分区表。我的猜测是,GPT 分区表必须在所有分区结束后存储备份表,而截断会弄乱这一点。另外,因为 fdisk 报告原始扇区数,所以我假设 GPT 分区表以某种方式存储有关磁盘大小的详细信息,同样,截断也会弄乱这一点。调整文件系统和分区大小后截断映像的正确步骤是什么?我假设首先需要做一些事情来修改分区表磁盘信息,然后需要留出一定的额外空间来允许存储备份分区表,但这只是一个猜测。