Dual boot ArchLinux и Windows 8 на UEFI без GRUB c помощью rEFInd

в 15:06, , рубрики: archlinux, linux, Windows 8, метки: ,

Пост для новичков, о том как сделать красивый dualboot windows и archlinux (и других ОС) через efi без grub и лишних заморочек.
Фото для привлечения внимания:
asus g46vw rEFInd

Сразу оговорюсь.
Предполагается, что вы уже поставили windows и archlinux, понимаете как размечать диски и что куда монтировать и осталось вам только разобраться с загрузчиком. Если нет, то рекомендую посмотреть для начала вот это видео.

Я пробовал различные варианты, как описано тут, тут и тут и прочие выкрутасы с efibootmgr. Пытался добавлять опции прямо в «BIOSе» — ничего хорошего у меня не получилось, то рут раздел не находит то ещё что-то. Да и сам подход к переключению систем (жать Esc при включении ПК для выбора системы) меня не очень радовал.

Провозившись весь выходной, нашёл для себя простое и элегантное решение — пакет refind-efi (ArchWiki).
Если коротко, — достаточно установить этот пакет (pacman -S refind-efi) и выполнить refind-install, — всё.
В /boot/efi/EFI/ будет создан каталог refind и в опции загрузки добавлен новый пунк «rEFInd boot manager ».

Теперь подробнее

Для начала сверим конфигурации.
В моём случае это:

  • Windows 8.1
  • Arch Linux x86_64 Kernel Release: 3.14.4-1-ARCH

Вывод lsblk:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 119.2G  0 disk 
├─sda1   8:1    0   300M  0 part
├─sda2   8:2    0   100M  0 part /boot/efi
├─sda3   8:3    0   128M  0 part
├─sda4   8:4    0  59.1G  0 part
├─sda5   8:5    0     9G  0 part /
└─sda6   8:6    0    50G  0 part /home

fdisk /dev/sda

Device           Start          End   Size Type
/dev/sda1         2048       616447   300M Windows recovery environment
/dev/sda2       616448       821247   100M EFI System
/dev/sda3       821248      1083391   128M Microsoft reserved
/dev/sda4      1083392    125036543  59.1G Microsoft basic data
/dev/sda5    125036544    143910911     9G Linux filesystem
/dev/sda6    143910912    248768511    50G Linux filesystem

Раздел с типом «EFI System» созданный инсталятором windows, монтируем в /boot/efi/ ( /mnt/boot/efi/ ведь мы загрузились с liveiso верно?)

mkdir -p /mnt/boot/efi
mount /dev/sdaX /mnt/boot/efi

где X это номер вашего EFI раздела ( например mount /dev/sda2 /mnt/boot/efi ).

Далее перейдя в уже установленный arch ( arch-chroot /mnt/ ) устанавливаем сам refind:

pacman -S refind-efi

Если вдруг такой пакет не найден, поищите в yaourt:

yaourt refind
1 extra/refind-efi 0.7.9-1 [installed]
    Rod Smith's fork of rEFIt UEFI Boot Manager - built with Tianocore UDK libs

refind-install

и если не было ошибок

reboot

После перезагрузки можно поставить в «биосе» в настройках приоритета загрузки «rEFInd boot manager » на первое место.
image
И не забудьте отключить «Secure Boot».

Profit! :)

В каталоге /boot/efi/EFI создана дирректория refind. В ней есть refind.conf в котором можно установить время отображения списка ОС и настроить внешний вид.
Refind сам находит установленные ОС и определяет параметры их загрузки. Так же мне очень понравилось что если вставлена загрузочная флешка или диск они тоже появляются их в списке.

Мне понравилась тема Next-Theme, положил её в /boot/efi/EFI/refind/next-theme и прописал в конфиге:

icons_dir next-theme/icons
banner next-theme/background_1200.png

Конфиг хорошо документирован и вопросов вызывать не должен.

Буду благодарен за замечания и дополнения.

Автор: kellas

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js