
我最近安裝的 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.
使用partprobe
fdisk後似乎很高興:
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.