Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
uefi [2016/10/26 11:04] [Возврат в режим Setup] |
uefi [2016/12/22 21:18] удалено |
||
---|---|---|---|
Строка 8: | Строка 8: | ||
==== BIOS ==== | ==== BIOS ==== | ||
- | Старый добрый BIOS отвечает за первичное тестирование ([[https://ru.wikipedia.org/wiki/POST_(%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)|POST]]), инициализацию практически всего аппаратного обеспечения компьютера и за инициализацию загрузки ОС с дискового носителя (хотя сегодня уже не все носители имеют в своей конструкции диск :-) ). | + | Старый добрый BIOS отвечает за первичное тестирование ([[https://ru.wikipedia.org/wiki/POST_(%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5)|POST]]), инициализацию практически всего аппаратного обеспечения компьютера и за инициализацию загрузки ОС с дискового носителя (хотя сегодня уже не все носители имеют в своей конструкции диск :-) ). Собственно вся процедура инициализации загрузки ОС заключалась в двух шагах: |
+ | - по настройкам BIOS найти устройство (диск) с которого надо загрузиться. | ||
+ | - считать в память MBR, т.е. первый сектор (512 байт) диска и запустить находящийся там код на исполнение. | ||
+ | За все остальное (даже за работу с таблицей разделов, которая располагается в конце MBR) отвечает тот самый маленький код, который расположен в первых 446 байтах MBR. | ||
Проблемой BIOS принято считать то, что много работы он делает зря (чем затягивает процесс загрузки системы). Практически всю его работу по инициализации и поддержке оборудования компьютера все современные ОС попросту игнорируют и повторно инициализируют и далее работают через свои драйвера. Все, что дает BIOS, было реально востребовано только в ранних версиях DOS... | Проблемой BIOS принято считать то, что много работы он делает зря (чем затягивает процесс загрузки системы). Практически всю его работу по инициализации и поддержке оборудования компьютера все современные ОС попросту игнорируют и повторно инициализируют и далее работают через свои драйвера. Все, что дает BIOS, было реально востребовано только в ранних версиях DOS... | ||
- | Другой проблемой являются ограничения, которые установлены для поддержки BIOS: это 16-ти разрядный реальный режим работы процессора с набором команд i8086, 1Мб адресуемого пространства памяти и периферия (клавиатура, видео адаптер, контроллер прямого доступа в память) совместимая с IBM AT. На сегодняшний день, требовать от 64-х разрядного многоядерного процессора совместимости с 16-разрядным i8086 - уже немного смешно, а требование совместимости по периферии с IBM AT уже даже не смешно, а очень грустно. | + | Другой проблемой являются ограничения, которые установлены для поддержки BIOS: это 16-ти разрядный реальный режим работы процессора с набором команд i8086, 1Мб адресуемого пространства памяти и периферия (клавиатура, видео адаптер, контроллер прямого доступа в память) совместимая с IBM AT. На сегодняшний день, требовать от 64-х разрядного многоядерного, многопоточного процессора совместимости с одноядерным и однопоточным 16-разрядным i8086 - уже немного смешно, а требование совместимости по периферии с IBM AT уже даже не смешно, а очень грустно. |
==== (U)EFI ==== | ==== (U)EFI ==== | ||
- | Идея отказаться от всего того ненужного, что делает BIOS, снять ограничения BIOS и сделать процесс инициализации и загрузки более гибким возникала уже очень давно, и различные попытки сделать это предпринимались, но IT-индустрия реально созрела к принятию нового общего стандарта загрузки персональных компьютеров только в начале этого века. В 2005 был создан консорциуму UEFI Forum, которому INTEL передал свою наработки по проекту Intel Boot Initiative (позже переименованному в EFI - Extensible Firmware Interface), начатому еще середине 90-х. Помимо Intel в консорциум вошли AMD, Apple, IBM, Microsoft и многие другие крупные IT-компании. Вместе с созданием консорциума спецификация EFI была переименована в UEFI (Unified Extensible Firmware Interface)((Не смущайтесь тем, что во многих местах UEFI упоминается как EFI - по сути это не совсем правильно, но по факту - речь об одном и том же.)). | + | Идея отказаться от всего того ненужного, что делает BIOS, снять ограничения BIOS и сделать процесс инициализации и загрузки более гибким возникала уже очень давно, и различные попытки сделать это предпринимались, но IT-индустрия реально созрела к принятию нового общего стандарта загрузки персональных компьютеров только в начале этого века. В 2005 был создан консорциуму [[http://www.uefi.org/|UEFI Forum]], которому INTEL передал свою наработки по проекту Intel Boot Initiative (позже переименованному в EFI - Extensible Firmware Interface), начатому еще середине 90-х. Помимо Intel в консорциум вошли AMD, Apple, IBM, Microsoft и многие другие крупные IT-компании. Вместе с созданием консорциума спецификация EFI была переименована в UEFI (Unified Extensible Firmware Interface)((Не смущайтесь тем, что во многих местах UEFI упоминается как EFI - по сути это не совсем правильно, но по факту - речь об одном и том же.)). |
- | Основные концепции положенные в основу UEFI - "минималистичность", "модульность" и независимость от процессора. Прошивка UEFI может быть собрана под 32-битный или 64-битный процессоры Intel или ARM, а также Intel Itanium процессоры. Кроме того UEFI имеет собственный менеджер загрузки и умеет работать с файловыми системами на диске (по умолчанию только FAT32) и умеет загружать драйвера для оборудования.\\ | + | Основные концепции положенные в основу UEFI - "минималистичность", "модульность" и независимость от процессора. Прошивка UEFI может быть собрана под 32-битный или 64-битный процессоры Intel, 32-х или 64-х битный ARM процессор, а также Intel Itanium процессоры. Кроме того UEFI имеет собственный менеджер загрузки и умеет работать с файловыми системами на диске (по умолчанию только FAT32) и умеет загружать драйвера для поддержки различного оборудования и файловых систем.\\ |
После включения компьютера и проведения первичного теста оборудования (на этом этапе разницы с BIOS нет) инициализируются только те подсистемы, которые необходимые для загрузки. | После включения компьютера и проведения первичного теста оборудования (на этом этапе разницы с BIOS нет) инициализируются только те подсистемы, которые необходимые для загрузки. | ||
В некоторых режимах загрузки, которые обычно называют Fast-boot (или Fast-Startup) даже клавиатура может оставаться не инициализированной пока не загрузится ОС. Некоторые настройки Fast-boot могут отключать работу со всеми USB устройствами и не будет возможности даже выбрать с чего грузится компьютеру, ведь клавиатура не работает до тех пор, пока не загрузится ОС. | В некоторых режимах загрузки, которые обычно называют Fast-boot (или Fast-Startup) даже клавиатура может оставаться не инициализированной пока не загрузится ОС. Некоторые настройки Fast-boot могут отключать работу со всеми USB устройствами и не будет возможности даже выбрать с чего грузится компьютеру, ведь клавиатура не работает до тех пор, пока не загрузится ОС. | ||
- | Причем, в отличии от BIOS, все компоненты которого записаны в постоянную(флеш) память, UEFI хранит часть своего кода на диске - в специальном разделе ESP((на самом деле ESP раздел может быть и на флеш-памяти и даже на сетевом хранилище, но эта экзотика (предусмотренная стандартом) вряд ли будет востребована простыми пользователями)). Это позволяет легко расширять, менять и обновлять код поддерживающий различные устройства компьютера без необходимости перепрограммировать постоянное ЗУ компьютера. А кроме драйверов для поддержки устройств на ESP разделе может хранится и поддержка протоколов, утилиты и даже собственная EFI-оболочка (shell), из-под которой можно запускать собственные EFI-приложения. Т.е. UEFI по сути - маленькая ОС (или псевдо-ОС). При этом загрузчик операционной системы - становится обычным приложением, которое исполняется в окружении, предоставляемом псевдо-ОС UEFI. | + | Причем, в отличии от BIOS, все компоненты которого записаны в постоянную(флеш) память, UEFI может хранить часть своего кода на диске - в специальном разделе ESP((на самом деле ESP раздел может быть и на флеш-памяти и даже на сетевом хранилище, но эта экзотика (предусмотренная стандартом) вряд ли будет востребована простыми пользователями)). Это позволяет легко расширять, менять и обновлять код поддерживающий различные устройства компьютера без необходимости перепрограммировать постоянное ЗУ компьютера. А кроме драйверов для поддержки устройств на ESP разделе может хранится и поддержка протоколов, утилиты и даже собственная EFI-оболочка (shell), из-под которой можно запускать собственные EFI-приложения. Т.е. UEFI по сути - маленькая ОС (или псевдо-ОС). При этом загрузчик операционной системы - становится обычным приложением, которое исполняется в окружении, предоставляемом псевдо-ОС UEFI. |
UEFI реализует свой менеджер загрузки, он поддерживает мульти-загрузку: позволяет выбирать загрузку из нескольких ОС и/или утилит. Загрузчик ОС - это просто efi-приложение, которое хранится на ESP разделе. В ESP может храниться много приложений, и пункты меню загрузки могут ссылаться каждый на свое приложение (или на одно, но с передачей разных параметров). Кроме того, UEFI поддерживает ассоциацию нажатия клавиш с пунктами загрузки (выбор пункта загрузки осуществляется в зависимости от того какая нажата клавиша в момент загрузки). Т.о. UEFI берет на себя большую часть задач, которые раньше могли решать только загрузчики ОС (типа GRUB). | UEFI реализует свой менеджер загрузки, он поддерживает мульти-загрузку: позволяет выбирать загрузку из нескольких ОС и/или утилит. Загрузчик ОС - это просто efi-приложение, которое хранится на ESP разделе. В ESP может храниться много приложений, и пункты меню загрузки могут ссылаться каждый на свое приложение (или на одно, но с передачей разных параметров). Кроме того, UEFI поддерживает ассоциацию нажатия клавиш с пунктами загрузки (выбор пункта загрузки осуществляется в зависимости от того какая нажата клавиша в момент загрузки). Т.о. UEFI берет на себя большую часть задач, которые раньше могли решать только загрузчики ОС (типа GRUB). | ||
Строка 28: | Строка 31: | ||
Архитектура UEFI позволяет также загрузить драйвера устройств (необходимые для работы ОС и для процедуры загрузки). Да и само ядро ОС можно загрузить (по крайней мере ядро Linux, собранное с опцией UEFISTUB) непосредственно из UEFI (т.е. устранить загрузчик из процесса загрузки). Такую возможность мы разберем более детально чуть позже. | Архитектура UEFI позволяет также загрузить драйвера устройств (необходимые для работы ОС и для процедуры загрузки). Да и само ядро ОС можно загрузить (по крайней мере ядро Linux, собранное с опцией UEFISTUB) непосредственно из UEFI (т.е. устранить загрузчик из процесса загрузки). Такую возможность мы разберем более детально чуть позже. | ||
- | Как и в случае с BIOS, UEFI - это стандарт, реализацией которого занимаются разные поставщики решений. Поэтому в реализации UEFI стандарта в прошивках разных поставщиков могут несколько отличаться. Различия в реализации, как правило, касаются интерфейса утилиты настройки, а вот реализация методов работы самого UEFI в процессе загрузки различаться сильно не должна (по крайней мере при строгом следовании стандарту UEFI). Могут встречаться красивые графические утилиты настройки UEFI, иногда даже с поддержкой мыши (например от ASUS) или текстовые, с элементами псевдо-графики, очень сильно напоминающих интерфейс настройки BIOS (например от AMI). Но значение имеет не способ оформления интерфейса, а те настройки, которые доступны для изменения через этот интерфейс. | + | Как и в случае с BIOS, UEFI - это стандарт, практической реализацией которого занимаются разные поставщики решений. Поэтому в реализации UEFI стандарта в прошивках разных поставщиков могут значительно отличаться (как визуально так и функциональным наполнением). Могут встречаться сильно урезанные по функционалу реализации (чаще в компьютерах выпущенных в 2000-х годах). Но базовые принципы работы UEFI в процессе загрузки различаться сильно не должны (он был определен и зафиксирован в самых ранних стандартах UEFI). Интерфейсы утилиты настройки могут исльно различаться, но значение имеет не способ оформления интерфейса, а те настройки, которые доступны для изменения через этот интерфейс. |
==== Совместимость ==== | ==== Совместимость ==== | ||
- | Само собой, современные прошивки умеют эмулировать работу BIOS. Отвечает за совместимость с BIOS модуль CSM (Compatibility Support Module иногда он еще называется Legasy support). Когда CSM включен, то при загрузке он пытается найти загрузчик ОС в первом секторе диска (MBR) или в специальном служебном разделе (при GPT разбивке диска). Если код загрузчика найден, то CSM считает, что установлена ОС требующая поддержки BIOS режима, и прежде чем загрузить и запустить код из MBR, CSM проделывает все те же шаги инициализации оборудования, что предусмотрены для BIOS. | + | Само собой, современные прошивки умеют эмулировать работу BIOS. Отвечает за совместимость с BIOS модуль CSM (Compatibility Support Module иногда он еще называется Legasy support). Когда CSM включен и при загрузке загрузиться в UEFI не удалось, то CSM пытается найти загрузчик ОС в первом секторе диска (MBR) или в специальном служебном разделе (при GPT разбивке диска). Если код загрузчика найден, то CSM считает, что установлена ОС требующая поддержки BIOS режима, и прежде чем загрузить и запустить код из MBR, CSM проделывает все те же шаги инициализации оборудования, что предусмотрены для BIOS. |
- | + | ||
- | Если вы планируете использовать загрузку только в варианте UEFI, то работу этого модуля лучше запретить в системной утилите вашей материнской платы (Firmware setup utility). Кроме того, загрузка в режиме SecureBoot (о ней будет рассказано ниже) как правило, явно требует, что бы работа модуля CSM была запрещена. | + | |
+ | Если вы планируете использовать только загрузку в варианте UEFI, то работу этого модуля лучше запретить в системной утилите вашей материнской платы (Firmware setup utility). Кроме того, загрузка в режиме SecureBoot (о ней будет рассказано ниже) явно требует, что бы работа модуля CSM была запрещена. | ||
+ | <note important>Собственно использовать сразу оба варианта загрузки (для разных ОС) - не стоит. Лучше для всех ОС установленных на данном компьютере использовать один вариант загрузки: через CSM или UEFI.</note> | ||
==== ESP раздел ==== | ==== ESP раздел ==== | ||
Отдельно стоит рассмотреть служебный раздел UEFI. | Отдельно стоит рассмотреть служебный раздел UEFI. | ||
Строка 44: | Строка 47: | ||
При установке UBUNTU (с загрузкой через UEFI) служебный раздел ESP монтируется в /boot/efi. И на ESP разделе создается каталог EFI\ubuntu в котором размещается загрузчик((Виндовый загрузчик размещается в EFI\Microsoft\Boot\Bootmgfw.efi)) GRUB и/или Shim (о них - чуть позже). | При установке UBUNTU (с загрузкой через UEFI) служебный раздел ESP монтируется в /boot/efi. И на ESP разделе создается каталог EFI\ubuntu в котором размещается загрузчик((Виндовый загрузчик размещается в EFI\Microsoft\Boot\Bootmgfw.efi)) GRUB и/или Shim (о них - чуть позже). | ||
<note important>EFS раздел лучше создавать из установщика. Когда вы делаете его сами через gparted/parted/fdisk, то есть шанс сделать что-то не так (например выберете FAT16 вместо FAT32) и тогда UEFI не поймет, что это EFS раздел и не будет с него загружаться. Доверьте установщику выполнить работу, которую он умеет делать хорошо - делайте EFS раздел из установщика.</note> | <note important>EFS раздел лучше создавать из установщика. Когда вы делаете его сами через gparted/parted/fdisk, то есть шанс сделать что-то не так (например выберете FAT16 вместо FAT32) и тогда UEFI не поймет, что это EFS раздел и не будет с него загружаться. Доверьте установщику выполнить работу, которую он умеет делать хорошо - делайте EFS раздел из установщика.</note> | ||
+ | |||
===== MBR и GPT ===== | ===== MBR и GPT ===== | ||
Еще одно "новшество" в индустрии относится к таблице разделов диска. | Еще одно "новшество" в индустрии относится к таблице разделов диска. | ||
Строка 52: | Строка 56: | ||
Однако уже к началу 2010-х на рынке стали появляться диски более 2Тб. Но к этому времени уже набрал популярность стандарт таблицы разделов [[https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_GUID|GPT]] (GUID Partition Table). В GPT установлена новая планка для размера диска: 9,4 ЗБ, т.е 9,4 × 10^21 байт (на сегодня этот размер вновь выглядит астрономически большим... :-) ) | Однако уже к началу 2010-х на рынке стали появляться диски более 2Тб. Но к этому времени уже набрал популярность стандарт таблицы разделов [[https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2_GUID|GPT]] (GUID Partition Table). В GPT установлена новая планка для размера диска: 9,4 ЗБ, т.е 9,4 × 10^21 байт (на сегодня этот размер вновь выглядит астрономически большим... :-) ) | ||
- | К чему я упомянул про таблицы разбиения дисков? А к тому, что несмотря на то, что UEFI планировалось использовать только с GPT, а BIOS "умеет"((BIOS, на самом деле, понятия не имеет, что там и как записано в таблице разделов, он просто загружает MBR в память и запускает содержащийся в нем код)) работать только с таблицей разделов в MBR, но в реальной жизни и BIOS (вернее сказать CSM) научили понимать GPT, и для UEFI предусмотрели использование таблицы разделов из MBR. | + | К чему я упомянул про таблицы разбиения дисков? А к тому, что, несмотря на то, что UEFI планировалось использовать только с GPT, а BIOS обычно работает с MBR (вернее код в MBR работает с таблицей разделов расположенной в конце MBR), но в реальной жизни и BIOS (вернее сказать CSM) научили понимать GPT, и для UEFI предусмотрели использование таблицы разделов из MBR. |
+ | <note>EFS раздел может быть также создан в таблице разделов формата ISO9660 (стандарт используемый для разметки CD/DVD оптических лисков). Это позволяет загружаться в режиме UEFI и с CD/DVD.</note> | ||
Получившаяся в результате "солянка" (из 4-х допустимых вариантов: UEFI + MBR, UEFI + GPT, BIOS/SCM + MBR и BIOS/SCM + GPT) создает некоторую путаницу и недопонимание. Давайте попробуем во всем этом разобраться более детально. | Получившаяся в результате "солянка" (из 4-х допустимых вариантов: UEFI + MBR, UEFI + GPT, BIOS/SCM + MBR и BIOS/SCM + GPT) создает некоторую путаницу и недопонимание. Давайте попробуем во всем этом разобраться более детально. | ||
Строка 86: | Строка 91: | ||
<note important>Ядро Linux загруженное не через UEFI не обеспечивает доступа к переменным UEFI, а это не позволяет изменять настройки загрузки UEFI. Поэтому, поставить новый Linux (что бы он загружался через UEFI) можно только предварительно загрузившись с установочного носителя через UEFI.</note> | <note important>Ядро Linux загруженное не через UEFI не обеспечивает доступа к переменным UEFI, а это не позволяет изменять настройки загрузки UEFI. Поэтому, поставить новый Linux (что бы он загружался через UEFI) можно только предварительно загрузившись с установочного носителя через UEFI.</note> | ||
<note important>Некоторые дистрибутивы не умеют загружаться через UEFI, если у вас таблица разделов в MBR.</note> | <note important>Некоторые дистрибутивы не умеют загружаться через UEFI, если у вас таблица разделов в MBR.</note> | ||
- | Для загрузки через UEFI модуль CSM не нужен и если все установленные на компьютере ОС грузятся через UEFI, то CSM лучше отключить. А вот если вы организуете загрузку в режиме SecureBoot, то CSM модуль отключить просто необходимо: без этого, обычно, просто не включить режим SecureBoot или включение SecureBoot автоматически запрещает работу CSM. | + | Для загрузки через UEFI модуль CSM не нужен, и, если все установленные на компьютере ОС грузятся через UEFI, то CSM лучше отключить. А вот если вы организуете загрузку в режиме SecureBoot, то CSM модуль отключить просто необходимо: без этого, обычно, просто не включить режим SecureBoot или включение SecureBoot автоматически запрещает работу CSM. |
===== Secure Boot ===== | ===== Secure Boot ===== | ||
Особого упоминания требует такая особенность UEFI как Secure Boot. | Особого упоминания требует такая особенность UEFI как Secure Boot. | ||
Строка 271: | Строка 276: | ||
Введение дополнительного звена в виде shim продиктовано тем, что GRUB довольно часто обновляется и каждый раз после обновления его надо подписывать. Само собой, его гораздо проще подписать собственным ключом Canonical нежели каждый раз снова договариваться с Microsoft. | Введение дополнительного звена в виде shim продиктовано тем, что GRUB довольно часто обновляется и каждый раз после обновления его надо подписывать. Само собой, его гораздо проще подписать собственным ключом Canonical нежели каждый раз снова договариваться с Microsoft. | ||
- | Если вы не хотите оставлять сертификаты Microsoft и производителя на своей машине((не станем называть это паранойей... кто там знает, что могло быть подписано парными ключами от тех, что лежат в этих сертификатах...)), то из утилиты настройки вашей материнской платы или с помощью утилит efitools можно стереть сертификаты прописанные производителем, и записать в UEFI (db) ключ от Canonical, тогда уже Grub (так же как и само ядро Linux) сможет загружаться в режиме Secure Boot, и shim - не нужен. | + | Если вы не хотите оставлять сертификаты Microsoft и производителя на своей машине((не станем называть это паранойей... кто там знает, что могло быть подписано парными ключами от тех, что лежат в этих сертификатах...)), то из утилиты настройки вашей материнской платы или с помощью утилит efitools можно стереть сертификаты прописанные производителем, и записать в UEFI (db) ключ от Canonical, тогда уже Grub (так же как и само ядро Linux) сможет загружаться в режиме Secure Boot, и shim (со своим MOK) - не нужен. |
Если вам не хочется даже сертификат от Canonical оставлять в своем компьютере((ну... и это тоже - не будем считать паранойей...)), то вы можете создать свои собственные ключи и сертификаты (как описано выше), подписать grub или само ядро Linux (утилитой sbsign из пакета sbsigntool) и записать ключи в базу данных ключей EFI (утилитами efitools). | Если вам не хочется даже сертификат от Canonical оставлять в своем компьютере((ну... и это тоже - не будем считать паранойей...)), то вы можете создать свои собственные ключи и сертификаты (как описано выше), подписать grub или само ядро Linux (утилитой sbsign из пакета sbsigntool) и записать ключи в базу данных ключей EFI (утилитами efitools). | ||
Строка 279: | Строка 284: | ||
Проверяйте все ваши настройки, проверяйте, что в UEFI записаны именно те ключи, что вы хотели и не забудьте проверить правильность подписей.\\ \\ | Проверяйте все ваши настройки, проверяйте, что в UEFI записаны именно те ключи, что вы хотели и не забудьте проверить правильность подписей.\\ \\ | ||
Хорошая идея: проделать все сначала на [[https://wiki.ubuntu.com/SecurityTeam/SecureBoot#VM_installation_and_preparation|виртуальной машине]].</note> | Хорошая идея: проделать все сначала на [[https://wiki.ubuntu.com/SecurityTeam/SecureBoot#VM_installation_and_preparation|виртуальной машине]].</note> | ||
- | <note warning>ВНИМАНИЕ, если вы организовали загрузку GRUB (или другого загрузчика что вы используте) на основе только своего собственного ключа, то внимательно следите за обновлениями: при обновлении GRUB вам необходимо подписать новую версию GRUB своим ключом, иначе он не загрузится в Secure Boot режиме.</note> | + | <note warning>ВНИМАНИЕ, если вы организовали загрузку GRUB (или другого загрузчика что вы используете) на основе только своего собственного ключа, то внимательно следите за обновлениями: при обновлении GRUB вам необходимо подписать новую версию GRUB своим ключом, иначе он не загрузится в Secure Boot режиме.</note> |
+ | |||
+ | <note>Собственно ISO образ UBUNTU - гибридный, на нем в мастер запись стандарта ISO9660 (CD/DVD формат дисков) внедрена MBR запись. | ||
+ | Используется одновременно два загрузчика: | ||
+ | - isolinux (вариант загрузчика [[https://ru.wikipedia.org/wiki/Syslinux|syslinux]]) он используется для загрузки в BIOS режиме и размещается в MBR и специальной загрузочной записи ISO9660 стандарта, подробнее - [[http://wiki.osdev.org/El-Torito|тут]]). | ||
+ | - grub (вариант grub-efi) он используется для загрузки в UEFI режиме. | ||
+ | |||
+ | EFS раздел (необходимый для загрузки в UEFI режиме) прописан и в таблицу записей в MBR, и в каталог записей iso9660 формата. По UEFI стандарту загрузчик по умолчанию должен находится в EFS разделе по пути: EFI\BOOT\grubx64.efi | ||
+ | |||
+ | Такой "винегрет" позволяет грузиться с такого образа в следующих режимах: | ||
+ | - в режиме BIOS/SCM | ||
+ | - как с CD/DVD (код isolinux берется из загрузочной записи ISO9660 стандарта, подробнее - тут) | ||
+ | - как с HDD/USB-Flash (код isolinux берется из MBR) | ||
+ | - в режиме UEFI | ||
+ | - как с CD/DVD (EFS раздел находится в каталоге записей ISO9660, и оттуда запускается EFI\BOOT\BOOTx64.EFI) | ||
+ | - как с HDD/USB-Flash (EFS раздел находится в таблице разделов MBR, и оттуда запускается EFI\BOOT\BOOTx64.EFI) | ||
+ | |||
+ | Кстати в EFI\BOOT\BOOTx64.EFI лежит не сам GRUB, а SHIM. Сам grubx64.efi (начальная стадия grub-efi) лежит рядом (EFI\BOOT\grubx64.efi) и его запускает SHIM. (SHIM имеет валидную подпись ключом от MicroSoft). | ||
+ | |||
+ | Такой образ легко записать на флешку простой командой: | ||
+ | |||
+ | <note warning>ВНИМАНИЕ! запись таким способом приводит к потере данных ранее хранившихся на флешке</note> | ||
+ | |||
+ | sudo cp <путь и имя образа UBUNTU>.iso /dev/sd<буква девайса под которой в компьютере видна флешка> | ||
+ | |||
+ | Второй параметр - именно девайс, а не раздел. | ||
+ | |||
+ | Образ Ubuntu копируется начиная с первого сектора устройства, что позволяет с него грузиться как c USB-СD/DVD и как и с USB-HDD/USB-Flash. Причем в обоих вариантах доступна загрузка как в UEFI, так и в BIOS/CSM режимах. | ||
+ | </note> | ||
===== Другие интересные возможности UEFI ===== | ===== Другие интересные возможности UEFI ===== |