Pull to refresh

Comments 38

Очень любопытно. Хотелось бы узнать, можно ли было бы сделать так, чтобы загрузчик был полностью универсальным и, вообще, не был связан ни с одной операционной системой? Если бы такой системный загрузчик существовал бы, то, наверное, можно было бы в нём задавать разделы для отдельных операционных систем таким образом, чтобы различные системы ничего не знали бы друг о друге и ничего не знали бы о загрузочной записи. Или это всё и так уже реализовано (в UEFI)? Возможно, вопрос нужно как-то переформулировать, поскольку он не совсем ясен (наверное).
Но, всё-же, GRUB не грузит Windows напрямую, а просто передаёт управление стандартному загрузчику (NTLDR / Windows Boot Manager). Так что он не до конца Unified.
Нормальная поддержка NVMe boot есть с z97, предыдущие чипсеты имели сломанную поддержку (хотя некоторые материнки работают).
спасибо за подробную статью, может она развеет страх перед GPT у некоторых «сисопов», которые его сторонятся
немного добавлю: GRUB может грузиться (и грузить) с GPT и BIOS системы, но для этого понадобится небольшой (например 100 МБ) сырой раздел в начале диска и поддержка на стороне ОС (в CentOS, например, такое не поддерживается и не работает, в Ubuntu поддерживается, но не работает (возможно, починили, но я сомневаюсь), в openSUSE поддерживается и работает).
У меня GRUB стоит на EFI-разделе. В итоге можно грузить всё, что угодно — для пробы грузился из образов с установщиками различных дистров (Windows, Ubuntu, Gentoo, Arch).
1. Не надо 100 Мб, достаточно одного мегабайта, грабу этого с лихвой хватает.
2. В моих экспериментах CentOS 7 прекрасно грузился в Legacy-BIOS-режиме с GPT-диска. Убунту, вроде тоже, но уже точно не помню, проверял ли конкретно такую конфигурацию. По идее, тоже не должно быть проблем.
UFO just landed and posted this here
Вы, похоже, путаете этот раздел с разделом /boot. Этот мегабайтный раздел нужен по сути для хранения Stage 1.5, который раньше на MBR-дисках располагался в неразмеченном пространстве (см. рисунок в статье), а теперь это пространство занято самой таблицей GPT. Здесь не совмещаются разные системы, здесь живёт один-единственный загрузчик длиной в 62 сектора. Ему не нужны сотни мегабайт.
UFO just landed and posted this here

Покупая батон хлеба за 20 рублей тоже даёте тысячу и принципиально не берете сдачу?

UFO just landed and posted this here
UFO just landed and posted this here
GPT хранит копию раздела и загрузочных данных и может восстановить данные в случае повреждения основного заголовка GPT.

А это где-то действительно так работает? Пробовал в W10 — стёр копию GTP в начале диска и всё, диск пустой, ничего не восстановилось.
Загрузчики действительно часто используют только primary GPT. А вот утилиты работы с дисками предлагают восстановить primary GPT из backup GPT.
Развейте, пожалуйста, мою тревогу по поводу UEFI (GPT):

* говорят, что та микросхема где находится UEFI имеет очень мало циклов перезаписи (100?)?
* можно (да, можно) примонтировать этот раздел с UEFI мат. платы в ОС и что будет если все оттуда удалить? включится ли компьютер и можно ли будет просто безболезненно загрузится с флешки и снова установить ОС?
  1. UEFI — это просто навороченный BIOS. Хранится на абсолютно такой-же CMOS микросхеме, так что количество циклов никак не меняется.
  2. UEFI раздел — обычный fat32 (другие фс — редкость) раздел. Да, его можно примонтировать и всё оттуда удалить. ОС, конечно, не загрузится. Загрузиться с флешки можно всегда — UEFI раздел не является сверх-важной частью самой прошивки, это замена первому сектору из MBR (с поправкой на то, что сектор в MBR один (и загрузчик тоже один), а в UEFI разделе можно расположить несколько загрузчиков просто в виде стандартных файлов).

примонтировать этот раздел с UEFI мат. платы

ESP раздел не часть мат. платы, а самый обычный раздел на самом обычном HDD/SSD.
Если уж быть точным, то не CMOS, а скорее SPI-NOR. Количество циклов не мегабольшое, они используются только при обновлении прошивки.
Ерунду говорят. Для EFI используются микросхемы QuadSPI NOR Flash с ~100к циклов записи\стирания, вот даташит на одну из самых популярных на данный момент микросхем. Если очень-очень стараться, чип можно вывести из строя, конечно, но это справедливо для любого оборудования.
По поводу включится ли — определенно, никакие данные с диска для работы прошивки не нужны. ОС, понятно, перестанет загружаться, но это дело поправимое.
Большинство операционных систем на ядре Linux совместимы с GPT. При установке ОС Linux на диск в качестве загрузчика будет установлен GRUB 2

