修复损坏的备份GPT表?


26

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

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

该系统看起来一切正常,但我担心如果主GPT表由于某种原因而损坏,我会遇到问题。

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


我不建议使用MiniTool软件(已成功使用多年)。我最近尝试用该软件对SD卡进行分区,并以一个真正令人讨厌的GPT分区表结束,该表需要进行重大修复(或谷歌搜索5-10分钟,但同样令人讨厌)。如果可以,请坚持使用Linux,并使用gdisk或fdisk创建分区表。
乔·约翰逊

Answers:


41

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

sudo sfdisk -d /dev/sda > PT_sda.txt

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

sudo gdisk /dev/sda
Command (? for help): 

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

一定要在Rodbooks网站上阅读gdisk的作者Rod Smith所发表的评论。


2
谢谢,这解决了这个问题!现在再问一个问题,是否可以合并两个单独的未分配空间块,在这种情况下,我应该吗?
tomoqv

4
请注意,gdisk还有一条v命令应该可以显示有关大多数GPT问题的详细信息。此外,此页面还介绍了gdisk的修复选项。至于合并两个单独的未分配空间块,可以通过移动中间分区在GParted等中完成。这是一个冒险的操作,因此仅在必要时才这样做。另外,您可以创建两个分区,并使用LVM创建跨越两个分区的逻辑卷,即使它们不是连续的。
Rod Smith

1
小心-我的磁盘是软件RAID阵列的一部分。此命令将分区类型从“ Linux raid autodetect”更改为“ Linux filesystem”,现在我的raid数组超级块丢失了。(我有一个备份)。
barrypicker

我丢失了所有文件操作系统,现在硬盘显示未分配的空间。不要遵循这个答案。
Praveen Yadav

我知道这是一个老问题,我也有同样的问题,但是所有gdisk选项都无法成功修复GPT。我收到一条错误消息,说备份GPT已损坏,无论我做了什么,我都无法解决。我目前正在使用TestDisk尝试恢复设备,但是我寄希望于此。我正在使用250Gb MicroSD卡。
GNULinuxOnboard

0

不能完全确定,但是当我有两个磁盘组成的软件团队(MDADM)时,会收到此消息。我损坏了阵列,试图删除此消息。我被迫重新创建阵列,但仍然收到此消息。由于该数组有效,但是我仍然收到此消息,所以我将继续处理该消息,而不是尝试删除/修复它。


我知道已经有一段时间了,但是现在我面临着类似的问题:)当您说重建阵列后消息又回来了,您是否可以确认(a)使用gparted之后消息消失了,以及(b)回来了重新创建数组后?如果是这样,您还记得如何重新创建阵列吗?我正在考虑对驱动器进行故障,删除,分区和重新添加。有什么想法吗?
jmlnik

弄清楚了。就我而言,我使用整个设备构建了突袭(而不是使用分区-这是另一天的辩论)。我要做的就是使用gdisk /dev/sdX带有选项xz
jmlnik
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.