LINUX.ORG.RU

История изменений

Исправление kostik87, (текущая версия) :

В parted нет флага bios_boot, есть только флаг boot и есть тип раздела bios_grub для встраивания кода загрузчика на разметке GPT при загрузке на BIOS (legacy режиме).

Ты всё напутал.

Флаг boot:

set 1 boot on
Он применяется на разметке MBR (Master Boot Record), в терминологии parted она называется msdos.

В разметке MBR могло быть 4 записи о разделах, т.к. таблица разделов хранится в нулевом секторе размером 512 байт. Из этих 512 бай 446 байт занимает код первичного загрузчика, а оставшиеся 66 байт - таблица разделов, по 16 байт на запись о каждом из 4-х основных разделов и 2 байта сигнатура 55 AA для указания корректности главной загрузочной записи, т.е. данных в этом секторе.

Загрузчик MS-DOS, а потом и Windows, состоял из двух частей, первая часть в этих 446 байтах, которая только умела читать таблицу разделов, искать в ней активный раздел, который помечается в parted флагом

set номер_раздела boot on
далее в начале этого активного раздела этот код считывал уже основной загрузчик, который туда прописывался при установке операционной системы. Во времена MS-DOS это был файл io.sys. Во если брать Windows NT, Windows 2000, Windows XP, то это ntldr, если брать Windows Vist, 7, 8, 10 - bootmgr.

В случае использования GPT разметки при установке загрузчика, который грузится в режиме legacy (BIOS) нужна область куда будет встраиваться код загрузчика.

bios_grub - тип раздела, для встраивания кода загрузчика, он просто так называется в parted. Для GPT это просто обычный раздел, который имеет тип ef02 BIOS boot partition.

Если использовать не parted, который не особо понятен, а классические утилиты для работы с таблицей разделов, в случае mbr (msdos) - это fdisk, а для gpt - gdisk, хотя fdisk умеет работать и с gpt, но мы это опустим.

Так вот в случае использования утилиты gdisk можно увидеть реальную картину, вот так выглядит раздел, указан его размер, начальный и конечный сектор и его тип (ef02), который называется «BIOS boot partition»:

