Как установить refind на флешку
Имеется sata ssd, который хочу использовать как внешний накопитель. Планирую купить nvme накопитель и перенести Manjaro, оставив на старом накопителе только Windows, это тема отдельного вопроса, сейчас не буду его поднимать. Чтобы это реализовать, купил кейс-адаптер для ssd что-то типа такого, но перед тем как заказывать nvme, хочу проверить его работоспособность.
Установил имеющийся ssd в этот адаптер, включаю систему — грузится Windows. При загрузке открываю boot меню, выбираю Manjaro (ссылается на grub) — грузится Windows. Открываю uefi и проверяю порядок загрузки, Manjaro стоит первым, но опять грузится Windows (выдавая попутно синий экран или пытаясь что-то восстановить, ждать не стал, просто выключал питание).
Загрузиться в систему требуется для того, чтобы перенести систему на новый накопитель.
Буду рад ссылкам на инструкции, объяснениям, а также советам по переносу системы!
/dev/sdb1 /mnt/efi 512mb FAT32
/dev/sdb2 /mnt 70g
/dev/sdb3 /mnt/home 150g
/dev/sdb4 swap 16g
После установки через arch-chroot командой refind-install ставлю refind, но после перезагрузки refind’a нет, secure boot выключен Куда копать, в чем проблема?
Прогрузить ядро не удалось. После поставил refind и пошёл процесс, но не может найти rootfs.
Выводы: cтандартный конфиг ядра, в котором ничего не менял.
«Boot with minimal options» «ro root=/dev/nvme0n1p2»
Не могу обновить систему и удалить пакет refind. Давно уже им не пользуюсь и даже забыл про него, но тут возникла проблема.
Соответственно ошибка обновления системы, хотя в списке обновлений не refind, не refind-efi нет.
В yay в списке пакетов есть только установленный refind, в репах и ауре пакетов refind-efi и refind-theme-maia не обнаружено.
Что делать, как вычистить это дерьмо?
Установлена Windows 10. Поставил в efi раздел (созданный виндой) refind. Думаю, отлично, перезагружаюсь и запускается винда, перезагружаюсь еще раз, открываю меню загрузчиков и вижу только флешку с арчем и Windows Loader. Хорошо, использовал efibootmgr, опять же, есть только загрузчик винды и флешка, refind так и не подцепился. Пошарился в биос на предмет настроек, ничего, что могло запретить другие бутлоадеры не нашел (секьюрити бут выключен).
При установки arch, создал /efi и туда смонтировал esp раздел, установил туда refind, ядро лежит в /boot, refind.conf создался значит он нашел ядро. Если все это перенести ну например в /efi/EFI/arch то все работает, а в /boot не видит, хотя он должен его автоматически проверять. Согласно ArchWiki так можно сделать. В чем может быть проблема? esp смонтирован fat32, остальная система в ext4
Ставлю rEFInd на Arch с включенным Secure Boot (и предустановленным Windows)
sda1 (esp раздел) смонтирован в /boot/efi
Подтверждаю установку (хоть и не понимаю, почему компьютер не выглядит, будто Secure Boot включён):
После чего в /boot/efi/EFI/Boot появляется refind.conf
После перезагрузки, загрузился Windows. Без каких-либо альтернатив. Подскажите, пожалуйста, что я делаю не так.
КДПВ. Бут-менеджер rEFInd с темой оформления Regular.
На сегодняшний день практически все уже слышали про технологию UEFI. Говорить о том, что это такое и зачем оно нужно, я не собираюсь. Сегодня я бы хотел описать простейший сценарий установки Dual Boot системы с полной поддержкой UEFI, а также рассмотреть отдельно установку и настройку бут-менеджера rEFInd. Возможно вы уже видели подобные мануалы и гайды, но я постараюсь донести весьма доходчиво суть того, что мы будем делать и зачем. В других мануалах вы лишь смотрите за «магией» картежника и пытаетесь её повторить, делая, зачастую, элементарные ошибки. Кому эта тема интересна — прошу под кат.
В целом UEFI призвана наоборот упросить процесс загрузки, а не усложнить его. К примеру, посредством этой технологии компьютер можно загружать ОС и вовсе без прослойки в лице GRUB / LILO / etc, загрузчиком может выступать сама UEFI. Однако этот метод имеет свои недостатки, например, вам придется повозиться после обновления ядра, можно, разумеется, написать скрипт, но в целом этим и занимается grub2-efi
Итак, давайте сформируем примерный список наших действий, некоторым хватит прочесть его и уже взяться за дело. Собственно тут будет всего четыре пункта. Пятый и шестой пункт опционален.
- Запись образа Windows 10 (8/8.1) на диск/флешку.
- Установка Windows 10 на часть диска.
- Запись образа Linux-дистрибутива с поддержкой EFI (большинство) на диск/флешку.
- Установка Linux-дистрибутива на оставшуюся часть диска.
- Установка и конфигурация rEFInd.
- Удаление GRUB и полный переход на rEFInd.
На первый взгляд всё очень просто, всего 4 базовых пункта, но тут есть огромное количество нюансов.
Ошибки делают на всех этапах: входят в режим Legacy-bios, указывают не тот загрузочный раздел, просто не понимают, что делают и т.д. В конечном итоге всё это приводит к массе боли и страданиям на форумах, в чатах, и т.д. На деле же всё нереально просто, нужно просто понимать, что ты делаешь на каждом этапе и проверять себя.
Сначала немного теории
UEFI видит только один специальный ESP-раздел, обычно он имеет размер 100-200 мегабайт и форматирован в FAT32 (бывает в FAT16), в нем содержаться папки с названиями а-ля Boot, Microsoft, Fedora, Ubuntu и т.д. Если вы перепробовали достаточное количество ОС и никогда не форматировали этот раздел, то там могло набраться приличное количество папок. К примеру, у меня было 2 живых оси и лежало около 6 папок.
P.S. CodeRush подсказал, что поддерживаются все FS, если на них есть соответствующие драйверы:
Это неверно. UEFI видит все разделы, для ФС которых в конкретной реализации прошивки имеются драйверы. ESP же отличается от остальных разделов только тем, что а) для FAT драйвер иметь обязательно и б) на разделе ESP осуществляется поиск загрузчиков и автоматическое создание соответсвующих переменных BootXXXX, если загрузчики нашлись.
В самих папках лежат исполняемые файлы .efi которые и выступают в роли загрузчиков ОС. В папке debian вы наверняка обнаружите файл grubx64.efi , а в папке Microsoft – bootmgr.efi .
Большинство Linux-дистрибутивов монтируют ESP-раздел к /boot/efi , то есть загрузчик Debian будет лежать примерно на таком пути: /boot/efi/EFI/debian/grubx64.efi
C директорией разобрались, а что дальше?
А дальше нужно понимать, что существует ещё порядок загрузки, которым можно руководить с помощью утилиты efibootmgr , если у вас её нет, то можете скачать через свой пакетный менеджер, во всех стандартных репозиториях она присутствует. Для начала можете просто ввести эту команду и увидеть список порядка загрузки, а также все UEFI-записи. Если хотите разобраться с утилитой, то курите ман и читайте интернеты, в целом она весьма простая. Злой Windows как раз-таки тут и затирает наш GRUB и ставит Windows Boot Manager первым приоритетом, поэтому его приходится восстанавливать. Скажу лишь как редактировать записи:
efibootmgr -b <номер записи> -<модификатор редактирования> <параметр модификатора>
К примеру, efibootmgr -b 0 -B означает удалить запись 0.
P.S. CodeRush и другие комментаторы заметили, что efibootmgr является весьма опасной утилитой и отмечают, что гораздо безопасней пользовать EFI Shell.
По факту GRUB можно вообще не трогать, потому что он наверняка так и лежит в папке EFI/<название дистрибутива> , нужно лишь восстановить запись и выставить первый приоритет, но зачем что-то копать если можно chroot’нуться и ввести grub-install ? В большинстве случаев он сделает всё сам.
Кстати, стоит не забывать, что базовым функционалом efibootmgr обладает и сам, собственно, UEFI, он умеет читать эти записи и выстраивать приоритеты. Но сам просматривать ESP-разделы и добавлять новые записи он не умеет, эти обязанности возложены на EFI Shell и операционные системы.
Еще как умеет, и это умение требуется спецификацией начиная с UEFI 2.2 (SecureBoot появился в UEFI 2.3.1C).
И на последок: Все ваши действия в efibootmgr записываются в NVRAM! В большинстве случае UEFI умеет восстанавливать битый NVRAM каждый раз проверяя его и перезаписывая, в случая неполадок. Однако некоторые недобросовестные производители выпускают сырые прошивки и можно получить самый настоящий кирпич. К примеру ноутбуки с UEFI на базе Phoenix SCT окирпичиваются! Так что перед тем как продолжить читать, удостоверьтесь, что ваша модель материнской карты или ноутбука, устойчива к таким экспериментам.
P.S. Уже после написания большей части статьи я вспомнил про Secure Boot. Обычно UEFI тянет его за собой, но в большинстве случаев его можно весьма просто отключить в настройках UEFI. Многие Linux-дистрибутивы поддерживают его, но я всё же рекомендую его отключить, так как он может потянуть за собой массу проблем.
Базовый экскурс в теорию закончен.
Теперь можно перейти к практике
Дисклеймер: Сразу оговорю, что я предпочитаю стерильные условия и сам делаю полную переустановку с помощью проверенных лично мной утилит. Если вы будете использовать другие утилиты, то, пожалуйста, не пишите почему у вас что-то не получается на том или ином этапе. Мой вариант проверен сотнями переустановок друзьям и коллегам.
Первым делом нам нужно записать Windows
Потому что если поставить Windows второй, то она затрет загрузчик. Восстановить? Без проблем. Но зачем возня, если можно сразу сделать всё по уму? Впрочем я всё равно обговорю нюансы восстановления чуть позже в конце статьи.
В отличии от Linux, Windows записать гораздо проще, на мой взгляд. Первый способ до возможно многим знаком, нужно просто зайти в cmd.exe от имени администратора и ввести эти команды. Не сложно заметить, то тут нет абсолютно никакой магии. Мы просто форматируем флешку в FAT32:
diskpart
list disk
select disk <номер флешки>
clean
create partition primary
select partition 1
active
format fs fat32 quick
assign
exit
После этого нужно просто открыть ISO-файл архиватором и перекинуть содержимое на чистую флешку. Всё, UEFI-флешка готова. На Linux можно сделать всё аналогичным образом, просто форматируем в FAT32 и копируем содержимое.
Полученную флешка должна отлично загружаться любым ПК с поддержкой UEFI.
Кстати, обратимся к теории: наш образ с Windows 10 содержит папочку efi, в ней как раз лежит всё добро для начала загрузки, которое должен увидеть наш UEFI. Поэтому простого форматирования и копирования в большинстве случаев хватает для большинства ПК.
Однако я предпочитаю второй способ с использованием утилиты Rufus. Он меня никогда не подводил. Однако это Windows-only способ. На Linux-системах использование ddresque для создания загрузочной флешки Windows НЕ РАБОТАЕТ. Так что пробуйте другие утилиты, если первый способ с простым форматирование не помог.
Наверняка один из способов должен был прокатить, лично я ни разу с проблемами на этом этапе не встречался, главное чтобы компьютер поддерживал UEFI.
Поэтому перейдем к этапу установки
После загрузки в UEFI-режиме делаем всё по стандартной схеме, но на этапе выбора типа установки выбираем «экспертную», то есть мы разметим раздел сами. Размечать рекомендую аккуратно, особенно если дисков много. Наконец, выбрав диск, удалите все существующие разделы. Создайте один раздел с нужным вам размером, к примеру, 150 гигабайт. (Если вы предпочитаете создавать два и более разделов для ОС и файлов — без проблем, создавайте). Выберете этот раздел кликом мышки и нажмите «Далее». И если вы всё сделали верно, то Windows попросит вас создать дополнительные. Обязательно отвечайте «Да». Система создаст три раздела. Два своих для системных нужд и один тот самый нужный нам EFI-раздел. У меня он по нумерации всегда второй, всего получится 4 раздела, включая пользовательский NTFS. Если установщик не предложил создать разделы или создал всего один, то значит вы загрузились в Legacy-режиме и нужно перезаписывать флешку, что-то пошло не так. К сожалению редактор разделов Windows-установщика крайне слаб по возможностям, поэтому пробовать размечать разделы под будущий Linux тут смысла нет, оставляем это место попросту свободным. Дальше устанавливаем всё в штатном режиме.
Кстати, один из признаков правильной установки Windows в UEFI-режиме, появление логотипа производителя материнской карты / ноутбука / планшета при загрузке. Во многих UEFI (к примеру от ASUS и ASRock) есть отдельная настройка для этого. Так что если логотипа нет, но всё остальное прошло как по маслу, то ничего страшного в этом нет.
Тонко настраивать Windows на данный момент не рекомендую, так как если что-то пойдет не так, то возможно придется переустановить.
Записываем Linux?
Ага. После входа в Windows рекомендую сразу скачать образ выбранного вами дистрибутива и записать его аналогичным образом через Rufus. Правда в случае с Linux-дистрибутивами Rufus может спросить массу вопросов, к примеру он может попросить подгрузить загрузчик syslinux с интернета или выбрать режим записи образа: ISO или DD. На все вопросы отвечаем «Да.», то есть да, скачиваем последнюю версию syslinux и записываем в режиме ISO. Проверено на Ubuntu (и её вариациях Server, Mate, GNOME), Fedora, RHEL7, Debian и других.
До Dual Boot буквально один шаг
В отличии от Windows большинство дистрибутивов имеют отличную индикацию UEFI-режима. К примеру Debian в своем установщике черным по белому пишет, что система запущенна в UEFI-mode. Другие дистрибутивы проявляют это странным grub-загрузчиком, который выглядит «как-то не так».
Думаю если вы собрались ставить Linux, то вы наверняка сами знаете как ставить ваш любимый дистрибутив, поэтому я не буду заострять внимание на подробностях установки отдельно взятого дистрибутива. Потому что этот этап до боли прост. Если вы уже действительно прогрузились в UEFI-режиме и установили Windows как надо, то Dual Boot уже практически в кармане.
Итак всё что вам потребуется сделать при установке Linux:
Выбрать раздел /dev/sda2 (в вашем случае это может быть другой раздел) и указать точку монтирования — /boot/efi . Всё. Нет, правда, всё. Разумеется не забудьте разметить ext4 / Btrfs / ReiserFS / XFS / JFS раздел, примонтировать его в корень /. Кому нужен swap (если нужен) создайте и его. Дальше установщик вашего дистрибутива сделает всё сам, установит в директорию EFI/<название дистрибутива> свой GRUB и найдет запись Windows ( EFI/microsoft ).
Данная логика была проверена во всех вышеозначенных дистрибутивах. То есть повторюсь ещё раз: Главное показать вашему дистрибутиву где у вас этот заветный ESP-раздел и куда надо ему кидать загрузчик. Он его не форматирует, а просто добавляет GRUB. А вот уже сам GRUB вершит магию, изменяет приоритеты загрузки и т.д. Замечу, что некоторые дистрибутивы сами монтируют этот раздел куда надо, так как видят флаги ESP и BOOT. К примеру в установщике Debian нужно просто создать пользовательский раздел и всё.
Наводим красоту, ставим rEFInd
К сожалению счастью я болею сильной формой перфекционизма. И простой GRUB2 меня не устраивал, больно он страшный и не красивый. Беглый гуглинг рассказал мне о BURG, «красивом» форке GRUB, но он был заброшен и на данный момент скорее мертв, чем жив. К счастью для UEFI-машин есть отличная альтернатива — rEFInd. rEFInd является форком, заброшенного ныне rEFIt, а также его логическим продолжением. Первый создавался в первую очередь для Mac'ов и работы рядом с Boot Camp, нынешний форк такой узкой специализации не имеет и подходит практически для любых конфигураций.
Помимо того, что можно выбирать между уже установленными системами на ПК, приятным плюсом можно выделить автоматическое обнаружение загрузочных флешек и дисков. На КПДВ это можно увидеть. У меня имеется загрузочная флешка с Debian (не установщиком, а полноценной ОС) и можно увидеть удобную индикацию того, что это именно флешка, а не что-то другое. Если у вас имеется несколько ядер, то их список можно увидеть по нажатию клавиши F2. Помимо этого в файле /boot/refind_linux.conf можно задать несколько вариантов с разными параметрами ядра (например первый — стандартный для загрузки GUI, второй — безопасный режим без видеодрайвера и т.д, можно сделать дюжину вариантов, по умолчанию всего три). Также в папку EFI/tools можно накидать различных .efi-бинарников, к примеру UEFI Shell или memtest86+. rEFInd их автоматически подхватит и покажет в нижнем ряду как утилиты.
Хотите также?
Процесс установки из под Linux необычайно прост. Все способы описаны на официальном сайте, устанавливать можно практически из любой ОС. Для начала посетите эту страничку и скачайте .deb- или .rpm-пакет.
Если у вас редкий дистрибутив вроде Slackware или Gentoo, то лично я вам помочь не смогу, но на сайте есть обычный .zip-архив и другие варианты установки, так что если уж вы работаете в подобных дистрибутивах, то наверняка поставить своими силами вы сможете без проблем.
Сделайте бэкап EFI-директории:
cp -r /boot/efi/EFI /boot/EFI.bkp
После загрузки пакета, выполните:
cd Downloads или cd Загрузки
И установите пакет:
sudo dpkg -i <имя пакета>.deb или sudo dnf install <имя пакета>.rpm
В моем случае dpkg не мог иногда подтянуть зависимости, если у вас возникнут такие же трудности, то установите gdebi ( sudo apt-get install gdebi ) и выполните sudo gdebi <имя пакета>.deb .
Если у вас RHEL или CentOS, то используйте yum вместо dnf .
В логах установки пакета можно отследить лог установки rEFInd, в котором возможно будут ошибки их надо сразу отследить. Однако по моему опыту ошибок не возникает, если всё сделать правильно. Проверить результат работы установщика rEFInd можно, воспользовавшись утилитой efibootmgr , там первым приоритетом должна должен быть именно rEFInd Boot Manager.
Установить rEFInd повторно, если пакет уже установлен, можно с помощью команды:
refind-install
Установку rEFInd первым приоритетом можно произвести в ручную, с помощью команды:
refind-mkdefault
Всё очень страшно и откуда у меня столько ОС?
Да, всё страшно, пока. На самом деле ОС у вас всего две. Просто rEFInd собрал все .efi-бинарники и ещё отобразил ОС с возможностью загрузки напрямую. Для исправления этого недоразумения мы удалим лишнее, напишем свой конфиг и поставим красивую тему на rEFInd.
Первым делом зайдите в Linux, выбрав один из рабочих пунктов загрузки. В меню должен быть пункт для загрузки БЕЗ использования grubx64.efi! В разделе /boot проще работать из под администратора (потому у команду cd не хватает привелегий, а sudo она не работает), так что su и вводим пароль root'а.
Этот пункт не зря опциональный, потому что если у вас недостаточно опыта, то можно очень просто что-то сломать и не заметить. Рекомендую подготовить флешку с рабочим LiveCD, чтобы проводить восстановление, в случае неожиданностей.
Наша первая задача — удалить лишние директивы загрузки, их запросто может быть штук 6, а системы всего две.
Заходим в директорию:
cd /boot/efi/EFI && ls
Вероятно тут будет пять папок:
BOOT, microsoft, <ваш дистрибутив>, refind и tools.
Если будет что-то лишнее — смело удаляйте.
Способ 1 (через очищение, опаснее):
Убедившись что вы загрузились через rEFInd (!) и НЕ использовали для этого GRUB можете смело удалить папку вашего дистрибутива. Перезагрузитесь и проверьте, можете ли вы загрузиться в ваш Linux. Если можете, то вероятно в меню загрузки осталось 4 директивы: Windows, Linux и два странных пункта, которые приводят (скорее всего) к загрузке Linux. Можно было догадаться, что это .efi-бинарники из папки EFI/BOOT . Папку можно удалить полностью. НО! Убедитесь, что у вас есть бэкап. Перазагружаемся. Всё отлично?
Удаляем GRUB:
sudo apt-get remove grub2 grub2-efi grub grub-efi
Или:
sudo dnf remove grub2
Теперь можно ставить тему.
Некоторые UEFI другие директории вовсе не видят. Поэтому небольшой work around для таких систем существует. Удаляем папку BOOT, переименовываем папку refind в папку BOOT, а также сам файл refind_x64.efi в bootx64.efi. Перезагружаемся.
Способ 2 (через конфиг rEFInd, безопаснее):
Этот способ гораздо безопаснее, потому что удалять и что либо трогать мы не будем, мы добьемся резальтата правильной настройкой конфига. Сам конфиг лежит тут: /boot/efi/EFI/refind/refind.conf
Чтобы настроить свой набор директив загрузки нужно использовать два параметра scanfor и menuentry , после настройки должен получится примерно такой конфиг:
Разумеется это только часть конфига, другие параметры можно взять из примера
Мой конфиг на базе первого способа с комментариями
Отдельно про Plymouth можно почитать здесь.
Включение красивой темы
Там же можно посмотреть подробные процессы установки, параметры для тонкой настройки конфига и многое другое.
Пожалуй на этом всё. Мы получили красивый бут-менеджер для выбора нужной ОС с полной поддержкой UEFI. Пункт с установкой rEFInd наиболее сложный, а поэтому опциональный, большинству хватит grub2-efi .
rEFInd - это новый загрузчик операционных систем с современным красивым интерфейсом для UEFI. Он может работать только с UEFI, но позволяет загружать как Grub, Windows, так и ядро Linux напрямую. Это значит, что вы можете полностью отказаться от Grub и ускорить загрузку вашей системы.
В сегодняшней статье мы рассмотрим как выполняется установка rEFInd в Linux на примере дистрибутива Ubuntu. Несмотря на то, что инструкция ориентирована на этот дистрибутив, скорее всего она будет работать и в других основанных на Debian системах. Обратите внимание, что загрузчик можно установить только в системе с поддержкой UEFI.
Как установить rEFInd
1. Установка загрузчика
Этого загрузчика нет в официальных репозиториях, поэтому для его установки придется использовать PPA. Добавьте PPA в систему:
sudo apt-add-repository ppa:rodsmith/refind
sudo apt update
Затем установите загрузчик:
sudo apt install refind
Установить rEFInd намного проще по сравнению с Grub, потому что в Grub сначала надо установить сам пакет загрузчика, а затем установить его в загрузочную запись, раздел grub_bios или на раздел ESP. Загрузчик rEFInd же поддерживает только установку на ESP раздел, поэтому он во время установки автоматически копирует туда свои файлы. То есть файлы загрузчика будут скопированы в каталог /boot/efi/EFI. Вам только надо подтвердить это действие:
Если вы на этом этапе нажали нет, то потом вам надо будет дополнительно выполнить такую команду для установки:
2. Приоритет загрузки
После того, как загрузчик установлен надо установить его на первое место в списке загрузчиков UEFI. Для этого можно воспользоваться BIOS или утилитой efibootmgr. Для просмотра текущего списка загрузчиков и их приоритета выполните:
В данном случае rEFInd получил номер 7 (007) и уже находится на первом месте. Если это не так, очередность загрузки можно поменять с помощью опции -o. Например:
efibootmgr -o 7,6,0,1,2,3,4,5
Теперь по умолчанию будет загружаться rEFInd. Выглядит он вот так:
Как установить загрузчик вы теперь знаете, давайте теперь разберемся как выполняется настройка rEFInd.
3. Скрытие лишних пунктов
Здесь есть одна проблема, одна и та же операционная система выводится несколько раз в меню, потому что выводится пункт для загрузчика Grub и непосредственно для ядра. Вы можете полностью удалить Grub чтобы его не было, но перед этим убедитесь что всё работает. Я рекомендую оставить Grub на всякий случай, но пункты с ним из меню скрыть. Для этого откройте файл /boot/efi/EFI/refind/refind.conf и найдите там директиву dont_scan_dirs. В конец её значения надо добавить папку с Grub на разделе ESP.
Посмотреть все папки можно командой:
Например, в данном случае это папка EFI/ubuntu:
sudo vi /boot/efi/EFI/refind/refind.conf
Сохраните изменения и перезагрузите компьютер. Дополнительного пункта с Grub больше не будет. Для того чтобы убрать дополнительные опции загрузки вроде Fallback Loader и другие следует добавить в эту переменную также папку EFI/BOOT.
4. Удаление Grub
Если вы все же решились полностью удалить Grub из системы, то сначала выполните команду:
sudo apt purge grub
Удалите папку с файлами Grub на разделе ESP:
sudo rm -Rf /boot/efi/EFI/ubuntu
Затем загрузите пакет-заглушку с официального сайта rEFInd:
И установите его:
sudo dpkg -i grub-pc_3.0-1_all.deb
Иначе после обновления системы Ubuntu может устанавливать Grub обратно.
5. Тема оформления
Если вам не нравится тема оформления загрузчика по умолчанию, то другие темы можно найти на DeviantArt.
Загрузите например rEFInd-chalkboard. Затем распакуйте архив темы и папку из этого архива скопируйте в папку /boot/efi/EFI/refind:
sudo mkdir /boot/efi/EFI/refind/themes
sudo cp -R
Затем надо активировать тему. Для этого откройте файл /boot/efi/EFI/refind/refind.conf и добавьте в конец строчку импорта файла настроек темы. Например:
sudo vi /boot/efi/EFI/refind/refind.conf
Обратите внимание, что тему обязательно скидывать именно в папку themes иначе она работать не будет. После этого можно перезагрузить компьютер:
Выводы
Теперь вы знаете как выполняется установка rEFInd Boot Manager. Как видите, это не намного сложнее чем установить Grub. А каким загрузчиком пользуетесь вы? Напишите в комментариях!
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
BIOS - Basic Input Output System, это базовая система Ввода-Вывода, то есть набор программ зашитых в микросхему, использовалась ОС MSDOS, более современные ОС практически не используют BIOS.
За исключением процедуры POST - Инициализация и проверка работоспособности аппаратуры.
Если POST выполнен без ошибок, код BIOS начнёт поиск кода загрузчика ОС. Поиск выполняется на доступных и разрешённых в настройках носителях, код BIOS загрузит код загрузчика ОС в память и передаст ему управление.
- 16-битный код, реальный режим(real-mode)
- Отсутствие прямого доступа к 64-битному железу
- Отсутствие единого стандарта
- Сложность разработки.
2. UEFI на смену BIOS
Дословно Extensible Firmware Interface (EFI) - "расширяемый интерфейс прошивки"
EFI - интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, основное предназначение - корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы.
EFI предназначен для замены BIOS, первый стандарт был разработан Intel, затем переработан и название заменено на UEFI (Universal).
Интерфейс, определённый спецификацией EFI, включает таблицы данных, содержащие информацию о платформе, загрузочные и runtime-сервисы, которые доступны для загрузчика операционной системы (ОС) и самой ОС.
Некоторые существующие расширения BIOS, типа ACPI и SMBIOS, также присутствуют в EFI, поскольку не требуют 16-разрядного runtime-интерфейса.
В дополнение к разнообразным службам и сервисам, EFI имеет оболочку - shell environment, для запуска программ, драйверов, создания исполняемых скриптов, для запуска утилит диагностики и обновления прошивок, работы с CD/DVD. Скрипты имеют расширение .nsh .
- Отсутствие ограничений объема разделов и их количества
- Увеличение скорости загрузки
- Безопасность: возможность использования Secure Boot
- Обратная совместимость с BIOS - CSM (Compatibility Support Mode)
- Поддердка сетевой загрузки PXE
- Менеджер загрузки
3. Загрузка в UEFI
Как происходит загрузка в UEFI:
Примечание: в дальнейшем рассматривается только схема разметки GPT GUID Partition Table.
однако, такие устройства как floppy, usb могут иметь FAT12 на ESP.
На партиции ESP, EFI по умолчанию ищет файл загручик:
\efi\boot\boot[название архитектуры].efi
например: \efi\boot\bootx64.efi и загружает его.
Далее уже работает сам загрузчик, by default это \efi\boot\bootx64.efi , он ищет корневую FS, на ней bootmanager или ядро, загружает их и передает им дальнейшее управление.
На самом деле, EFI BIOS, находит все ESP партиции, на всех носителях компьютера и на них файлы с расширением efi и если мы захотим загрузиться с какого-то иного носителя, второго диска или флешки, используя клавишу POP-UP меню загрузки BIOS, ну например F8 (у разных производителей могут разные функциональные клавиши), увидим все доступные носители с ESP и загрузчиками.
В отличие от BIOS, для UEFI используются другие ПЗУ, они дешевле, экономичней и имеют NVRAM в которой хранятся указатели на все найденные загрузчки .efi .
Структура ESP партиции выглядит следующим образом:
Примечание: Имена директорий Ubuntu, Debian, FreeBSD - всего лишь пример, можете использовать какие Вам угодно.
4. Windows on UEFI/GPT
Ничего необычно в установке Windows 7/8/10 на GPT из UEFI нет, ОС Windows ставится на диск с разметкой GPT только из UEFI.
- настройка в UEFI BIOS -> загрузка UEFY Only
- отключить Secure Boot
- как уже было отмечено ранее, использовать официальный носитель с ОС
- или выбрать правильный дистрибутив, если используете самодельные
Ниже показана структура ESP из Windows 7
- ESP еще не создан.
- На диске достаточно места для создания раздела емкостью 100 МБ.
- MSR еще не создан.
- На диске достаточно места для создания раздела емкостью 128 МБ.
Примечание: В Windows 8.x/10 ESP 350MB, а в Windows 10 MSR=0-16MB
Важно: чтобы из командной строки Windows (cmd.exe), можно было смонтировать Системный Раздел ESP, нужно отключить UAC, затем, перезагрузиться, после чего команда: отработает без проблем.
Отключение UAC и Windows Defender с командной строки.
выходим в командную строку Windows:
Пуск -> Выполнить -> cmd.exe -> Запустить от Администратора
Отключаем Windows Defender:
Отключаем UAC:
Теперь, если у нас административный account, можно не заботиться о разрешениях "от Администратора".
Снова выходим в командную строку и выполняем следующие действия для монтирования Системного раздела ESP - EFI System Partition:
Ниже показано содержимое ESP записанное при установке Windows 7:
В случае возникновения описанной выше проблемы, вместо одной команды придется выполнить несколько.
Выходим в командную строку и выполняем следующие действия для монтирования Системного раздела ESP - EFI System Partition:
- выбираем диск командой sel
- смотрим содержимое партиций
смотрим содержимое диска 1 (он пуст)
- выбираем диск 0
- партицию 1
- назначаем букву для монтирования
Все, можем работать с Системным разделом EFI, он смонтирован как диск S:
Загрузчик Windows и BootManager.
Как было сказано ранее, в UEFI NVRAM содержатся настройки, переменные EFI, прописанные и обнаруженные загрузчики с расширением .efi, порядок загрузки и тд и тп.
Для настройки BootLoader и BootManager, Microsoft использует целую ветку в реестре, а работа с ней и управление, осуществляется командой bcdedit.
Посмотреть текущие настройки можно следующим образом:
вариант с лицензионной системы:
строка:
path \EFI\Microsoft\Boot\bootmgfw.efi
говорит об использовании оригинального EFI загрузчика от Microsoft.
- \EFI\Boot\bootx64.efi
и - \EFI\Microsoft\Boot\bootmgfw.efi
В случае хакерской активации через Slic, возможен такой загрузчик:
path \EFI\Microsoft\Boot\windslic.efi
Если установлен загрузчик rEFInd, path должен быть: path \EFI\REFIND\REFIND_X64.EFI
Изменить загрузчик из Windows, можно командой bcdedit: например:
5. Linux on UEFI/GPT
- загрузка UEFY Only
- отключить Secure Boot
- если разметка отсутствует создает ESP и прописывает туда загрузчик efi
- если разметка уже есть и ESP партиция в наличии, добавляет туда свой загрузчик и делает его default'ным
Примечание: В EFI/BIOS предлагается выбрать загрузку UEFI Only потому что с ней не будет проблем.
Это связано с реализацией UEFI/BIOS различными производителями.
- - сначала найти ESP и попытаться загрузиться
- - если ESP на устройствах отсутствуют, перейти к загрузке Legacy(BIOS)
Загрузка на некоторых материнских картах в случае выбора двух режимов; UEFI и затем Legacy может не найти реально существующий EFI-загрузчик на HDD.
Поэтому, лучше установить UEFY Only и установить ОС, а потом можно экспериментировать с настройками BIOS.
Кроме того, есть материнские карты отдельных производителей, у которых загрузчик ищется только в \EFI\Microsoft\Boot\.
Допустим мы ставили Linux на чистый диск из UEFI, посмотрим конфигурацию системы и загрузки GRUB2 + EFI: /dev/sda1 это /boot/efi ESP partition
Посмоотрим разметку диска (GPT):
рекомендую сохранять значение UUID для ESP (может пригодится для grub)
модуль efivars подгружается автоматически при установке из UEFI
благодаря ему, реализован очень полезный функционал, но будьте осторожны с содержимым, которое монтируется в /sys/firmware/efi!
Очень Важно: UEFI NVRAM доступна на запись от root'а, удаление данных в NVRAM, может стать катастрофой для компьютера!
Еще один важный и полезный инструмент, утилита efibootmgr позволяет решать проблемы загрузки.
посмотрим текущее состояние:
Все верхние примеры были на базе ОС Debian.
Работа c ESP в Linux
В нижнем примере это выглядит следующим образом:
содержимое ESP при единственной установленой ОС Debian
В Ubuntu отличаться будет лишь названием: /boot/efi/EFI/ubuntu/
- Ubuntu и Debian имеют адаптированную утилиту fdisk для работы с GPT
- или воспользоваться альтернативой: gdisk или parted
Примечание: Комментария и объяснения верхних команд не будет, как ими пользоваться можно прочитать в man
6. FreeBSD on UEFI/GPT
Установка FreeBSD из UEFI на чистый диск проходит без проблем, но если диск уже размечен как GPT и на нем есть ESP партиция, то встраиваться туда FreeBSD не умеет.
- uname
- camcontrol
- gpart
- mount
- монтирование ESP и просмотр содержимого
Загрузка FreeBSD из UEFI коротко, четко и ясно описана в uefi(8)
UEFI firmware ищет загрузчик OS на EFI System Partition (ESP), если не установлен, по умолчанию грузит /efi/Boot/bootx64.efi. Это уже было описано.
- boot1.efi читает /boot.config или /boot/config
- затем ищет на ufs или zfs загрузчик loader.efi и загружает его
- loader.efi загружает ядро - kernel
Создание USB/HDD UEFI Bootable в FreeBSD:
Просто. Далее можем развернуть систему руками, как обычно из /usr/freebsd-dist при загрузке с CD/DVD или Memstick.
Что из себя представляет /boot/boot1.efifat:
Немного смущает что разный размер:
Но ничего страшного, при ручной разметке я использовал /boot/boot1.efi и без автоскрипта для efi-shell startup.nsh
Как во FreeBSD создать свой /boot/boot1.efifat, например, размером 512K:
Верхнее, только в случае отсутствия других ОС на диске, для DUAL/TRIPLE Boot, ESP должна быть достаточного размера, в случае Windows не менее 100MB
Это легко посчитать установив один раз Windows+Linux+FreeBSD.
Как во FreeBSD создать EFI раздел: создать FAT32:
7. Dual/Triple/Multiboot Windows,Linux,FreeBSD on UEFI
- Windows 7/8/10
- использует существующую ESP при установке
- делает собственый загрузчик default'ным, не интегрирует существующие ОС в меню загрузки
- имеет утилиту управления загрузчиком: bcdedit
- использует существующую ESP при установке
- делает собственый загрузчик GRUB2-EFI default'ным, добавляет существующие ОС в загрузочное меню
- имеет утилиту управления загрузчиком: efibootmgr
- процедура установки не умеет использовать существующую ESP
- не имеет утилит управления загрузчиком
- имеет пакет(порт) grub2-efi для установки и настройки стороннего загрузочного менеджера
- на один диск
- на разные диски
- в любом порядке
- 1.Windows затем 2.FreeBSD
- 1.Windows затем 2.Linux
- 1.Linux затем 2.FreeBSD
- Windows
- FreeBSD
- Linux
Следует отметить, верхние рекомендации, являются условными, потому что опираются на личное, субъективное мнение.
- использовать ручную разметку диска: Manual
- не создавать ESP партицию
DualBoot Linux и Windows
Как уже было сказано, при установке первой системой Windows, а затем Linux, проблем не будет.
Не потребуется никаких дополнительных настроек, при установке Linux, будет установлен BootManager Grub2-EFI, grub2 найдет вторую систему и добавит в меню
Меню GRUB2 в Debian будет выглядеть примерно:
в UbuntuРазберем что делать, если Windows была установлена позже и как создать меню загрузки в GRUB2.
- из Windows с помощью bcdedit
или - используя POP-UP меню BIOS выбрать загрузку Linux
- изменить порядок загрузки через efibootmgr
имеем by default: BootOrder: 0005, где Boot0005* Windows Boot Manager меняем на debian - создать меню загрузки Windows для GRUB2
два варианта:- достаточно выполнить утилиту os-prober (ее используют grub-probe и grub-mkconfig)
- или создать руками /etc/grub.d/40_custom
UEFI DualBoot Windows и FreeBSD
- Установщик FreeBSD не умеет интегрировать efi загрузчик в уже существующую ESP
- В FreeBSD отсутствует утилита аналогичная efibootmgr
- порт sysutils/grub2-efi
- сторонний загрузчик rEFInd
Установщик FreeBSD не умеет интегрировать свой загрузчик в уже существующую ESP и система не имеет утилиты манипуляции переменными EFI.
Наименее затратный вариант, если FreeBSD будет установлена первой. При установке нужно проследить чтобы партиция ESP была размером не менее 100MB. В ином случае, разметить вручную Manual
- разметку диска необходимо выполнить вручную Manual
- ESP создавать НЕ НУЖНО! Должна быть только одна.
- по завершению установки выйти в режим Live CD/USB и установить пакет sysutils/grub2-efi
- или вместо grub2-efi установить из Windows загрузочный менеджер rEFInd
Рассмотрим вариант установки FreeBSD позже остальных ОС с установкой и настройкой sysutils/grub2-efi.
При установке выбираем Manual разметку диска, создаем как минимум freebsd-ufs для корня и freebsd-swap для swap, или устанавливаем zfs на пустую партицию.
- выполняем grub-mkconfig для создания конфигурации /boot/grub/grub.cfg
- удаляем секцию 10_kfreebsd из /boot/grub/grub.cfg - она создается НЕВЕРНО может мешать:
- создаем свою секцию 40_custom.dist меню загрузки Windows
где root=(hd0,gpt1) это ESP партиция с efi-загрузчиком Windows
- монтируем ESP
- создаем директорию FreeBSD и копируем в нее загрузчик
- установку и настройку rEFInd удобней выполнить из Windows, но можно из FreeBSD.
- монтируем ESP используя команду mountvol
- Скачиваем rEFInd
- Разворачиваем архив в S:\EFI\refind
- Удаляем все лишние из \EFI\refind
- создаем конфиг refind.conf
- настраиваем в нем нужные нам меню:
- используя bcdedit устанавливаем refind как загрузчик by default
- перезагружаемся и наслаждаемся меню rEFInd
rEFInd имеет достаточное количество настроек и может быть использован как с текстовым меню или графическим с иконками и тд и тп. Используйте документацию и пример refind.conf-sample
Теперь не составит труда настроить загрузку UEFI OS FreeBSD,Linux,Windows: Dual, Triple или MultiBoot.
Читайте также: