修复损坏的备份 GPT 表?

tom*_*oqv 36 partitioning

在成功安装双引导环境,将 Ubuntu 13.10 添加到预安装的 Windows 8 配置后,我决定在阅读过度配置的好处后增加未分配的 SSD 磁盘空间。因此,在 Windows 中使用 miniTools 分区向导,我稍微缩小了 NTFS Windows 分区。这似乎已经成功完成。但是,当我启动 Linux 并启动 GParted 时,它在启动时给出以下错误消息:

备份 GPT 表已损坏,但主表显示正常,因此将使用该表。

系统的一切似乎都很好,但我担心如果主 GPT 表由于某种原因损坏,我会遇到问题。

我已经使用 gdisk 将 GPT 表备份到文件中,但是有没有办法创建一个新的备份 GPT 表?

old*_*red 49

最好先备份分区表,以防更改不正确。那么就可以恢复旧的分区表。如果驱动器是 sda 并保存到另一个驱动器:

sudo sfdisk -d /dev/sda > PT_sda.txt
Run Code Online (Sandbox Code Playgroud)

使用gdisk并使用验证分区是否正确p,并使用w写入分区表。如果不正确,请使用q退出。这应该更新主要、备份和保护 MBR。

sudo gdisk /dev/sda
Command (? for help): 
Run Code Online (Sandbox Code Playgroud)

b 将 GPT 数据备份到文件
c 更改分区名称
d 删除分区
i 显示分区
l 列表的详细信息已知分区类型
n 添加新分区
o 创建新的空 GUID 分区表 (GPT)
p 打印分区表
q 退出而不保存更改
r 恢复和转换选项(仅限专家)
s 对分区进行排序
t 更改分区的类型代码
v 验证磁盘
w 写入表到磁盘并退出
x 额外功能(仅限专家)
? 打印此菜单

请务必查看下面 Rod Smith 的评论,他是他的Rodbooks 站点上 gdisk 的作者。

  • 请注意,`gdisk` 也有一个 `v` 命令,可以显示大多数 GPT 问题的详细信息。此外,[此页面](http://www.rodsbooks.com/gdisk/repairing.html) 描述了`gdisk` 的修复选项。至于合并两个单独的未分配空间块,这是通过移动中间分区在 GParted 等中完成的。这是一项有风险的操作,因此请仅在必要时进行。或者,您可以创建两个分区并使用 LVM 创建一个跨越两个分区的逻辑卷,即使它们是不连续的。 (10认同)
  • 谢谢,解决了问题!现在到另一个问题,是否可以合并两个单独的未分配空间块,在这种情况下,我应该合并吗? (2认同)
  • 小心 - 我的磁盘是软件 raid 阵列的一部分。此命令将分区类型从“Linux raid autodetect”更改为“Linux filesystem”,现在我的 raid 阵列超级块丢失了。(我有备份)。 (2认同)
  • 我知道这是一个老问题,我也有同样的问题,但没有一个 gdisk 选项成功修复了 GPT。我收到一条错误消息,指出备份 GPT 已损坏,无论我做了什么,我都无法修复此问题。我目前正在使用 TestDisk 尝试恢复设备,但我不太希望这能起作用。我使用的是 250Gb MicroSD 卡。 (2认同)
  • 最好在尝试进行更改之前备份当前分区表:`sudo sfdisk -d /dev/sda > PT_sda.txt` Belst 然后开始您自己的问题,发布您的详细信息。 (2认同)

Die*_*ego 7

修复备份 GPT 的最简单方法是:

sgdisk -e <target-device>
Run Code Online (Sandbox Code Playgroud)

例如:

sgdisk -e /dev/sda
Run Code Online (Sandbox Code Playgroud)

手册中所述,该-e选项:

-e, --move-second-header:将备份 GPT 数据结构移动到磁盘末尾。如果您已将磁盘添加到 RAID 阵列,从而创建一个具有遵循备份 GPT 数据结构的空间的虚拟磁盘,请使用此选项。此命令将备份 GPT 数据结构移动到它们所属的磁盘末尾。