Теперь касательно установки SLх64 на диск с разметкой GPT.
На примере Lenovo G50-80.
BIOS имеет два режима загрузки:
- UEFI
- Legacy
В UEFI обращение идёт только к EFI разделу и не видит MBR.
В Legacy обращение идёт к MBR (446 байт код загрузчика + 64 байта таблица разделов (16 байт на раздел) + 2 байта сигнатура MBR) обращается только к MBR и не обращает внимания на EFI.
Т.о. можно подружить две системы, одна из которых грузится через UEFI, а другая через MBR.
Недостаток MBR в ограничении в 2 терабайта на адресуемое дисковое пространство.
Снимаем MBR в файл
# dd if=/dev/sda of=mbr.bin bs=512 count=1
Пропускаем код MBR-загрузчика 446 байт.
55 aa - сигнатура MBR
Пятый байт (хэкс-код ee)
# hexdump -s 446 -C mbr.bin
000001be 00 00 01 00 ee fe ff ff 01 00 00 00 2f 60 38 3a |............/`8:|
000001ce 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001fe 55 aa |U.|
00000200
это тип раздела GPT
# sfdisk -T | grep ^ee
ee GPT
Кстати мимоходом:
fdisk, это сегодня классический пример того, что в Линукс есть и безголовые улучшатели. Сегодня fdisk не отображает хэкс-код типа раздела в листинге доступных типов разделов. Поэтому имея под руками только fdisk, вам нужно будет поломать голову, что означает в дампе тип раздела EEh. К тому же я не догадался, как же выйти из режима просмотра доступных типов разделов. Автор на совесть испортил мою любимую программу.
Туманно представляю себе реализацию Legacy (MBR) в UEFI BIOS.
Но. В дампе выше, заполнены только первые 16 байт.
А разделов на hdd явно больше четырёх. Вероятно в BIOS используется эмуляция MBR-загрузки, поскольку в классическом MBR, в таблице разделов только 4х16 байт и первичных разделов не может быть больше четырёх.
Но в любом случае, дамп выше показывает, что на винчестере и MBR и GPT раздел.
Флешка с альтом x86_64:
Правильные образы x86_64 имеют два загрузчика, классический и UEFI загрузчик.
От того какой GRUB2 будет отображён на загрузке с флешки, зависит от того в каком режиме установлена загрузка в UEFI BIOS, - UEFI или Legacy. Secure boot в UEFI BIOS рекомендуется отключить.
Дополнительно можно перед загрузкой с флешки, вызвать по хоткею загрузочное меню (смотреть руководство на системную плату или ноутбук).
Стало быть с x86_64 Линукс, вы можете установить загрузчик или в MBR (Legacy mode) или в EFI (UEFI mode), в зависимости от того в каком режиме загрузка в BIOS.
Обычно на этапе работы с разделами при установке системы, для корня вы указываете / для корневого раздела и /home для домашнего /home раздела. Если используется UEFI режим в BIOS, на этапе работы с разделами, вы должны указать и точку монтирования /boot/efi для GPT раздела, иначе система не загрузится. А загрузчик устанавливать не в MBR (как-то там выбирается GPT (EFI)).
Если в BIOS выбран Legacy mode и через него загружен GRUB2 с флешки, то загрузчик x86_64 системы устанавливается в MBR.
Т.о. если одна система грузится с винчестера через MBR, а другая через UEFI, то эти системы полностью развязаны: через Legacy нельзя загрузить UEFI систему, а через UEFI нельзя загрузить MBR систему. И в этом случае выбор загружаемой системы через выбор режима загрузки в BIOS - UEFI/Legacy. К тому же повреждение MBR не вызовет отказа загрузки системы загружаемой через UEFI.
Вероятно всё это может показаться хитрозакрученным, ну уж как есть...
Если в компьютере есть UEFI BIOS:
Будьте предельно подозрительны до паранойи. Ошибки в сырых UEFI BIOS могут привести к переполнению NVRAM и отказу системной платы. На большинстве фирм это не лечится и исправляется только заменой системной платы. В сети встречал только одного англоязычного электронщика-цифровика (убунтовода) который отремонтировал такую плату с заменой nvram и копированием контента через программатор. Но нужно быть ассом и до мелочей понимать архитектуру компьютера чтобы выпонить такой объём работ.
https://forum.altlinux.org/index.php?topic=13216.msg321840#msg321840https://forum.altlinux.org/index.php?topic=13216.msg321927#msg321927Для устранения такой опасной ошибки в прошивке UEFI BIOS мне пришлось использовать виндоус для обновления BIOS.
Речь не про Lenovo, речь про всё что имеет Insyde UEFI/BIOS.
Такая ошибка в UEFI BIOS крайне опасна.
Современные тенденции: т.е. железо выпускается, но код под него выходит сырой и опасный. Временами это приводит к необратимому отказу железа по вине производителя UEFI BIOS.
Из-за ошибки в UEFI BIOS, garbage collector не вычищает nvram:
https://github.com/systemd/systemd/issues/909#issuecomment-128764002