Linux может загружаться и из UEFI непосредственно.
Grub всего лишь один из возможных загрузчиков.
Мало того, сейчас уже и загрузчик не нужен. На uefi можно сразу запустить линукс с systemd. Подробности не изучал, но тема интересная.
А причём тут systemd? Любой инит будет работать. Прошивка загружает ядро с EFI_STUB (т.е. само ядро будет оформлено как обычное EFI приложение), а ядро уже в свою очередь запускает инит (systemd/openrc/upstart/sysvinit/суперофигенныйинитвасипупкина). Лично у меня на ESP разделе хранятся подписанные образы EFI приложений, которые включают в себя ядро + initrd + intel-ucode + cmdline, и всё это добро подписано ключами для UEFI Secure Boot. Достаточно удобно получилось — всё обновляется само стандартным пакетным менеджером.
Помните команды? Хотел также себе сделать, но сами понимаете, лениво)) И у вас Archlinux?? У меня Debian.
Небольшие поправки:
Если вам нужно больше, то можно назначить четвёртый раздел расширенным разделом
Не обязательно четвертый, можно любой. И на моей практике чаще всего это был второй раздел.
MBR использует 32 бита для записи раздела
32 бита для записи длины раздела, выраженной в секторах.
А полная запись о разделе занимает 16 байт.
GPT допускает неограниченное количество разделов, в то время как MBR допускает только четыре.
MBR тоже допускает неограниченное количество разделов.
Потребность в GPTобычно возникает в случае накопителей, где количество секторов согласно паспорта (который отдает накопитель по 0xED) превышает 4 294 967 296. По сущности это любой накопитель емкостью более 2ТБ с сектором 512 байт (либо с эмуляцией сектора подобного размера).

Подчеркивать достоинства GPT с точки зрения надежности из-за наличия второй копии можно, но с большими оговорками. Например, что при необдуманных действиях пользователя будет испорчено содержимое обеих копий. Если же говорить о простоте восстановления, то классическую таблицу разделов в дисковом редакторе написать может любой системный администратор, если ознакомится с ее устройством. В случае GPT все будет сложнее. Для многих камнем преткновения станут идентификаторы разделов и контрольная сумма.

Для конечного пользователя не играет роли, как будет передаваться управление загрузчику ОС. По этой причине можно сказать, если Ваш накопитель менее 2ТБ и нет каких-то явных причин использовать GPT, то нет смысла заниматься конвертацией за которую ратуют в статье.
Статья хорошая. MBR и GPT имеют сравнение. Linux грузится не только GRUB. Есть еще LILO и куча других загрузчиков. А еще есть не только Linux, но и BSD подобные системы и не только *NIX подобные, но и совсем особенные. Вот для унификации процессак загрузки и придумали UEFI.
GUID Partition table не грузит операционную систему, а содержит таблицу разделов. UEFI — вариант стандартизации EFI. Загрузка рассмотрена хорошо и даже полезно, но не путайте служебные области и процесс инициализации системы. Большим стимулом для этой путаницы выступает структура MBR и первые компьютеры у которых было мало памяти и низкие скорости. Структура MBR описана правильно, но надо разделять два разных функционала. Функция загрузки и функция определения геометрии разделов.
Есть еще само ядро, оно тоже сам себе загрузчик (EUFI STAB).
Ну загрузчик это и есть .efi приложение. И этот efi позволяет загружать другие efi? Я просто не в курсе… Просто если да, то это EUFI.
Ну блин, не путайте понятия — UEFI != EUFI (вообще без понятия, откуда такая аббревиатура). Unified Extensible Firmware Interface.
В EFI вообще нет понятия «загрузчик» — загружается некое EFI-приложение, которое может быть чем угодно (memtest, Linux kernel, Windows loader).
refind прекрасно грузит и линукс и форточки, причем ядро линукс грузится без всяких грабов. Мультибут с красивыми темами выбора оси и тд и тп. И в виртуалбоксе работает
А вам больше скажу, ядро linux может быть сам себе загрузчиком.
Последний OSX (Mac OS) неофициально можно ставить на диск с разметкой MBR. Для этого необходимо заменить один установочный файл. Пришлось сделать так на Macbook Pro 2010 года. На одном SSD должны были жить последняя OSX и Windows 10. К сожалению любые дрова на видеокарту Nvidia GeForce 320M приводили к BSOD, если Windows 7/8/10 был установлен в режиме UEFI.
Sign up to leave a comment.

Articles