GPT PMBR 克隆后的大小不匹配。

我正在将我的Ubuntu EFI引导系统迁移到一个更大的硬盘上。我使用了以下命令:
dd if=/dev/sdb of=/dev/sda

我在复制之前没有卸载输入文件,输出文件是全新的未分区空间。我已经成功从新的更大硬盘启动。
  • fdisk -l 报告:

    GPT PMBR 大小不匹配

  • gdisk 报告旧驱动器大小为(200GB)和

  • PMBR 报告新硬盘大小为(2TB)。

错误说明 gdisk w(写入)命令将起作用,但 gdisk 帮助建议使用命令 xe(将备份重定位到磁盘末尾)。

我的目标是移除旧驱动器,并将新驱动器用作带有旧 grub 安装的主引导磁盘。

我应该继续扩展分区还是使用其中一个命令?

3个回答

按照gdisk提示做:在专家(x)菜单上使用e选项将数据结构重定位到磁盘末尾。如果您喜欢,也可以在parted或GParted中完成相同的操作。我记得它们会自动执行,但需要确认。

移动了GPT备份数据结构后,您可以使用GParted调整分区大小。


5你应该相信这个人 - 他写了gdisk(http://www.rodsbooks.com/gdisk/)。 - mikeserv
我最终使用了来自一个活动的USB的gparted。我删除了分区并在新驱动器上重写了分区表。从那里开始,我编写了机器人步骤:gparted复制了旧磁盘的分区结构,并同时调整了分区大小并将数据复制到新磁盘。它在我睡觉时完成了所有操作。 - Zakri Kneebone
1@ZakriKneebone:由于在这里没有解释“为什么你应该这样做”,我来解释一下:因为GPT存储在磁盘的第一个和最后一个扇区,以防第一个扇区上的GPT出现故障,它仍然有备份...(并且点赞!) - Fabby
1@RodSmith 如果有一个非交互式的替代方案也是可以的。在使用dd克隆到更大的驱动器后,这个问题总是会出现。如果克隆脚本能修复错误的“备份GPT”就很方便了。我在GPT fdisk (sgdisk)版本1.0.3中找不到重新定位选项。没关系,https://superuser.com/questions/905756/bash-scripting-parted-for-gpt#answer-906139 告诉我们-e|--move-second-header是sgdisk的选项。 - Pro Backup

只是又一个数据,我今天在调整我的EC2实例上的EBS卷时遇到了这个问题。我通过运行growpart /dev/nvme0n1 1来解决它,这样就正确地调整了我的分区大小。

我想对我的尝试和错误进行详细解释,以便那些尝试相同方法的人能够更好地理解,因为文档相当零散,并指向了几种不同的技术。
最后,我使用了来自一个活动的USB设备上的gparted。我删除了分区并在新驱动器上重写了分区表。Gparted有一个步骤序列器:它复制了旧磁盘的分区结构,并同时调整了分区大小并将数据复制到新磁盘。这一切都是在我睡觉的时候完成的。
使用dd命令还需要手动更新fstab文件,但我跳过了这一步。然后我尝试了来自live usb的ddrescue(通过Synaptic的Universe软件包,而不是软件中心),但它报告说无法与gpt一起使用。它建议我使用gparted。

太棒了!很多人会从这个问答中学到很多东西... - Fabby