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

  • Tutorial
Инструкция для новичков, о том, как сделать красивый dualboot windows и archlinux (и других ОС) через efi без grub и лишних заморочек.

Фото для привлечения внимания:

asus g46vw rEFInd

Можете посмотерть в google как это ещё может выглядеть.

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

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

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

Предупреждение

CodeRush в комментарии добавил важное замечание:
Добавлю к этой статье предупреждение: запись в NVRAM из ОС — достаточно опасная операция, которая может приводить к «кирпичу» на некоторых моделях ноутбуков с BIOSами на платформе Phoenix SCT. У автора BIOS на платформе AMI Aptio, с ним таких проблем нет.
Именно поэтому я настоятельно не рекомендую использовать на ноутбуках как саму efibootmgr, так и все, что ее вызывает, и устанавливать любые загрузчики вручную, либо заменяя имеющийся загрузчик по умолчанию (fs0:/EFI/BOOT/bootx64.efi), либо прописывая новый загрузчик из UEFI Shell командой bсfg boot add 0 fs0:/path/to/bootloader.efi «My Fancy Bootloader» — это намного безопаснее.

Всё что вы делаете, вы делаете на свой страх и риск!

Теперь подробнее об установке и конфигурировании

Для начала сверим конфигурации.
В моём случае это:
  • 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


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

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

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 39

    +3
    Кроме красоты есть другие причины не использовать grub2 в системах, где больше одной ОС?
      +4
      Относительная сложность конфигурации, grub2 сам не находит windows efi (http://toster.ru/q/24693), немного придётся повозиться.
      +grub в отличии от refind не определяет флешки, диски, мелочь а приятно.
      Может ещё что-то чего я не знаю, мне достаточно этих пунктов.
      Кстати у refind есть textmode(включается в конфиге), если вы считаете лишними все эти красивости.
        +8
        Эх, чувствую скоро придется разбираться с этими EFI всеми… Пока железо без проблем позволяет работать как привык. Но что будет дальше непонятно.
          +1
          Ничего в них сложного нет. Вот сейчас у меня система грузится прямо в ядро Linux без всяких дополнительных загрузчиков и прочей лабуды. Просто, быстро, и удобно. Правда, у меня Ubuntu. Флешки тоже появляются в меню UEFI для выбора, если там есть поддержка UEFI, например, Windows 8, Ubuntu 13.10+ (про более старые не в курсе).
          Зачем теперь все эти загрузчики если честно не понятно. Менюшку разве красивую сделать. Как по мне, так лучше пусть грузится быстрее.
            0
            Через GRUB можно грузить разные версии ядер по выбору (мало ли новое ядро не взлетит или будет работать не так, как вам хочется). Как это сделать при использовании EFI загрузки я даже не знаю.
            На свой страх и риск по дефолту у меня грузится Gentoo. Ядро приходится руками копировать с заменой старого. Windows приходится загружать через меню выбора устройства для загрузки. Да и, собственно, для меня это не проблема. Windows нужен только для игрушек.
              0
              При использовании EFI очень просто. Один вариант загрузки в EFI — efistub, второй GRUB. По-умолчанию грузится первый, но если нужно можно выбрать второй и увидеть список всех ядер и отредактировать параметры загрузки ядра. Отдельным третим пунктом там может быть Windows, хотя личто мне количества игр в Steam уже достаточно, при желании есть во что поиграть.
          +2
          Кстати, убунтоидам он доступен, не в курсе?
            +2
            Что-то есть https://launchpad.net/~rodsmith/+archive/refind
            В крайнем случае можно поставить refind с liveiso archlinux и как я уже говорил он найдёт установленные ОС.
            +9
            Grub с версии 2.00-22 отлично работает с efi. Windows находится автоматически и даже грузится с фирменным логотипом ноутбука.
              +1
              А у него есть режим «загрузить в следующий раз винду один раз»?
              Вот то есть у меня стоит сейчас:
              sudo grub-reboot "$(grep -- "--class windows" /boot/grub/grub.cfg | cut -d '"' -f 2)" #sudo s2disk -P 'shutdown method = reboot' sudo s2disk sudo grub-set-default 0

              запуская ~/bin/bootwin ноут выключается, после чего грузится винда. когда перегружаюсь из винды — он опять в линуксе где был до этого (выключаю вместо ребута, так как наушники в винде после ребута из линуха не работают).
              есть такая фича у рефа? :)

              кстати! рефи умеет свичить в обычный режим и грузить memtest86?
              это единственный недостаток груба-ефи для меня сейчас )
                +2
                Насчёт «загрузить в следующий раз винду один раз» видимо нет.

                Не очень понял что значит «обычный режим».

                Что касается memtest, привожу выдержку из конфига
                # Which non-bootloader tools to show on the tools line, and in what
                # order to display them:
                #  memtest          - the memtest86 program, in EFI/tools, EFI/memtest86,
                #                     EFI/memtest, EFI/tools/memtest86, or EFI/tools/memtest
                #  gptsync          - the (dangerous) gptsync.efi utility (requires external
                #                     program; see rEFInd documentation for details)
                # Default is shell,memtest,gdisk,apple_recovery,windows_recovery,mok_tool,about,shutdown,reboot,firmware
                #
                showtools shell, gdisk, memtest, shutdown, reboot

                  +3
                  Вообще пост немного не о refind, а о том как новичку просто и быстро сделать dualboot.

                  Правда странно что о нём нет упоминаний на хабре.
                  Refind это форк rEFIt'а — MAC'овского загрузчика. Поддерживает различные efi утилиты refit.sourceforge.net/doc/c2s3_shell.html имеет кастомизируемый графический интерфейс… прост в установке и настройке, больше вроде ничего примечательного )
                    +1
                    Не просто форк, а наследник по сути. Ибо оригинальный rEFIt как бы более не разрабатывается.
                    В отличие от GRUB — rEFInd не является бутлоадером, а является efi-бутменеджером. И по сути представляет собой efi программу лежащую на первом загрузочном разделе в GUIDPT, которая стартует автоматически до загрузки любого бутлоадера
                  0
                  > +grub в отличии от refind не определяет флешки, диски, мелочь а приятно.

                  Определяет, просто не показывает. Пункт для загрузки с флешки можно запилить вручную.
                  0
                  Я gummiboot использую, и он вполне меня устраивает по красоте и по простоте настройки. Пилепил лого при загрузке, что еще нужно, и никакого grub не надо. )
                  +6
                  А смысл? Если всё равно появляется ещё 1 загрузчик, то почему бы не использовать стандартный проверенный grub? Я-то сначала подумал, раз уж не grub, то в BIOS будем выбирать, грузить «linux-3.14.efi» или «bootmgfw.efi», что хотя бы прикольно/удобно.
                    +5
                    Старый проверенный LiLo, чо уж…
                      0
                      В статье вариант с Linux и Windows.LILO в этом случае, мягко говоря, не очень подходит.
                      0
                      то в BIOS будем выбирать, грузить «linux-3.14.efi» или «bootmgfw.efi»

                      В EFI к этому всё идёт, но пока что у меня лично на одной машине получилось так сделать, а на другой — нет. Когда версии EFI будут более унифицированы, нужна в загрузчиках отпадёт, ИМХО.
                        +1
                        в биосе не проблем выбирать что грузить, но вот фичи «на одну загрузку взять другую ос» нету. тем более, нету «на одну загрузку попробовать другое ядро, и если что откатиться автоматом назад»
                          0
                          Для этих целей стоит GRUB, который с EFI, и загрузка напрямую в последнее ядро. Как показывает опыт это весьма удобно, так как грузиться в не последнее ядро, либо передавать специфические ключи нужно довольно редко.
                          +4
                          Вообще говоря, EFI-загрузчики делятся на два типа: Boot-Loaders и Boot Managers.

                          Boot-Loaders это обычные загрузчики, как и для BIOS — загружают ядро в оперативку и прыгают на какой-то адрес. В случае с EFI, Boot-Loaders не используют функции UEFI, из-за чего невозможна совместная работа с Secure Boot (т.е. подпись ядра просто не будет проверяться, и Secure Boot игнорируется). Такие загрузчики умеют загружать, в общем-то, даже ядра без EFISTUB, с любого раздела, с любой ФС и даже с рейда.
                          К Boot-Loaders относятся: GRUB, syslinux

                          Boot Managers это EFI-приложения, которые используют функции EFI для загрузки ядра. По сути, это обычная менюшка, только и всего. Они могут загружать только то, что загружает EFI, и только с тех ФС, которые поддерживает EFI (хотя могут и свои драйверы в EFI загружать).
                          К Boot Managers относятся: Gummiboot, rEFInd
                            0
                            Я долгое время использовал EFISTUB, а сейчас перешел на GRUB, т.к. EFI на моем ноутбуке, бывало, не загружал ядро напрямую, и это крайне бесило.
                          0
                          Полезная статья, спасибо!
                            +5
                            Добавлю к этой статье предупреждение: запись в NVRAM из ОС — достаточно опасная операция, которая может приводить к «кирпичу» на некоторых моделях ноутбуков с BIOSами на платформе Phoenix SCT. У автора BIOS на платформа AMI Aptio, и с ним таких проблем нет.
                            Именно поэтому я настоятельно не рекомендую использовать на ноутбуках как саму efibootmgr, так и все, что ее вызывает, и устанавливать любые загрузчики вручную, либо заменяя имеющийся загрузчик по умолчанию (fs0:/EFI/BOOT/bootx64.efi), либо прописывая новый загрузчик из UEFI Shell командой bсfg boot add 0 fs0:/path/to/bootloader.efi «My Fancy Bootloader» — это намного безопаснее.
                              –4
                              Зачем дуалбут на ноутбуке? Если ты работаешь со спец ПО (онил Окна) — то работать в линуксе не сможешь — да и нет нужды, если только для фана, но ради фана делать дуалбут не есть разумно, если ПО позволяет работать в линуксе (и ты лиукнсоид при этом :-) ), то ты работаешь на линуксе, а про окна, в дуалбутной винде можно максимум поиграть в игрушки — но это же явно не на ноутбуке…
                                +3
                                Ну почему нет? Я работаю на ноутбуке со вторым монитором, ноут использую и дома. Очень удобно быстро поправить код когда требуется и не нужно разворачивать окружение, оно всегда с тобой. Основной системой стоит Mint, в винду переключаюсь ближе к выходным, поиграться в контру или танки. Или вы считаете что ноутбуки не тянут? Так уж 2014 на дворе, мощностей хватает =) ИМХО конечно…
                                  –5
                                  Считаю что задачи у них не те, если говорить о дуалбуте на ноутбуке для игр. Парадигма нарушается, общемировой порядок шатается когда на ноутбуке в дуалбуте стоит винда чтобы поиграть в игры.
                                    +4
                                    Эммм… простите, у меня asus g46vw, intel core i7, 16G ram, 120 ssd, 600 hdd, встроенное видео intel + дискретная nvidia, hdmi выход чтобы играть на телеке. Какие при такой конфигурации могут быть «не те» задачи?
                                    Под линуксом мне просто работать привычнее и удобнее, и засирать своё рабочее пространство вайнами mono и другими «костылями» не хочется, как и не хочется приобретать отдельный комп для игр/развлечений. +всегда есть что-то что можно сделать только из под windows.
                                    И да на дворе 2014.
                                    0
                                    просто у вас ооочень мощный ноутбук.
                                      0
                                      Если вы это мне на счёт ноута — брал на вырост))
                                      Не сочтите за рекламу, отличная модель, стоит не дороже макбука, ну и вот была возможность взять девайс помощнее — взял. +http://habrahabr.ru/company/asus/blog/218511/#comment_7476479
                                      Учитывая сколько я наблюдаю хипстоты с маками, думаю подобный ноут, могут многие себе позволить…
                                        +1
                                        Подтверждаю. Тоже на G46VW пересел с U41SV. Минусов только два — нет USB 2.0 порта (есть девайс который никак с 3.0 не дружит), и при ребуте из дебиана в винду надо выключать ноут, иначе не работает раъём наушников (баг виндовых дров). мощный, никаких проблем с охлаждением, батарея большая, SSD из коробки, i7. И цена весьма адекватная за свои ТТХ.
                                          0
                                          У меня одно время стояла только ubuntu (pulseaudio), сейчас вот арч(alsa) с виндой, проблем с разъёмом наушников не наблюдал. Windows лицензионная, может она сама нужные дрова скачала при установке…
                                          Так что бросайте вы свой debian и переходите на что-нибудь по серьёзнее, — linux-way так сказать )))
                                            +2
                                            А вы попробуйте, попробуйте — это баг именно дров на звуковуху, и именно на винде ;) в линухе всё работает как не грузись.
                                            Причем это встречается на самых разных асусах и самых разных дистрибутивах.
                                            Вот пример: askubuntu.com/questions/260889/headphones-not-working-on-windows-after-installing-ubuntu
                                            и да, model=asus не помогает :) винда, разумеется, лицензионная и последняя.

                                            работает одно решение — перегружаться в винду через power off а не через reboot.
                                            то есть приходится делать «s2disk» а не «s2disk -P 'shutdown method = reboot'», и жать потом кнопку включения.
                                    0
                                    Живу преимущественно под Убунтой, но иногда мне нужен фотошоп и мелкософтовский офис.
                                    Вайн и ЛибрОфис не устраивают.
                                    0
                                    А можно добавить в статью описание настройки для deb-based дистрибутивов? У меня что-то не завелось на Linux Mint 16.
                                      +4
                                      Я пожалуй в ближайшее время напишу статью именно про rEFInd.
                                      В этой статье описывается как его установить из репозиториев archlinux.
                                      Refind — это загрузчик, он не нуждается в ОС, он не может «не завестись» под linux mint, он сам по себе, просто стоит в специальном boot разделе с типом efi.
                                      Не знаю что вы делали, но в первую очередь удостоверьтесь что ваша «мать» поддерживает efi, что есть отдельный boot диск с типом «efi system», например с помощью fdisk /dev/sdx далее p. Проверьте есть ли там дирректория EFI.
                                      Вот страничка refind www.rodsbooks.com/refind/ там же есть описание установки.
                                      Для deb-based систем есть какой-то пакет(не проверял) https://launchpad.net/~rodsmith/+archive/refind


                                        0
                                        Опишу последовательность действий:
                                        — добавил ppa refind'a && aptitude update && aptitude install refind
                                        после установки он мне выдал что всё ок, нашёл мои системы, прописался как дефолтный загрузчик, и показал какое будет содержание пунктов меню. Потом я залез в папку rEFInd'a и посмотрел что из себя представляет конфиг (но ничего не менял).
                                        Со спокойной душой я перезагрузился зашёл в BIOS и отключил секурный бут (к слову, у меня уже он был отключен), и увидел то же что и всегда — меню Grub2… Ок, а вот тут уже интереснее: загрузился в Mint, попытался глянуть конфиг ещё раз, но папкка refind была пуста! Мистика… А мать efi поддерживает, раздел есть, всё как у людей (в смысле как в статье, поэтому и решил попробовать)
                                      +1
                                      А никто не знает efi boot менеджера с поддержкой тачскрина или хотя бы с возможностью назначить свои клавиши на стрелки и ввод?
                                      Интересует для планшета, из хардварных кнопок только громкость и win )

                                      Only users with full accounts can post comments. Log in, please.