备份 GPT 表已损坏。修复将在重新启动时消失

备份 GPT 表已损坏。修复将在重新启动时消失

我最近安装的 ubuntu 16.04 系统运行不正常(无法启动)。我确实使用 fdisk 检查了硬盘驱动器的状态,发现备份 GPT 表不知何故已损坏。

ubuntu@ubuntu:~$ sudo fdisk -lu /dev/sda
The backup GPT table is corrupt, but the primary appears OK, so that will be used.
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 574A30DA-2F2E-414A-A537-2E3E2B4F46FA

Device         Start       End   Sectors   Size Type
/dev/sda1       4096 611463167 611459072 291.6G Linux filesystem
/dev/sda2  611463168 955576319 344113152 164.1G Linux filesystem
/dev/sda3  955578368 975628335  20049968   9.6G Linux swap
/dev/sda4  975630336 976773119   1142784   558M EFI System

我可以使用 gdisk 解决这个问题:

ubuntu@ubuntu:~$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.1

Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************

Command (? for help): p
Disk /dev/sda: 976773168 sectors, 465.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 574A30DA-2F2E-414A-A537-2E3E2B4F46FA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 976773134
Partitions will be aligned on 2048-sector boundaries
Total free space is 8125 sectors (4.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            4096       611463167   291.6 GiB   8300  
   2       611463168       955576319   164.1 GiB   8300  
   3       955578368       975628335   9.6 GiB     8200  
   4       975630336       976773119   558.0 MiB   EF00  EFI System Partition

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

使用partprobefdisk后似乎很高兴:

ubuntu@ubuntu:~$ sudo fdisk -lu /dev/sda
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 574A30DA-2F2E-414A-A537-2E3E2B4F46FA

Device         Start       End   Sectors   Size Type
/dev/sda1       4096 611463167 611459072 291.6G Linux filesystem
/dev/sda2  611463168 955576319 344113152 164.1G Linux filesystem
/dev/sda3  955578368 975628335  20049968   9.6G Linux swap
/dev/sda4  975630336 976773119   1142784   558M EFI System

但是,如果我重新启动,硬盘似乎会恢复到旧状态,并且问题仍然存在。什么可能导致这种情况?我还应该检查什么?

编辑:我使用 bootinfo 来获取更多信息:http://paste2.org/VjgDdhO3 它确实报告了 boot/efi 分区的一些奇怪的情况:

Boot sector info:  According to the info in the boot sector, sda4 starts at sector 0. But according to the info from fdisk, 
sda4 starts at sector 975630336.

相关内容