我最近安装的 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.