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), и это показывает мне флаг загрузки.

5
задан 4 December 2017 в 20:07

2 ответа

Это из-за ГПТ.

В моей системе 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 правильно показывает загрузочный флаг.

3
ответ дан 4 December 2017 в 20:07

Если вам нужно найти эту информацию программно (как это сделал я), эта команда должна помочь вам. 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 с помощью 2> / 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 в текущем каталоге, а затем удалит результат. Если это проблема для вас, измените имя соответствующим образом.

0
ответ дан 15 January 2020 в 16:16

Другие вопросы по тегам:

Похожие вопросы: