備份 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.

相關內容