fdisk 不显示启动标志

fdisk 不显示启动标志

我通常用fdisk -l它来查看分区。我最近在一台计算机上安装了 ubuntu 17.10,发现 fdisk 不再像以前那样显示启动标志。现在的输出如下所示

Device       Start        End    Sectors  Size Type
/dev/sda1     2048    1050623    1048576  512M EFI System
/dev/sda2  1050624 1953523711 1952473088  931G Linux filesystem

我找不到任何关于引导列缺失原因或如何恢复的信息。有任何相关链接/信息吗?

fdisk --version给了我fdisk from util-linux 2.30.1。我有另一台计算机,版本为 2.27(ubuntu 16.04),这确实向我显示了启动标志。

答案1

这是因为 GPT。

在我的 Ubuntu 16.04 LTS 系统上fdisk -l /dev/sda显示以下内容:

Disk /dev/sda: xxx GiB, yyyyyyyyyyyyy bytes, zzzzzzzzz 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: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    616447    614400   300M EFI System
...

sudo parted /dev/sda显示几乎相同:

(parted) p
Model: ATA ... (scsi)
Disk /dev/sda: xxxGB
Sector size (logical/physical): 512B/512B
**Partition Table: gpt**
Disk Flags: 

Number  Start   End     Size    File system     Name                          Flags
 1      1049kB  316MB   315MB   fat32           EFI system partition          **boot**, esp
...

因此parted正确显示引导旗帜。

答案2

如果您需要以编程方式查找此信息(就像我一样),此命令应该可以为您解决问题。 sudo parted -l 2>/dev/null | grep -B7 boot > temp.fil; grep Disk temp.fil; grep boot temp.fil; rm temp.fil

此命令产生类似如下的输出:

Disk /dev/nvme0n1: 120GB
Disk Flags: 
 1      1049kB  577MB  576MB  primary  ntfs         boot

对于那些不熟悉这些命令的人来说,它们的工作原理如下:

man parted

-l, --list
              lists partition layout on all block devices

这是通过管道传输的grep

dev/null 通过将错误输出重定向到with2>/dev/null来消除我的光驱在 parted 输出中生成的错误消息,从而解决了这个问题。

man grep

-B NUM, --before-context=NUM
              Print NUM lines of leading context before matching lines.  Places a line containing a group separator (--) between
              contiguous groups of matches.  With the -o or --only-matching option, this has no effect and a warning is given.

我选择抓取前 7 行并重定向到临时文件,temp.fil以便轻松获得所需的输出,您可能会发现在匹配之前需要不同数量的行才能获得所需的内容。每个行都;表示新命令的开始。grep Disk temp.fil返回临时文件中标识启动驱动器的行,并grep boot temp.fil返回临时文件中标识启动分区的行。rm temp.fil只需删除先前创建的临时文件。

笔记:此命令字符串将覆盖temp.fil当前目录中调用的任何文件,然后删除结果。如果这对您来说是个问题,请相应地更改名称。

相关内容