gdisk /tmp/test.img 
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /tmp/test.img: 819200 sectors, 400.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): E8F61457-5A71-4159-8FDC-19BE2313E7FA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 819166
Partitions will be aligned on 2048-sector boundaries
Total free space is 626621 sectors (306.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          194559   94.0 MiB    EF02  1
В примере не реальный диск, а файл, в котором создана разметка.

Если говорить о разметке MBR (msdos), то там возможно только установить флаг активности раздела, вот вывод из утилиты fdisk:

fdisk /tmp/test.img 

Welcome to fdisk (util-linux 2.24.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.

Created a new DOS disklabel with disk identifier 0x54740120.

Команда (m для справки): n

Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 

Using default response p.
Номер раздела (1-4, default 1): 
First sector (2048-819199, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-819199, default 819199): 

Created a new partition 1 of type 'Linux' and of size 399 MiB.

Команда (m для справки): a
Selected partition 1
The bootable flag on partition 1 is enabled now.

Команда (m для справки): p
Disk /tmp/test.img: 400 MiB, 419430400 bytes, 819200 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: dos
Disk identifier: 0x54740120

Устр-во        Загрузочный Start Конец Blocks  Id System
/tmp/test.img1 *            2048    819199 408576  83 Linux
Вот в утилите fdisk пример создания раздела и выставления флага активности раздела. В выводе в поле «Загрузочный» стоит символ «*» звёздочка, указывающая что это активный раздел.

Для загрузчика grub при разметке MBR (msdos) делать раздел активным не нужно, если прописывать код загрузчика в основную загрузочную запись, т.е. вызывать утилиту grub-setup /dev/sda, а не /dev/sda1.

Но есть один нюанс, некоторые BIOS устроены так, что они не будут пытаться грузиться с диска, если на нём нет ни одного активного раздела, даже если активный раздел в принципе не нужен, так что даже в случае использования grub, которому флаг активности не нужен, возможно, придётся этот флаг всё же выставить.

В общем, как-то так, ну а страницу документации parted тебе уже привели: https://www.gnu.org/software/parted/manual/html_node/set.html

Удачи.

Исходная версия kostik87, :

В parted нет флага bios_boot, есть только флаг boot и есть тип раздела bios_grub для встраивания кода загрузчика на разметке GPT при загрузке на BIOS (legacy режиме).

Ты всё напутал.

Флаг boot:

set 1 boot on
Он применяется на разметке MBR (Master Boot Record), в терминологии parted она называется msdos.

В разметке MBR могло быть 4 записи о разделах, т.к. таблица разделов хранится в нулевом секторе размером 512 байт. Из этих 512 бай 446 байт занимает код первичного загрузчика, а оставшиеся 66 байт - таблица разделов, по 16 байт на запись о каждом из 4-х основных разделов и 2 байта сигнатура 55 AA для указания корректности главной загрузочной записи, т.е. данных в этом секторе.

Загрузчик MS-DOS, а потом и Windows, состоял из двух частей, первая часть в этих 446 байтах, которая только умела читать таблицу разделов, искать в ней активный раздел, который помечается в parted флагом

set номер_раздела boot on
далее в начале этого активного раздела этот код считывал уже основной загрузчик, который туда прописывался при установке операционной системы. Во времена MS-DOS это был файл io.sys. Во если брать Windows NT, Windows 2000, Windows XP, то это ntldr, если брать Windows Vist, 7, 8, 10 - bootmgr.

В случае использования GPT разметки при установке загрузчика, который грузится в режиме legacy (BIOS) нужна область куда будет встраиваться код загрузчика.

bios_grub - тип раздела, для встраивания кода загрузчика, он просто так называется в parted. Для GPT это просто обычный раздел, который имеет тип ef02 BIOS boot partition.

Если использовать не parted, который не особо понятен, а классические утилиты для работы с таблицей разделов, в случае mbr (msdos) - это fdisk, а для gpt - gdisk, хотя fdisk умеет работать и с gpt, но мы это опустим.

Так вот в случае использования утилиты gdisk можно увидеть реальную картину, вот так выглядит раздел, указан его размер, начальный и конечный сектор и его тип (ef02), который называется «BIOS boot partition»:

gdisk /tmp/test.img 
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /tmp/test.img: 819200 sectors, 400.0 MiB
Logical sector size: 512 bytes
Disk identifier (GUID): E8F61457-5A71-4159-8FDC-19BE2313E7FA
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 819166
Partitions will be aligned on 2048-sector boundaries
Total free space is 626621 sectors (306.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          194559   94.0 MiB    EF02  1
В примере не реальный диск, а файл, в котором создана разметка.

Если говорить о разметке MBR (msdos), то там возможно только установить флаг активности раздела, вот вывод из утилиты fdisk:

fdisk /tmp/test.img 

Welcome to fdisk (util-linux 2.24.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.

Created a new DOS disklabel with disk identifier 0x54740120.

Команда (m для справки): n

Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 

Using default response p.
Номер раздела (1-4, default 1): 
First sector (2048-819199, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-819199, default 819199): 

Created a new partition 1 of type 'Linux' and of size 399 MiB.

Команда (m для справки): a
Selected partition 1
The bootable flag on partition 1 is enabled now.

Команда (m для справки): p
Disk /tmp/test.img: 400 MiB, 419430400 bytes, 819200 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: dos
Disk identifier: 0x54740120

Устр-во        Загрузочный Start Конец Blocks  Id System
/tmp/test.img1 *            2048    819199 408576  83 Linux
Вот в утилите fdisk пример создания раздела и выставления флага активности раздела. В выводе в поле «Загрузочный» стоит символ «*» звёздочка, указывающая что это активный раздел.

Для загрузчика grub при разметке MBR (msdos) делать раздел активным не нужно, если прописывать код загрузчика в основную загрузочную запись, т.е. вызывать утилиту grub-setup /dev/sda, а не /dev/sda1.

В общем, как-то так, ну а страницу документации parted тебе уже привели: https://www.gnu.org/software/parted/manual/html_node/set.html

Удачи.