История изменений
Исправление kostik87, (текущая версия) :
В parted нет флага bios_boot, есть только флаг boot и есть тип раздела bios_grub для встраивания кода загрузчика на разметке GPT при загрузке на BIOS (legacy режиме).
Ты всё напутал.
Флаг boot:
set 1 boot on
В разметке MBR могло быть 4 записи о разделах, т.к. таблица разделов хранится в нулевом секторе размером 512 байт. Из этих 512 бай 446 байт занимает код первичного загрузчика, а оставшиеся 66 байт - таблица разделов, по 16 байт на запись о каждом из 4-х основных разделов и 2 байта сигнатура 55 AA для указания корректности главной загрузочной записи, т.е. данных в этом секторе.
Загрузчик MS-DOS, а потом и Windows, состоял из двух частей, первая часть в этих 446 байтах, которая только умела читать таблицу разделов, искать в ней активный раздел, который помечается в parted флагом
set номер_раздела boot on
В случае использования 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
Для загрузчика 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 могло быть 4 записи о разделах, т.к. таблица разделов хранится в нулевом секторе размером 512 байт. Из этих 512 бай 446 байт занимает код первичного загрузчика, а оставшиеся 66 байт - таблица разделов, по 16 байт на запись о каждом из 4-х основных разделов и 2 байта сигнатура 55 AA для указания корректности главной загрузочной записи, т.е. данных в этом секторе.
Загрузчик MS-DOS, а потом и Windows, состоял из двух частей, первая часть в этих 446 байтах, которая только умела читать таблицу разделов, искать в ней активный раздел, который помечается в parted флагом
set номер_раздела boot on
В случае использования 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
Для загрузчика grub при разметке MBR (msdos) делать раздел активным не нужно, если прописывать код загрузчика в основную загрузочную запись, т.е. вызывать утилиту grub-setup /dev/sda, а не /dev/sda1.
В общем, как-то так, ну а страницу документации parted тебе уже привели: https://www.gnu.org/software/parted/manual/html_node/set.html
Удачи.