КДПВ. Бут-менеджер 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 и операционные системы.P.S. CodeRush
Еще как умеет, и это умение требуется спецификацией начиная с 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 НЕ РАБОТАЕТ. Так что пробуйте другие утилиты, если первый способ с простым форматирование не помог.
Всё что вам будет нужно: выбрать вашу флешку, выставить параметр «Схема раздела и тип системного интерфейса» на «GPT для компьютеров с UEFI», и нажать старт. Остальные параметры трогать не нужно. Лучше использовать флешки помельче (на 8-16 гигабайт).
Наверняка один из способов должен был прокатить, лично я ни разу с проблемами на этом этапе не встречался, главное чтобы компьютер поддерживал 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
К
Стоит сразу заметить, что rEFInd НЕ является загрузчиком. Это так называемый Boot Manager, он вызвает другие .efi-бинарники к исполнению, а также может направить UEFI на запуск ядра прямо с раздела/boot
. Другими словами то есть систему загружает не он, а сам UEFI. Для Multi-Boot машин является отличным решением. Сам по себе rEFInd является .efi-приложением, собранным средствами UEFI Shell. Сам находится в директорииEFI/refind/refind_x64.efi
Помимо того, что можно выбирать между уже установленными системами на ПК, приятным плюсом можно выделить автоматическое обнаружение загрузочных флешек и дисков. На КПДВ это можно увидеть. У меня имеется загрузочная флешка с 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
, после настройки должен получится примерно такой конфиг:# Сканируем записи созданные ручкуами, флешки и оптически приводы
scanfor manual,external,optical
# Пункт для загрузки Linux
menuentry Linux {
loader /EFI/ubuntu/grubx64.efi
icon /EFI/refind/icons/os_linux.png
}
# Пункт для загрузки Windows 10
menuentry "Windows 10" {
loader \EFI\Microsoft\Boot\bootmgr.efi
icon /EFI/refind/icons/os_win.png
}
Разумеется это только часть конфига, другие параметры можно взять из примера
Мой конфиг на базе первого способа с комментариями
# Ожидание в секундах перед авто-выбором ОС
timeout 20
# Скринсервер через 300 секунд, если ничего не выбрали,
# но нажали любую клавишу и отменили автовыбор
screensaver 300
# Разрешение бут-менеджера
resolution 1280 1024
# Использовать графику при загрузке Linux. Этот параметр позволит загружать ОС с красивой Plymouth
# заставкой в разрешении указанном выше
use_graphics_for linux
scanfor internal,external,optical,netboot,biosexternal
# Подключение темы
include themes/refind-theme-regular/theme.conf
Отдельно про Plymouth можно почитать здесь.
Включение красивой темы
С этим всё просто, чуть выше последняя строчка конфига указывает на .conf-файл темы. Сами темы желательно класть в папку
/boot/efi/EFI/refind/themes
. По-умолчанию её нет, создайте через mkdir
.Заходим в директорию themes и просто пишем
git clone https://github.com/munlik/refind-theme-regular.git
. В конфиге прописываем строку include themes/refind-theme-regular/theme.conf
Другие темы можно посмотреть на оф. сайте.
Там же можно посмотреть подробные процессы установки, параметры для тонкой настройки конфига и многое другое.
Пожалуй на этом всё. Мы получили красивый бут-менеджер для выбора нужной ОС с полной поддержкой UEFI. Пункт с установкой rEFInd наиболее сложный, а поэтому опциональный, большинству хватит
grub2-efi
.На последок небольшое видео от меня:
Наверняка закралось приличное количество ошибок в тексте, буду рад, если вы отпишите о них мне ЛС.
Комментарии (53)
alexws54tk
16.05.2016 16:06Прочитал статью про rEFInd. Заинтересовался этой модной пакостью в очередной раз-таки потыкать её.
Пару предложений высказал в личку.
CodeRush
16.05.2016 17:58+1Поправлю немного фактических неточностей:
UEFI видит только один специальный ESP-раздел, обычно он имеет размер 100-200 мегабайт и форматирован в FAT32 (бывает в FAT16)
Это неверно. UEFI видит все разделы, для ФС которых в конкретной реализации прошивки имеются драйверы. ESP же отличается от остальных разделов только тем, что а) для FAT драйвер иметь обязательно и б) на разделе ESP осуществляется поиск загрузчиков и автоматическое создание соответсвующих переменных BootXXXX, если загрузчики нашлись.
Но сам просматривать ESP-разделы и добавлять новые записи он не умеет, эти обязанности возложены на EFI Shell и операционные системы.
Еще как умеет, и это умение требуется спецификацией начиная с UEFI 2.2 (SecureBoot появился в UEFI 2.3.1C). Я советую полностью отказаться от использования efibootmgr, т.к. утилита эта имеет давнюю историю порчи вполне валидных переменных на платах с прошивками на кодовой базе Insyde H2O и Phoenix SCT. Если вам не нравится управление загрузчиками и приоритетами из BIOS Setup — используйте команду bcfg из UEFI Shell, она работает значительно лучше и проблем с ней я не видел ни разу, в отличие от.grozaman
16.05.2016 18:01Спасибо за правки!
Разбирался сам, литературы на русском маловато. Кстати, у меня на одном из компьютеров UEFI 2.1 вроде как, поэтому не знал, что UEFI уже научился так делать. Добавлю в пост чуть позже, пока нет под рукой компьютера.
И ещё: А как завести поддержку других ФС? И почему, к примеру, Fedora ругается, что раздел загрузчика должен быть именно в FAT32 и не дает себя установить?CodeRush
16.05.2016 18:32+1Поддержка других ФС добавляется соотвествующими драйверами, которые с ESP может грузить как сама прошивка, так и системы управления загрузкой вроде rEFInd. Почему ругается установщик — он расчитан на систему «среднего» пользователя, у которого в прошивке никаких драйверов, кроме FAT, нет, и он не будет разбираться, почему после установки на загрузчика раздел EXT4 он не появился в списке.
grozaman
16.05.2016 18:35Именно эти файлы устанавливает rEFInd, если видит ОС на специфической FS (у меня debian лежит на btrfs, rEFInd заботливо скачал btrfs_x64.efi и положил в папочку drivers). Спасибо за ответы.
CodeRush
16.05.2016 18:38Без rEFInd то же самое делается добавлением этого драйвера в переменную DriverXXXX, и он будет грузиться самой прошивкой, если она поддерживает спецификацию UEFI не ниже 2.3.
en1gma
16.05.2016 18:44-2К примеру, посредством этой технологии компьютер можно загружать ОС и вовсе без прослойки в лице GRUB / LILO / etc, загрузчиком может выступать сама UEFI.
в целом, не верно. то, что в случае некоторых ос мы можем EFISTUB — это отдельный разговор.
Запись образа Windows 10 (8/8.1) на диск/флешку.
Установка Windows 10 на часть диска.
проще сразу wim/esd развернуть
UEFI видит только один специальный ESP-раздел
нет, видит всё, лезет туда, на что есть драйвера. в esp ищет *.efi
efibootmgr
лучше забыть и настраивать из шелла
сам, собственно, BIOS, он умеет читать эти записи и выстраивать приоритеты.
какой такой BIOS?
Но сам просматривать ESP-разделы и добавлять новые записи он не умеет, эти обязанности возложены на EFI Shell и операционные системы.
нэ-нэ-нэ…
Все ваши действия в efibootmgr записываются в NVRAM
аха… прям сам…
В большинстве случае BIOS умеет восстанавливать битый NVRAM каждый раз проверяя его и перезаписывая, в случая неполадок.
хрена с два… как бы не наоборот… и какой опять BIOS?
с BIOS на базе Phoenix SCT окирпичиваются
не только. и какой опять BIOS?
но я всё же рекомендую его отключить
великолепно.
не пишите почему у вас что-то не получается на том или ином этапе
учитывая выше и ниже сказанное — великолепно…
Не сложно заметить, то тут нет абсолютно никакой магии. Мы просто форматируем флешку в FAT32:
аха, только вот за этим скрывается куча всего. на флешке создаётся таблица разделов (куча флешек идёт завода с флоппи-стайл форматированием), записываются загрузчики и т.д. но нет, мы же просто форматируем флешку(!!!!!, флешку, блин) в FAT32
После этого нужно просто открыть ISO-файл архиватором и перекинуть содержимое на чистую флешку. Всё, UEFI-флешка готова. На Linux можно сделать всё аналогичным образом, просто форматируем в FAT32 и копируем содержимое.
просто за вас уже всё сделали
Поэтому перейдем к этапу установки
в этом разделе и паре следующих всё прекрасно, практически каждое слово.
Наводим красоту, ставим rEFInd
и далее сводится к тому, что распакуем архив и поменяем приоритеты. ну и про нескучные обои…grozaman
16.05.2016 18:59Именно поэтому я опубликовал статью на Geektimes, а не на Habrahabr.
Ошибки исправлю. Старался подать нормальным человеческим языком, а не расписывать 33 варианта установки так, сяк, эдак, получилось выбрать только что-то одно. Теорию которую описал вывел практически эмпирически, тупо потому что нет ни одной статьи на русском языке в которой доходчиво (!), без сотни терминов описано происходящее.
CodeRush
16.05.2016 19:08+1Замечу про BIOS — называть нынешнюю прошивку BIOS'ом вполне можно, т.к. и «по букве» (т.е. как базовая система ввода-вывода) и по духу (т.е. как motherboard firmware) термин вполне подходящий. UEFI — это вообще говоря только интерфейс между прошивкой и OS, и реализовывать его может что угодно, даже coreboot или Uboot.
Короче: термин уже стал нарицательным, и не стоит ругать за него.grozaman
16.05.2016 19:11Я тоже писал этот термин как нарицательное, но теперь уже всё в статье заменил, наверно так будет всё же корректней и прозрачней.
SovGVD
16.05.2016 19:43Интересная тема. Есть x86 планшетник с Android и Windows10, UEFI, захотелось поставить хоть какой нибудь Linux дистрибутив. Но вот проблема — ни один не хочет ставиться. Происходит так (на примере Ubuntu, если вырубить сплеш, чтобы видно что происходит): жму F7, вылезает менюшка откуда грузится (или аналогично через BIOS настройки через EFI Shell), GRUB загружается, тыркаю Live или установку, ядро прогружается, дальше огромное полотно stdin: I/O error, внизу сообщение о том что образ не найдет и BusyBox, не реагирующий на клавиатуру (через USB-otg, в GRUB работает).
Перепробовал множество нагугленных вариантов, но ничего не и не помогло. Возможно кто-то сталкивался?
Legacy mode не нашел. LiveUSB например с Android 6 загружается нормально.CaptainFlint
16.05.2016 21:07А какая модель планшета? Вообще, с линуксами под планшеты всё очень заморочено, там часто стоят редкие специфические устройства, под которые драйвера фиг найдёшь, а если и найдёшь, то фиг соберёшь.
Можно попробовать ROSA Fresh (уефный 32-битный образ), кое-какие доделки для планшетов мы там в своё время реализовывали.SovGVD
16.05.2016 21:18Onda v919, на вид больше похоже на ПК без клавиатуры, чем на планшет. Но вот ни готовые образа, ни установочные не работают, ни с 32, ни с 64 битным загрузчиком (там несколько странно, из биоса shell ругается на 32 битные efi, а если из меню по f7, то ругается что не поддежрживает 64 битные). Есть подозрение что после загрузки ядра не видны устройства, но с другой стороны android 6 почти тоже linux и там проблемы нет, за исключением не работающего отображения уровня зарядки.
Образ попробую, малоли.
Cr558
16.05.2016 22:07А откуда «ставитесь»? С какого носителя, какая там ФС и т.п.?
SovGVD
16.05.2016 23:02C USB флешки, сделанной разными методами (dd, unetbootin, rufus, убунтовая приблуда и еще чего то пробовал, ФС видимо FAT32), выбирая её в boot menu (по F7) или запуская efi файлик через shell (bios->Launch EFI Shell кажется), думаю не суть, в любом случае дальше загрузки ядра и не реагирующего на клавиатуру (возможно модули какие то не подгружаются) busybox дело не продвинулось. Так же пробовал готовые образы UEFI флешек, результат аналогичный (GRUB -> лог запуска -> busybox).
vaslobas
16.05.2016 20:23А я пользуюсь Кловером на хакинтоше, который у меня грузит сразу 3 системы – OS X, Win 10, Arch. Работает как часы.
https://wiki.archlinux.org/index.php/Clovergrozaman
16.05.2016 20:26rEFInd тоже умеет грузить OSX без проблем :)
А про Clover слышал тоже.vaslobas
17.05.2016 01:12Так Кловер форкнутый Рефит допиленный, чтобы грузить хакинтош. Рефинд, к сожалению, не способен грузить хакинтош.
grozaman
17.05.2016 07:18Почему не способен? rEFInd это тоже форк rEFIt. http://www.rodsbooks.com/refind/installing.html
На сайте много про OSX и как из под нее ставить его.vaslobas
17.05.2016 11:52Рефинд может грузить ОС Х на настоящих маках, но никак не на хакинтошах. В Кловере проделана огромная работа, чтобы он мог нормально загрузить ОС Х на обычном писи.
Meklon
17.05.2016 17:26А что яблочники там такого навертели уникального? Я думал и grub2 справиться должен.
vaslobas
17.05.2016 17:39Основная проблема, что яблочники пилят всё только для своих 3.5 железяк и не очень рады, если кто-то хочет использовать железяки не одобренные яблоком же.
grozaman
17.05.2016 17:40И в принципе весьма правильно делают. Свою ОС они продают только вместе с компьютером.
Meklon
17.05.2016 18:24Ну железо-то у них тривиальное. Почему и удивлён.
vaslobas
17.05.2016 19:35Ну, так даже у видеокарты для мака свои прошивки, у мамки эппла написанный эпплом ДСДТ. Всё железо действительно писюковское, но нюансов куча, которые не дают запустить ОС Х на писи без всякого геморроя. Вот Кловер и делает кучу работы, чтобы ОС Х спокойно запускалась и думала, что работает на одном из одобренных Эпплом компьютеров.
skobkin
17.05.2016 14:54В прошлом году писал пост на аналогичную тему.
Кстати, у вас в конфиге указана общая иконка «linux» для Ubuntu, хотя, если мне не изменяет память, с rEFInd идёт довольно большой набор иконок, где есть все популярные дистрибутивы.grozaman
17.05.2016 15:02Это просто пример конфига, у меня другой, у меня он сам определяет установленные ОС.
То есть если я вставил флешку с ОС RHEL, то он отобразит её логотип, покажет что это USB девайс и позволит на нее загрузиться. При этом никаких правок я не вношу.
Camellan
20.05.2016 17:59Спасибо, интересная тема, наигрался вдоволь. Начал с установки refind'a, а закончил модификацией биоса видеокарты. Ну никак refind не хотел отображаться в нормальном разрешении на Asus GT610. Теперь красота )
grozaman
20.05.2016 18:01Да, с NVIDIA бывают проблемы. Мне помогло всего лишь это:
resolution 1280 1024
С plymouth вообще отдельная тема, там с проприетарными дровами очень много проблем можно получить.Camellan
20.05.2016 22:46В моём случае, при указании в конфиге разрешения выше, чем 1024x768, refind вежливо сообщал о невозможности работы в этом режиме и грузился со стандартными настройками. Пришлось воткнуть gop в vbios. Кстати, plymouth у меня отлично работает на проприетарных драйверах.
Meklon
Спасибо огромное, поиграю на досуге. Откровенно говоря, я таки не понял до сих пор преимуществ использования EFI. У меня уже сто лет Grub2 и все работает. Такой же список всех ОС и вариантов ядер. В чем преимущество объективное кроме «модно, стильно, красивая тема»?
Кстати, а почему не на Хабр?
grozaman
На хабре какие-то странные преобразования. В направлении «Разное» нет хабов попросту. А другие направления не подходят вовсе. Поэтому решил здесь, хабы вроде подходящие. К тому же опасался критики, статья всё же не сильно продвинутая в техническом плане, основная сложность тут пожалуй только с rEFInd. С ним действительно можно получить массу проблем и убить выходные.
По поводу самого UEFI. На мой взгляд он попросту упрощает многие вещи в плане загрузчика, выступая сам в его роли. Поиграв пару дней, решив массу интересных проблем, стало понятно, что предыдущая модель была даже сложнее. На мой взгляд схожую ситуацию сейчас можно наблюдать в противостоянии systemd / sysvinit / upstart.
CodeRush
Преимущества объективно:
— понятный и стандартный 64(реже 32)-битный интерфейс вместо 16-битного набора костылей, программных прерываний, ресетов через порт клавиатуры и передачи управления на MBR.
— для загрузки ОС больше не нужны соственнно загрузчики, и даже вот эти «системы управления загрузкой» вроде rEFInd нужны только тем, кого по каким-то непонятным причинам не устраивает стандартное меню выбора загрузочного устройсва.
— отсутсвие легаси времен царя гороха позволяет использовать прошивку в качестве корня доверия, с SecureBoot и TPM measured boot, и быть уверенным, что загрузчик не подменен атакующим на такой же, только с бэкдором.
— то же самое отсутствие костылей ускоряет загрузку, особенно это ускорение заметно на системах с большим количеством OROMов, например, в аппаратным RAID-контролером, но даже на обычном ноутбуке видно невооруженным глазом.
— значительно более простая расширяемость, в том числе и конечным пользователем, через подсистему DriverXXXX/KeyXXXX, о которой надо бы написать статью, а то она пока не очень известна массам
— много других, но конечный пользователь их не замечает и это правильно
Есть и недостатки, основной — UEFI-загрузчик имеет доступ к большему количеству «мяса и кишок» прошивки, и потому к нему должна быть более высокая степень доверия, чем к старому коду из MBR/PBR. Именно поэтому совет по отключению SecureBoot, который в этой статье дается — он крайне вредный, и лучше научиться пользоваться этой технологией, чем отключать ее лишь потому, что она «слишком сложная» и с ней «бывают проблемы».
grozaman
К сожалению у меня компьютер при установке Ubuntu 16.04 не видит даже клавиатуру со включенным SecureBoot. Я сам люблю использовать новые технологии. Если у читающих есть достаточно свободного времени, то пусть попробуют поставить свой дистрибутив со включенным SecureBoot, может получится поставить без особых проблем. Если использовать PS/2-клавиатуру, то можно добраться до середины установки и Ubuntu сама попросит его отключить, что весьма интересно…
Насчет использования rEFInd. Да, с одной стороны это несколько лишнее, если твоя материнская карта и так предлагает красивый юзер интерфейс для выбора ОС, но увы, мне для смены ОС нужно зайти в UEFI-меню, внести изменения в порядок загрузки, сохранить их, перезапустить и наконец войти куда надо. Я меняю ОС достаточно часто, на дню раза два запросто, поэтому для это серьезная потеря времени. Считаю что мой способ более универсальный и неприхотливый к оборудованию, а так же расширяет возможности кастомизации (под rEFInd сделана масса неплохих тем, к тому же с необычной простотой можно нарисовать свою за вечер).
Те кто используют одну ОС и вовсе могут освоить EFISTUB.
CodeRush
Почему не пользоваться всплывающим меню по F10/F11/F12 для выбора загрузочного устройства вместо того, чтобы в BIOS Setup заходить?
grozaman
У меня нет такой возможности, при запуске системы внизу справка о том, что можно нажать F2 или Del. Обе клавиши заводят в ASUS EZ Mode.
Mixaill
Попробуйте ESC.
grozaman
Специально пошел проверил.
Не работает: ESC, F8, F9, F10, F11, F12. Работают только две вышеозначенные клавиши. Честно говоря не вижу смысла разрабам ASUS пилить фичу и не писать о ней при загрузке.
CodeRush
Что за модель ноутбука?
BBS Popup (то самое меню выбора устройства) есть практически во всех прошивках последних 5 лет, но иногда его нужно включать отдельно. Проверьте свою прошивку на наличие Advanced Mode в дополнение к EZ Mode, возможно, нужное меню и его горячая клавиша просто отключены по умолчанию.
grozaman
У меня не ноутбук. У меня десктоп с матерью Asus Sabertooth 990FX R2.0.
В Advanced Mode порыться надо, может быть действительно просто отключено…
arantar
А чем виртуальные машины не устраивают?
grozaman
Photoshop и игрушки в виртуальной машине как-то не очень работают.
Со скоростью SSD мне проще переключить систему (дело нескольких секунд, на запуск VM столько же почти уходит).
arantar
А в Linux вы что запускаете такого, чего нельзя в VM?
Я в своё время предпочел именно VM реальной, т.к. всегда всё можно вернуть на свои места, если что-то пойдет не так. (:
grozaman
Я же ответил: Photoshop (различные удобные утилиты сопровождающие его) и игрушки. Для всех них нужны мощные вычислительные ресурсы видеокарты.
arantar
Просто не думал, что есть Photoshop под Linux. С играми там как, насколько я знаю бедновато.
grozaman
Так вы мне предлагаете запускать виртуалку под Linux или под Windows? :) Я про первое. Linux я просто люблю и сидеть в нем через виртуалку не очень интересно.
arantar
Под Windows. (:
Просто мне казалось всегда неудобным наличие более одной физической ОС на одном ПК. В одной системе одни файлы/программы, в другой — другие, частенько не доступные из другой ОС.
grozaman
Ну у меня есть раздел форматированный в NTFS. Его видят все системы. Там и обмениваю все.
ValdikSS
Нужно заметить, что TPM Measured Boot и с BIOS вполне возможен и используется.