Сегодня мы разберемся с загрузчиком rEFInd. А точнее с вопросом, как его устанавливать в качестве основного загрузчика на жесткий диск компьютера, и на флешку.
Немного о главных возможностях.
Поддержка графического и текстового режима меню. Возможность установки собственных изображений для иконок меню и фонового изображения. Работа с файловыми системами ISO-9660, NTFS, HFS+, ext4fs, и Btrfs. Загрузка других EFI загрузчиков и приложений. Загрузка BIOS загрузчиков. Авто-определение имеющихся EFI и BIOS загрузчиков. Возможность повторного сканирования устройств (если к примеру подключили новое устройство).
Перед началом всех манипуляций с установкой, скачаем последнюю версию загрузчика. Достать его можно по этой ссылке. На момент написания этого текста, последней была версия 0.10.4. Необходимый нам архив называется refind-bin-0.10.4.zip.
Если же, нужен EFI Shell в меню, то скачиваем архив refind-cd-0.10.4.zip с livecd версией загрузчика.
Оба данных архива содержат все необходимые файлы для установки. Разница в лишь в том, что если использовать livecd версию, то мы получаем EFI Shell и экономим время необходимое на создание папок и переименование файлов загрузчика.
Установка rEFInd на флешку
Так как rEFInd загрузчик для UEFI BIOS, это означает что раздел флешки, на котором он будет располагаться, должен быть отформатирован в файловую систему FAT (12,16,32), либо так, как описано в статье «Загрузка в UEFI режиме с NTFS раздела». Во втором случае загрузчик будет загружаться с NTFS раздела.
Пример форматирования раздела. |
И так, флешка отформатирована. Неважно каким способом, главное что в итоге она с пустым файловым разделом.
Создадим в корне флешки папку EFI, а внутри нее папку boot.
Извлечем содержимое папки refind архива refind-bin-0.10.4.zip в директорию EFIboot на флешке.
Переименуем файлы refind_aa64.efi, refind_x64.efi, refind_ia32.efi в bootaa64.efi, bootx64.efi, bootia32.efi соответственно.
Так же переименуем файл refind.conf-sample в refind.conf.
Если в загрузочном меню необходимо наличие EFI Shell, то необходимо извлечь файлы shellia32.efi и shellx64.efi из livecd версии в корень флешки.
Установка загрузчика rEFInd на флешку на этом завершена. Проверим флешку загрузив ее в виртуальной машине VirtualBox.
Так выглядит меню если загрузчик не нашел установленных ОС на дисках компьютера. Если к виртуальной машине подключить жесткий диск с установленными ОС Windows и Linux Ubuntu, а потом снова попробовать загрузиться с подготовленной флешки, результат будет следующим.
Теперь перейдем к установке rEFInd на жесткий диск компьютера в качестве основного загрузчика.
Установка rEFInd из Windows.
Рассмотрим установку загрузчика rEFInd из ОС Windows. Специально для этого я установил операционные системы Windows 8.1 и Ubuntu 16.10 на виртуальную машину, для последующей демонстрации мульти-загрузки. По умолчанию основной загрузчик Windows Boot Manager (BOOTMGR),
Первым делом, распаковываем скачанный архив с дистрибутивом rEFInd в удобное для вас место. В моем случае я это был рабочий стол.
Подключим ESP (EFI System Partition) раздел. Воспользуемся для этого DISKPART‘ом. Запускаем для этого командную строку WIN+X > Командная строка (администратор) пишем diskpart и нажимаем ENTER.
Выведем список дисков командой list disk чтобы определить номер нужного диска.
Как можно наблюдать диск в списке один с нулевым номером. Укажем что все дальнейшие действия нужно проводить с ним. Выполняем для этого команду select disk 0.
Отобразим список разделов выбранного диска командой list partition, чтобы узнать номер ESP раздела.
Определить ESP раздел можно по его маленькому размеру и «системному» типу. Как видно он расположен под вторым номером. Выберем его для дальнейших манипуляций командой select partition 2.
Подключим раздел к системе присвоив ему букву диска. Буква может быть любой незанятой системой. Выполним команду assign letter=S.
После успешного выполнения команды, проводнике можно увидеть подключенный диск. Но, к сожалению, получить доступ к нему через проводник не получится.
Чтобы увидеть содержимое диска S: нужно обладать правами администратора. То есть, если к примеру запустить Far Manager от имени администратора, то он сможет войти на данный раздел.
Или же с помощью командной строки запущенной от имени администратора, так же можно попасть в данный раздел.
Дальнейшие действия я буду проводить в командной строке, с Far Manager все слишком просто.
Переименуем файл refind.conf-sample в папке refind распакованного дистрибутива в refind.conf.
Скопируем путь до папки refind.
Теперь нам нужно скопировать папку refind в S:EFI. Выполним для этого команду xcopy C:UsersUSERDesktoprefind-bin-0.10.4refind S:EFIrefind /E используя при этом скопированный ранее путь.
Убедимся что все скопировано как надо командой dir S:EFIrefind.
И последнее, укажем загрузчику Windows что нужно по умолчанию загружать rEFInd. Делается это командой bcdedit /set {bootmgr} path «EFIrefindrefind_x64.efi».
Перезагрузимся и проверим результат.
Установка rEFInd закончена.
Итог.
rEFInd очень прост в установке. Обладает красивым меню, удобным авто-определением загрузочных устройств, отсутствием необходимости начальной конфигурации (все работает «с коробки»). Сегодня мы рассмотрели установку на флешку, и компьютер с ОС Windows. В следующей статье мы займемся конфигурационным файлом загрузчика. Разберем его как можно подробнее. И конечно же попробуем заявленную возможность загрузки старых ОС.
In this blog post I’ll be covering the process of installing and troubleshooting refind bootloader from a machine running Windows 10 1903 (although I hope this will survive any updates from Microsoft).
At first, I tried following the official documentation and replacing the {bootmgr}
’s path with refind’s, but it didn’t work. Then, I used BCDEDIT.exe
to modify every single path to bootmgfw.efi
I cound find but to no effect. After every reboot, Windows kept showing up no matter what.
So, I’ll be describing here the steps I had to take in order to make everything work as expected, and some guide to troubleshoot any error that you stumble on. Here’s a screenshot of the final result:
What our goals are
- Install and theme refind from a Windows 10 machine
- Make refind the default bootloader
- Prevent Windows from setting itself as the bootloader after every boot
What our goals aren’t
- Cover the details of installing refind from any other Operating System (if you’re not on Windows 10 and wants to install refind, take a look here)
- Make Secure Boot happy (I may or may not make a blog post about this in the future. If you want to use Secure Boot — which I recommend -, you can start by taking a look at the official documentation on this topic)
What you’ll need
- refind (duh)
- Explorer++ or some other file explorer that can be launched as Administrator (I’ll assume that you have one, but it is not required at all. If you feel confortable, you can do all the file moving/editing from your command prompt)
- A Windows 10 bootable USB stick (or DVD if you live in a cave)¹
¹NOTE: The Windows 10 bootable is not required, but is recommended in case you mess things up.
Before we get started
⚠️ UPDATE: Before you proceed, I recommend trying the steps on the official documentation and using this only as last resort. If you do have to follow this path, I recommend you backup your refind installation folder after the installation is complete. When you are installing some OSes (e.g. Linux), they will overwrite refind’s files and prevent you from booting into refind (but booting into the fresh installed OS will work). If this happens, all you have to do is login into the OS you just installed and restore your refind backup.
First of all, go ahead and disable UEFI’s Secure Boot. I won’t go into details on how to do it, since it changes from system to system. If you don’t know how to do it just search around. Pay attention not to disable UEFI, just Secure Boot.
Getting started
In ordet to get started, we’ll need access to the Windows’ FAT32 EFI partition. To do that, we’ll have to mount it. From an elevated command prompt, issue the following command (where B:
is the letter you want to assign to the partition):
mountvol B: /s
After this, you should have your partition mounted at B:
(or whatever letter you specified). In order to access it, you’ll have to launch Explorer++ as Administrator (see the note below). If you open it up you should see the following structure:
.
├── EFI
| ├── Boot
| | └─── bootx64.efi
| ├── Microsoft
| | ├─── Boot
| | └─── Recovery
NOTE: The old trick of killing explorer.exe
and launching it from an elevated command prompt doesn’t seem to be working anymore. The B:
drive shows up but is not accessible. I prefer not to mess around with this drive’s permissions, so I’m using this alternative method.
Microsoft Windows’ Boot Environment
Microsoft’s folder intuitively contains files used to boot Windows. I’ll summarize what I think is important about the boot process, but if you want to know more, I suggest you start here (this link is where I’m getting all the info below).
NOTE: I’m not an expert, so I may say something that is not 100% accurate. If you find something that you think is incorrect, please drop me a line.
With just Windows installed, this is what the boot flow looks like:
-
UEFI Firmware: Performs CPU and Chipset initialization, load drivers, etc.
-
UEFI Boot Manager: Loads UEFI device drivers and loads boot application
-
Windows Boot Manager (
EFIMicrosoftBootbootmgfw.efi
): Is responsible for loading the Windows Loader (C:WindowsSystem32winload.efi
) chosen by the user (in case there’s more than one Windows installed).
Replacing Windows Boot Manager
Our goal here is to replace Windows Boot Manager with refind (but, of course, allowing refind to call the Windows Boot Manager later if that’s what the user wants).
In order to do that, we’ll use the EFI fallback file. Here’s a quick definition, but if you want to know more, take a look here and here.
The firmware will look through each EFI system partition on the disk in the order they exist on the disk. Within the ESP, it will look for a file with a specific name and location. On an x86-64 PC, it will look for the file EFIBOOTBOOTx64.EFI.
So… let’s recap: we know that the firmware looks for Windows Boot Manager on EFIMicrosoftBootbootmgfw.efi
and we know that, if it doesn’t find it, it’ll look for whatever file is at EFIBootbootx64.efi
. Hmm…
You probably realized where we are going here, but in case you dind’t: our plan is to set refind as the EFI fallback file and move Windows Boot Loader to some place where the firmware can’t find it. Then, we can create an entry in refind pointing to the place where we moved Windows’ files.
This is actually quite simple, but will require a few hacks. Lets begin.
Installing refind
First of all, rename the existing EFIBoot
folder to something like EFIBoot.old
, so that you have a backup in case you need it. With this out of the way, create a new EFIBoot
folder and copy refind’s files there. Rename refind_x64.efi
to bootx64.efi
.
One more thing, add the following entry to your refind.conf
file (this is important, trust me), replacing {folder}
to anything BUT Microsoft
(I’ll use _Microsoft
) and {pathtoyouricon.png}
with the actual path of your icon:
menuentry Windows {
loader EFI{folder}Bootbootmgfw.efi
icon EFIBootpathtoyouricon.png
}
After this step, refind is properly set up as the EFI fallback. All we have to do now is make Windows Boot Loader unfindable by the UEFI firmware.
Renaming the Microsoft folder
This should’n need a dedicated section, but is not as straightforward as it seems. The EFIWindows
folder cannot be renamed from Windows (since it is kept in use).
So, you’ll need to get a command prompt at boot. In order to do that I usually use the Windows bootable (just press Shift + F10
on menu), but there are other ways to do it in case you didn’t set up your bootable media.
At the boot command prompt, mount the EFI partition and navigate to the EFI folder:
mountvol B: /s
cd /d B:EFI
At this point, if you explore this folder, you should have your Boot
folder with refind’s files and Microsoft
folder with Windows’ ones. All you have to do is rename the Microsoft folder to the same name you used on your refind’s menuentry
.
⚠️Remember to replace {folder}
by the exact same thing you used in your refind.conf
file.
ren Microsoft {folder}
And that’s it. Close the command prompt and restart your computer. Next time you boot your firmware should not find Windows Boot Manager and fallback to refind. Since we manually added the Windows entry to refind, you should be able to boot into Windows from there.
Troubleshooting
I messed things up and now I can’t boot my computer
Keep calm. This probably happened to me a few dozen times in the process of trying to install refind.
All you have to do is fix your EFI partition. I usually just format the partition and ask Windows to rebuild it, this way you should have a fresh start. Note that this will only work if Windows is the only operating system installed in this partition.
To format and rebuild the partition, boot into your Windows 10 media (I hope you have one), launch a command prompt and execute the following:
mountvol B: /s
format B: /FS:FAT32
bcdboot C:Windows /s B: /f UEFI
This should rebuild your EFI partition and you should be able to boot into Windows now.
Refind shows up without any option (hangs)
This happened to me. In my case it was an issue with the NTFS driver, so all I had to do was remove the ntfs_x64.efi
file from the EFIBootdrivers_x64
folder.
NOTE: You don’t need the NTFS driver to boot into Windows, since the EFI partition is using FAT. For more info, take a look here
If it isn’t a drive issue for you, see if any of the below helps. This is a quote from refind’s author Roderick W. Smith:
This sort of problem normally indicates a filesystem issue – rEFInd is getting stuck in an infinite loop attempting to read one of the filesystems on the disk. I recommend you try the following:
1. If you have any external disks attached to the computer, try
unplugging them. Such disks sometimes cause problems. If this fixes the problem but you need to use the external disk on a regular basis, you may need to further debug the problem as below; but if it’s just a USB flash drive that you don’t need to leave permanently attached, then this should be the end of it.
2. Remove (or move) all the EFI filesystem drivers from the “drivers”, “drivers_x64”, and “drivers_ia32” subdirectories of the rEFInd installation directory. (Normally there’ll be only one drivers subdirectory; just remove all those driver files.) Reboot.
3. If rEFInd hangs even with no EFI filesystem drivers installed, then the problem is likely with the ESP or some other FAT filesystem. You can try doing a filesystem check on such partition(s) with dosfsck in Linux, CHKDSK in Windows, or similar utilities. In an extreme case, you could try backing up the ESP (and/or other FAT partitions), creating a fresh filesystem, and restoring the data.
4. If rEFInd comes up and shows a menu after removing the filesystem drivers, even if the menu options are incomplete, then this is good; it indicates that there’s a problem with one of the filesystems or their drivers. You can then begin restoring the driver(s) that you need. Normally this will be just one, for whatever filesystem holds your Linux kernels. (You do NOT need the NTFS driver to boot Windows.)
5. If rEFInd works at this point, then you’re done – the problem was in some superfluous driver(s) that you weren’t using.
6. If rEFInd hangs, then you can try booting in some other way and using a filesystem check utility like fsck on the filesystem(s) that can be read with the driver(s) you restored. With any luck this will fix the problem.
7. If the problem persists at this point, you have a number of options:
a) Remove the offending filesystem driver, install GRUB, and use it to boot the Linux kernel. GRUB uses a different filesystem driver and so may not be affected.
b) If you don’t already use one, create a small (~1GiB) partition to use as /boot, using a different filesystem than your main Linux partition. You can then install the EFI driver for the /boot partition, copy the contents of /boot to it, and adjust /etc/fstab to mount this partition at /boot. The ext4fs, Btrfs, and ReiserFS EFI drivers are the fastest ones.
c) Do as in option b, but use FAT, which requires no special driver. This works better with some distributions than others, though. Debian-based distributions often use symbolic links, which aren’t supported on FAT, in /boot, for instance. Some Arch Linux users like to use FAT on /boot (or mount the ESP at /boot), by contrast.
d) Completely wipe and re-install the offending partition(s). It’s possible that the EFI driver is flaking out because of leftover data that wasn’t completely erased when you created the partition. If you opt to do this, I recommend completely zeroing the partition (with “dd if=/dev/zero of=/dev/{wherever}” or something similar) before restoring it.
e) Try a different EFI filesystem driver. The efifs project (http://efi.akeo.ie/) offers a large number of EFI filesystem drivers, and its variant of the rEFInd driver might work better on your system.There may be some other options and potential causes I’m forgetting.
MultiBoot – программа, восстанавливающая загрузчик операционной системы. По сути это графическая оболочка для системных утилит BcdBoot, BcdEdit и BootSect.
Достаточно скачать бесплатно MultiBoot, чтобы спасти систему, если она не загружается после установки более старой системы. Такое постоянно происходит, если пользоватеть устанавливает Windows XP параллельно Vista или Seven. Загрузчик более новой ОС просто стирается и кажется, будто вот он, конец. Но MultiBoot поможет избежать проблем. С его помощью можно организовать возможность загрузки одной из нескольких систем на выбор.
Программа MultiBoot просто-напросто восстанавливает нужную запись в загрузчике, что позволяет и далее использовать ранее установленную систему параллельно с вновь установленной. Конечно, не обошлось и без стандартных настроек экрана загрузки системы: выбор системы по умолчанию, таймаут для выбора, порядок отображения операционных систем.
Это простой и удобный способ настроить загрузчик без специальных знаний по синтаксису языка ini-файлов. Проблемы с загрузкой теперь может решить даже новичок, не знающий в принципе, какие файлы отвечают за это. Не важно, чем вызваны неполадки, MultiBoot поможет их решить.
На сегодняшний день все пользователи, которые работают с компьютерами, знают, что без операционной системы это сделать невозможно. Таким образом, «операционка» сначала должна загрузиться, а после этого можно пользоваться всеми ее функциями. Учитывая это, актуальным становится вопрос, который связан с компонентом Windows Boot Manger.
В данной статье нужно попытаться разобраться подробнее, что это такое. Кроме того, необходимо обратить внимание на некоторые довольно распространенные типы ошибок, которые способны возникать в процессе запуска системы.
Windows Boot Manager: что это?
Следует начать с самых азов. Сначала необходимо рассмотреть сам термин Windows Boot Manager. Несложно догадаться, что это такое. Достаточно просто перевести это словосочетание с английского языка на русский. Перевод звучит так: «менеджер загрузки Windows». Другими словами, это системные программы, позволяющие загружать все требуемые компоненты какой-либо операционной системы, чтобы обеспечить не просто взаимодействия ее с пользователем через свой интерфейс, а также организовать правильную работу всех «железных» компонентов при помощи их предварительной идентификации и настройки. Загрузчики Windows Boot Manager (Windows 8, 7 или 10) в архитектуре компьютеров IBM PC представляют собой программное обеспечение, которое содержится в BIOS, и записанное в компьютерную систему ПЗУ. Следует рассмотреть основные функции загрузчиков и определимся, как они работают.
Главные функции Boot Manager Windows 7, 8, 10 Как известно, загрузка операционной системы не всегда может выполняться только с жесткого диска. Наиболее простым примером являются сетевые операционные системы, где старт всех компонентов операционной системы даже на терминалы, которые не имеют собственных винчестеров, способен производиться через локальную сеть, когда основная «материнская» ОС пребывает на удаленном сервере.
При рассмотрении основного назначения загрузчика и его функций, необходимо сразу отметить, что он при запуске устройства дает возможность выбрать тип желаемой операционной системы. Это предлагается в том случае, когда их установлено несколько. Кроме того, можно привести «железные» компоненты терминала в состояние, которое необходимо для старта, загрузить ядро системы в оперативную память (ОЗУ) и в ПЗУ устройства (если старт производится по сети), выполнить формирование основных параметров ядра.
Типы загрузчиков На сегодняшний день известно множество разновидностей менеджеров загрузки операционных систем. Допустим, для сетевых «операционок», созданных на основе Windows NT, таковыми являются:
Служба NTLDR (загрузчик ядра);
сам Windows Boot Manager, представляющий собой загрузчик ядра систем, начиная с Vista, в форме файлов winload.exe и bootmgr.exe;
LILO (система загрузки ядра Linux);
BootX (загрузчик для систем Mac OS X);
SILO (как правило, используется с системами Solaris с поддержкой архитектуры SPARC);
Bootman (менеджер для BeOS) и прочие.
По той причине, что в данной статье рассматривается операционная система Windows, Boot Manager взаимодействует с процессом загрузки как на аппаратном уровне BIOS, так и с использованием системных файлов. Например, пути загрузки операционных систем с определением некоторых главных параметров существуют в конфигурации файла boot.ini, который известен многим.
Ошибки загрузки
Очень жаль, но бывают ситуации, когда загрузчик «вылетает». И это еще мягко сказано. Самой распространенной ошибкой считается проблема его инициализации. При этом возникает сообщение типа Windows Boot Manager boot failed. Иногда встречаются уведомления типа BOOTMGR is compressed либо BOOTMGR is missing с предложением дальнейшего рестарта с использованием стандартного сочетания Ctrl + Alt + Del.
Элементарные способы исправления
Далее необходимо рассмотреть, что можно сделать для исправления такой нелицеприятной ситуации. Таким образом, существует ошибка Windows Boot Manager. Что при этом можно предпринять? Сначала предлагается применить элементарные способы, которые дают возможность восстановить загрузчик. В наиболее простом варианте существует возможность просто выполнить загрузку с установочного диска с системой либо применить что-то типа Live CD. В данном случае понадобится просто перейти к консоли и выбрать, чтобы началось восстановление системы с дальнейшим указанием контрольной точки.
В случае, если это не помогает, в этой же консоли необходимо выбрать раздел восстановления загрузки. Обычно это помогает. Особенно такое решение актуально, когда сбои связаны с программной частью, а не с физическим повреждением винчестера. В некоторых случаях проблемы способны появляться по причине того, что системный диск был сжат с целью сэкономить место. Стоит отметить, что делать это нежелательно. В данной ситуации случае после загрузки (с того же Live CD) необходимо перейти в «Проводник», а после этого в свойствах системного раздела убрать отметку с параметра сжатия. Далее в меню консоли требуется воспользоваться командной строкой, а затем этого последовательно ввести несколько команд. Когда системный диск обозначен литерой «C», последовательность будет такой:
1. С:.
2. Еxpand bootmgr temp.
3. Аttrib bootmgr -s -r –h.
4. Del bootmgr/
5. Ren temp bootmgr/
6. Fttrib bootmgr -a +s +r +h.
Наверное, не нужно напоминать, что после каждой команды необходимо нажимать клавишу ввода. Результаты действия данных команд не стоит приводить, чтобы обыкновенный пользователь не напрягал свой мозг. Для рядового юзера вполне достаточно того, что они функционируют и способны восстановить загрузчик. В случае если такие методы не помогают, придется воспользоваться кардинальными способами в форме команд bootrec.exe /FixMbr, bootrec.exe /FixBoot и bootrec.exe /RebuildBcd. Однако данный способ лучше использовать исключительно в том случае, если все вышеописанное не помогает.
Таким образом, это все, что кратко можно рассказать о том, что представляет собой Windows Boot Manager. Наверняка, читатель сразу поймет, что к чему после прочтения данного материала. Конечно, проблем и ошибок, как и способов их исправления, может быть намного больше, чем описано в статье, однако описанные методы являются самыми распространенными. В конце следует отметить то, что если по определенным причинам загрузочная область винчестера повреждена или удалена системная папка операционной системы, что также встречается достаточно часто, обычно ни один из вышеприведенных вариантов не помогает. Таким образом, останется или выполнять тестирование жесткого диска, или переустанавливать операционную систему заново.
В статье даны ответы на вопросы: Windows Boot Manager: что это? Рассмотрены главные понятия, ошибки и способы их исправления. Возможно, этот материал станет полезен для большого числа пользователей, которые извлекут для себя ценный урок, способный пригодиться в жизни при использовании компьютера.
Установить программу rEFInd у меня получилось с третьей попытки. Сперва почитал посты других авторов на компьютерную тематику. Понял, что практически везде идёт копирование материала, всё размазано и сыро. В итоге ничего не получилось. Спустя пол года вспомнил про красивый Boot Manager и начал присматриваться к
официальному проекту (). Но читал через строчку и не внимательно, в итоге 2:0 в пользу программного обеспечения. Прошло ещё эNое количество времени и услышав песню Аргентина — Ямайка 5:0, почему-то стало стыдно за Ямайку свои извилины. Ну что, совсем тупарь что ль:). Выделил время для более скрупулёзного изучения материала и понял, установить менеджер загрузки для UEFI — легкотня и история предыдущих поражений, результат плохих тренировок:).
Разговоры говорите, а не щи варите.
Преимущества rEFInd над Диспетчером загрузки Windows и Grub2. На мой скромный взгляд это намного красивее (даже можно забросить фотку своей любимой жены или собачки). Бут-менеджер видит все исполняемые файлы.efi, а значит в одном окне у нас будет Windows, unix-системы (Ubuntu, Gentoo, Fedora, Linux Mint и т.д) и все внешние накопители (загрузочная флешка, мультизагрузочный внешний HDD, оптический диск, MicroSD и т.д). А что это означает? Правильно, теперь что-бы загрузиться с USB-устройства нам не нужно «лезть» в boot menu ноутбукакомпьютера, нервно тыкая F9, F12 или «погружаться» в страшное царство демонов с зловещим названием bios. Утилита управления запоминает ваши последние действия. Если вы входили в Windows 10, значит и в следующий раз вам предложат оказаться в этой системе (20 секунд на раздумье). Последней попыткой была загрузка с мультизагрузочной флешки, загрузитесь с внешнего накопителя, если стрелками на клавиатуре не выберите нужную для вас загрузку, например, в Linux Mint.
Пока не забыл, здесь по колдуйте с темами (). Здесь скачайте «A binary zip file»
(). Туточки инструкции по установке «загрузчика» на Linux, OS X и Windows ().
База знаний.
На ноутбукахкомпьютерах UEFI системным, загрузочным диском является диск ESP. Диск (как правило №2) скрытый, дабы ограничить волшебное Царство-Государство от Татаро-Монгольских нашествий.
Для того чтобы установить rEFInd Boot Manager на компьютер придётся «покопаться» с системным диском.
Предупреждение: Сайт не несёт ответственность за чёрные экраны смерти и траурную музыку по усопшей системе.
Открываем от имени администратора командную строку. Последовательно вводим команды. Если у кого есть более правильные, чёткие команды — напишите в комментариях.
mountvol S: /S
cd..
cd..
xcopy /E refind S:EFIrefind
S:
cd EFIrefind
rename refind.conf-sample refind.conf
bcdedit /set «{bootmgr}» path EFIrefindrefind_x64.efi
bcdedit /set «{bootmgr}» description «rEFInd description»
Измените refind_x64.efi для refind_ia32.efi, если вы на 32-битной версии.
При этом вы понимаете, что папка refind должна лежать в корне диска с основной системой, в нашем случае это Windows 8.1. Не «refind-bin-0.11.0»
, а именно (её место нахождения, внутри папок refind-bin-0.11.0).
Стало быть всё. Сделайте перезагрузку и скрестите пальцы, перед вами новое меню загрузки.
На крайний случай.
Некоторые «близорукие» UEFI, другие директории, не хотят в упор видеть. Поэтому матовый ход лошадью конём, для таких систем существует. В папку BOOT, переносим refind_x64.efi и refind.conf.
В папке Boot, файл bootx64.efi переименуем в bootx642.efi. Файл refind_x64.efi переименуем в bootx64.efi. Как это сделать используя cmd от имени администратора:
mountvol S: /S
cd..
cd..
xcopy 1*.* S:EFIBoot (На (C:) создать папку 1. Закинуть «туды» refind_x64.efi и refind.conf)
S:
cd EFIBoot
rename BOOTx64.efi BOOTx642.efi
rename refind_x64.efi BOOTx64.efi
Но и это ещё не конец истории. Возможно придётся зайти в bios.
Первые версии Windows обходились без загрузчика, т. к. полноценными ОС их можно было назвать лишь условно. По сути это были графические оболочки – программируемые надстройки над MS-DOS. Загрузчик, появившийся в системах на базе технологии NT (Windows 2000 и Win XP) имел название NTLDR и обладал дополнительным конфигурационным файлом boot.ini, в котором перечислялись все загружаемые на машине ОС и указывался порядок их загрузки. Файл boot.ini – это обычный текстовый файл с понятной структурой, легко поддающийся редактированию.
Новый загрузчик Windows получила с выходом версии Vista. Он получил название «Windows boot manager» и имеет одну интересную особенность – прописывает информацию о себе в разделе загрузки Bios. Выглядит эта информация как указание на имя самого сервиса и имя раздела, из которого загружается операционная система. Примерно так, как это показано на рисунке ниже:
Как обычно, при старте компьютера BIOS читает эти сведения и формирует меню выбора операционной системы, которое и предъявляется в конечном счете пользователю. После целого ряда переустановок ОС типа Windows этот перечень захламляется, и разобраться в том, какая из систем соответствует конкретной строчке меню запуска, становится затруднительно.
Кроме того, длинный перечень неиспользуемых ОС выглядит крайне неэстетично и раздражает самим своим присутствием. В XP и Win 2000 данная проблема решалась очень просто: вы открывали файл boot.ini в блокноте и удаляли ненужные строчки. После сохранения правки из загрузочного меню исчезали пункты, соответствующие удаленным записям.
Можно было поступить иначе: воспользоваться системными инструментами редактирования перечня загрузки, но оба эти варианта совершенно равноценны и сводятся к корректировкам указанного файла.
В старших версиях Windows файл Boot.ini отсутствует. И нам, очевидно, придется иметь дело с БИОС, так как именно там содержатся записи, аналогичные тем, что ранее писались в файл. Как откорректировать этот список?
BCD и его параметры
Если покопаться в недрах файловой системы старших версий Виндовс, то можно обнаружить скрытый небольшой раздел с наличествующей в нем папкой Boot. Именно тут и располагается так называемое хранилище данных конфигурации загрузки, представленное файлом с именем BCD. В отличие от boot.ini этот файл не допускает прямого редактирования вручную.
Для управления данными, в нем содержащимися, используется интерфейс командной строки. Но прежде чем начинать вводить в консоль команды, нужно хотя бы в первом приближении ознакомиться со структурой хранилища.
На каждый пункт загрузки приходится отдельная запись BCD, содержащая поля следующего назначения (опишем только значимые для нас параметры):
- Идентификатор (ID) пункта – индивидуальный номер в формате GUID, который однозначно идентифицирует каждую установленную на диске ОС.
- Раздел жесткого диска, с которого запускается Виндовс (параметр device).
- Относительный путь к загрузчику (параметр path).
- Название пункта меню, видное пользователю при старте компьютера (параметр description).
- Язык, используемый меню (параметр locale).
- Идентификатор ОС загружаемой по умолчанию (параметр default).
- Порядок строки в меню (параметр displayorder).
- Таймаут ожидания выбора пользователя (параметр timeout).
Чтобы не просматривать записи хранилища на экране консоли, можно организовать их просмотр в более комфортных условиях. Для этого нужно ввести команду вроде BCDEDIT > C:bcd.txt, чтобы перенаправить вывод в документ текстового типа, и затем просматривать его содержимое любым редактором. Учтите, отредактировать BCD в текстовом редакторе нельзя!
Редактируем BCD в консоли
Теперь посмотрим, как можно удалить запись из BCD, не трогая все остальные. Это часто встречающаяся задача: допустим, мы не пользуемся больше ОС размещенной на каком-нибудь конкретном разделе (она может быть даже повреждена), при этом запись о ней в хранилище остается, а значит, в загрузочном меню остается соответствующая ей строчка. Такая же примерно информация остается и в BIOS компьютера. Если мы введем команду: bcdedit ID, где ID – идентификатор удаляемой винды, то все эти сведения пропадут. Мы не увидим их больше ни в меню, ни в БИОС, а это именно то, чего мы и добиваемся. Пример такой команды.
КДПВ. Бут-менеджер 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 папок.
В самих папках лежат исполняемые файлы .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.
По факту GRUB можно вообще не трогать, потому что он наверняка так и лежит в папке EFI/<название дистрибутива>, нужно восставить лишь запись и поставить её первым приоритетом, но зачем что-то копать если можно chroot’нуться и ввести grub-install
? В большинстве случаев он сделает всё сам.
Кстати, стоит не забывать, что базовым функционалом efibootmgr
обладает и сам, собственно, BIOS, он умеет читать эти записи и выстраивать приоритеты. Но сам просматривать ESP-разделы и добавлять новые записи он не умеет, эти обязанности возложены на EFI Shell и операционные системы.
И на последок: Все ваши действия в efibootmgr
записываются в NVRAM! В большинстве случае BIOS умеет восстанавливать битый NVRAM каждый раз проверяя его и перезаписывая, в случая неполадок. Однако некоторые недобросовестные производители выпускают сырые прошивки и можно получить самый настоящий кирпич. К примеру ноутбуки с BIOS на базе Phoenix SCT окирпичиваются! Так что перед тем как продолжить читать, удостоверьтесь, что ваша модель материнской карты или ноутбука, устойчива к таким экспериментам.
P.S. Уже после написания большей части статьи я вспомнил про Secure Boot. Обычно UEFI тянет его за собой, но в большинстве случаев его можно весьма просто отключить в настройках BIOS. Многие 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, в ней как раз лежит всё добро для начала загрузки, которое должен увидеть наш BIOS. Поэтому простого форматирования и копирования в большинстве случаев хватает для большинства ПК.
Однако я предпочитаю второй способ с использованием утилиты Rufus. Он меня никогда не подводил. Однако это Windows-only способ. На Linux-системах использование ddresque для создания загрузочной флешки Windows НЕ РАБОТАЕТ. Так что пробуйте другие утилиты, если первый способ с простым форматирование не помог.
Всё что вам будет нужно: выбрать вашу флешку, выставить параметр «Схема раздела и тип системного интерфейса» на «GPT для компьютеров с UEFI», и нажать старт. Остальные параметры трогать не нужно. Лучше использовать флешки помельче (на 8-16 гигабайт).
Наверняка один из способов должен был прокатить, лично я ни разу с проблемами на этом этапе не встречался, главное чтобы компьютер поддерживал UEFI.
Поэтому перейдем к этапу установки
После загрузки в UEFI-режиме делаем всё по стандартной схеме, но на этапе выбора типа установки выбираем «экспертную», то есть мы разметим раздел сами. Размечать рекомендую аккуратно, особенно если дисков много. Наконец, выбрав диск, удалите все существующие разделы. Создайте один раздел с нужным вам размером, к примеру, 150 гигабайт. (Если вы предпочитаете создавать два и более разделов для ОС и файлов — без проблем, создавайте). Выберете этот раздел кликом мышки и нажмите «Далее». И если вы всё сделали верно, то Windows попросит вас создать дополнительные. Обязательно отвечайте «Да». Система создаст три раздела. Два своих для системных нужд и один тот самый нужный нам EFI-раздел. У меня он по нумерации всегда второй, всего получится 4 раздела, включая пользовательский NTFS. Если установщик не предложил создать разделы или создал всего один, то значит вы загрузились в Legacy-режиме и нужно перезаписывать флешку, что-то пошло не так. К сожалению редактор разделов Windows-установщика крайне слаб по возможностям, поэтому пробовать размечать разделы под будущий Linux тут смысла нет, оставляем это место попросту свободным. Дальше устанавливаем всё в штатном режиме.
Кстати, один из признаков правильной установки Windows в UEFI-режиме, появление логотипа производителя материнской карты / ноутбука / планшета при загрузке. Во многих BIOS (к примеру от 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, нынешний форк такой узкой специализации не имеет и подходит практически для любых конфигураций.
Стоит сразу заметить, что 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
Теперь можно ставить тему.
Некоторые BIOS другие директории вовсе не видят. Поэтому небольшой 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 EFIMicrosoftBootbootmgr.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
.
На последок небольшое видео от меня:
Наверняка закралось приличное количество ошибок в тексте, буду рад, если вы отпишите о них мне ЛС.
Автор: grozaman
Источник
rEFInd — это новый загрузчик операционных систем с современным красивым интерфейсом для UEFI. Он может работать только с UEFI, но позволяет загружать как Grub, Windows, так и ядро Linux напрямую. Это значит, что вы можете полностью отказаться от Grub и ускорить загрузку вашей системы.
В сегодняшней статье мы рассмотрим как выполняется установка rEFInd в Linux на примере дистрибутива Ubuntu. Несмотря на то, что инструкция ориентирована на этот дистрибутив, скорее всего она будет работать и в других основанных на Debian системах. Обратите внимание, что загрузчик можно установить только в системе с поддержкой UEFI.
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. Вам только надо подтвердить это действие:
Если вы на этом этапе нажали нет, то потом вам надо будет дополнительно выполнить такую команду для установки:
sudo refind-install
2. Приоритет загрузки
После того, как загрузчик установлен надо установить его на первое место в списке загрузчиков UEFI. Для этого можно воспользоваться BIOS или утилитой efibootmgr. Для просмотра текущего списка загрузчиков и их приоритета выполните:
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.
Посмотреть все папки можно командой:
ls /boot/efi/EFI
Например, в данном случае это папка EFI/ubuntu:
sudo vi /boot/efi/EFI/refind/refind.conf
dont_scan_dirs ESP:/EFI/boot,EFI/Dell,EFI/memtest86,EFI/ubuntu
Сохраните изменения и перезагрузите компьютер. Дополнительного пункта с Grub больше не будет. Для того чтобы убрать дополнительные опции загрузки вроде Fallback Loader и другие следует добавить в эту переменную также папку EFI/BOOT.
4. Удаление Grub
Если вы все же решились полностью удалить Grub из системы, то сначала выполните команду:
sudo apt purge grub
Удалите папку с файлами Grub на разделе ESP:
sudo rm -Rf /boot/efi/EFI/ubuntu
Затем загрузите пакет-заглушку с официального сайта rEFInd:
wget http://www.rodsbooks.com/refind/grub-pc_3.0-1_all.deb
И установите его:
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 ~/Downloads/refind_chalkboard_by_aliciatransmuted_dclswzw/rEFInd-chalkboard /boot/efi/EFI/refind/themes
Затем надо активировать тему. Для этого откройте файл /boot/efi/EFI/refind/refind.conf и добавьте в конец строчку импорта файла настроек темы. Например:
sudo vi /boot/efi/EFI/refind/refind.conf
include themes/rEFInd-chalkboard/theme.conf
Обратите внимание, что тему обязательно скидывать именно в папку themes иначе она работать не будет. После этого можно перезагрузить компьютер:
Выводы
Теперь вы знаете как выполняется установка rEFInd Boot Manager. Как видите, это не намного сложнее чем установить Grub. А каким загрузчиком пользуетесь вы? Напишите в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
rEFInd is a UEFI boot manager capable of launching EFISTUB kernels. It is a fork of the no-longer-maintained rEFIt and fixes many issues with respect to non-Mac UEFI booting. It is designed to be platform-neutral and to simplify booting multiple operating systems.
Note: In the entire article esp
denotes the mountpoint of the EFI system partition.
Installation
Install the refind package.
Installing the rEFInd Boot Manager
rEFInd ships with UEFI drivers that implement read-only support for ReiserFS, Ext2, Ext4, Btrfs, ISO-9660 and HFS+. Additionally rEFInd can access any file system that UEFI itself can, that includes FAT (as mandated by the UEFI specification), HFS+ on Macs and ISO-9660 on some systems.
To find additional drivers see The rEFInd Boot Manager: Using EFI Drivers: Finding Additional EFI Drivers.
To use the rEFInd, you must install it to the EFI system partition either using the refind-install script or by copying the files and setting up the boot entry manually.
Warning: Your kernel and initramfs must reside on a file system that rEFInd can read.
Installation with refind-install script
The rEFInd package includes the refind-install script to simplify the process of setting rEFInd as your default EFI boot entry. The script has several options for handling differing setups and UEFI implementations. See refind-install(8) or read the comments in the install script for explanations of the various installation options.
For many systems it should be sufficient to simply run:
# refind-install
This will attempt to find and mount your ESP, copy rEFInd files to esp/EFI/refind/
, and use efibootmgr to make rEFInd the default EFI boot application.
Alternatively you can install rEFInd to the default/fallback boot path esp/EFI/BOOT/bootx64.efi
. This is helpful for bootable USB flash drives or on systems that have issues with the NVRAM changes made by efibootmgr:
# refind-install --usedefault /dev/sdXY
Where /dev/sdXY
is your EFI system partition (the block device, not its mountpoint).
Tip: By default refind-install
installs only the driver for the file system on which kernel resides. Additional file systems need to be installed manually by copying them from /usr/share/refind/drivers_x64/
to esp/EFI/refind/drivers_x64/
, or you can install all drivers with the --alldrivers
option. This is useful for bootable USB flash drives.
After installing rEFInd’s files to the ESP, verify that rEFInd has created refind_linux.conf
containing kernel parameters in the same directory as your kernel. This configuration file will not be created if you used the --usedefault
option, run mkrlconf
as root to create it.
Warning: When refind-install
is run in chroot (e.g. in live system when installing Arch Linux) /boot/refind_linux.conf
is populated with kernel options from the live system not the one on which it is installed. Edit /boot/refind_linux.conf
and make sure the kernel parameters in it are correct for your system, otherwise you could get a kernel panic on your next boot. See #refind_linux.conf for an example file.
By default, rEFInd will scan all of your drives (that it has drivers for) and add a boot entry for each EFI bootloader it finds, which should include your kernel (since Arch enables EFISTUB by default). So you may have a bootable system at this point.
Secure Boot
See Managing Secure Boot for Secure Boot support in rEFInd.
Using PreLoader
See Secure Boot#Set up PreLoader to acquire signed PreLoader.efi
and HashTool.efi
binaries.
Execute refind-install
with the option --preloader /path/to/preloader
# refind-install --preloader /usr/share/preloader-signed/PreLoader.efi
Next time you boot with Secure Boot enabled, HashTool will launch and you will need to enroll the hash of rEFInd (loader.efi
), rEFInd’s drivers (e.g. ext4_x64.efi
) and kernel (e.g. vmlinuz-linux
).
See refind-install(8) for more information.
Tip: The signed HashTool is only capable of accessing the partition it was launched from. This means if your kernel is not on the ESP, you will not be able to enroll its hash from HashTool. You can workaround this by using #KeyTool, since it is capable of enrolling a hash in MokList and is not limited to one partition. Remember to enroll KeyTool’s hash before using it.
Using shim
Warning: Since version 15.3, EFI binaries without a valid .sbat
section would not be launched by shim. This has not been supported by rEFInd yet. Please see the SBAT documentation and the discussion about rEFInd for details.
Install shim-signedAUR. Read Secure Boot#shim, but skip all file copying.
Using hashes
To use only hashes with shim, execute refind-install
with the option --shim /path/to/shim
# refind-install --shim /usr/share/shim-signed/shimx64.efi
Next time you boot with Secure Boot enabled, MokManager will launch and you will need to enroll the hash of rEFInd (grubx64.efi
), rEFInd’s drivers (e.g. ext4_x64.efi
) and kernel (e.g. vmlinuz-linux
).
Using Machine Owner Key
To sign rEFInd with a Machine Owner Key (MOK), install sbsigntools.
Tip: If you already have created a MOK, place the files in the directory /etc/refind.d/keys
with the names refind_local.key
(PEM format private key), refind_local.crt
(PEM format certificate) and refind_local.cer
(DER format certificate).
Execute refind-install
with the options --shim /path/to/shim
and --localkeys
:
# refind-install --shim /usr/share/shim-signed/shimx64.efi --localkeys
refind-install will create the keys for you and sign itself and its drivers. You will need to sign the kernel with the same key, e.g.:
# sbsign --key /etc/refind.d/keys/refind_local.key --cert /etc/refind.d/keys/refind_local.crt --output /boot/vmlinuz-linux /boot/vmlinuz-linux
Once in MokManager add refind_local.cer
to MoKList. refind_local.cer
can be found inside a directory called keys
in the rEFInd’s installation directory, e.g. esp/EFI/refind/keys/refind_local.cer
.
See refind-install(8) for more information.
Using your own keys
Follow Secure Boot#Using your own keys to create keys.
Create directory /etc/refind.d/keys
and place Signature Database (db) key and certificates in it. Name the files: refind_local.key
(PEM format private key), refind_local.crt
(PEM format certificate) and refind_local.cer
(DER format certificate).
When running install script add option --localkeys
, e.g.:
# refind-install --localkeys
rEFInd EFI binaries will be signed with the supplied key and certificate.
Manual installation
If the refind-install
script does not work for you, rEFInd can be set up manually.
First, copy the executable to the ESP:
# mkdir -p esp/EFI/refind # cp /usr/share/refind/refind_x64.efi esp/EFI/refind/
If you want to install rEFInd to the default/fallback boot path replace esp/EFI/refind/
with esp/EFI/BOOT/
in the following instructions and copy rEFInd EFI executable to esp/EFI/BOOT/bootx64.efi
:
# mkdir -p esp/EFI/BOOT # cp /usr/share/refind/refind_x64.efi esp/EFI/BOOT/bootx64.efi
Then use efibootmgr to create a boot entry in the UEFI NVRAM, where /dev/sdX
and Y
are the device and partition number of your EFI system partition. If you are installing rEFInd to the default/fallback boot path esp/EFI/BOOT/bootx64.efi
, you can skip this step.
# efibootmgr --create --disk /dev/sdX --part Y --loader /EFI/refind/refind_x64.efi --label "rEFInd Boot Manager" --unicode
At this point, you should be able to reboot into rEFInd, but it will not be able to boot your kernel. If your kernel does not reside on your ESP, rEFInd can mount your partitions to find it — provided it has the right drivers.
rEFInd automatically loads all drivers from the subdirectories drivers
and drivers_arch
(e.g. drivers_x64
) in its install directory.
# mkdir esp/EFI/refind/drivers_x64 # cp /usr/share/refind/drivers_x64/drivername_x64.efi esp/EFI/refind/drivers_x64/
Now rEFInd should have a boot entry for your kernel, but it will not pass the correct kernel parameters. Set up #Passing kernel parameters. You should now be able to boot your kernel using rEFInd. If you are still unable to boot or if you want to tweak rEFInd’s settings, many options can be changed with a configuration file:
# cp /usr/share/refind/refind.conf-sample esp/EFI/refind/refind.conf
The sample configuration file is well commented and self-explanatory.
Unless you have set textonly
in the configuration file, you should copy rEFInd’s icons to get rid of the ugly placeholders:
# cp -r /usr/share/refind/icons esp/EFI/refind/
You can try out different fonts by copying them and changing the font
setting in refind.conf
:
# cp -r /usr/share/refind/fonts esp/EFI/refind/
Tip: Pressing F10
in rEFInd will save a screenshot to the top level directory of the ESP.
Upgrading
Pacman updates the rEFInd files in /usr/share/refind/
and will not copy new files to the ESP for you. If refind-install
worked for your original installation of rEFInd, you can rerun it to copy the updated files. The new configuration file will be copied as refind.conf-sample
so that you can integrate changes into your existing configuration file using a diff tool. If your rEFInd required #Manual installation, you will need to figure out which files to copy yourself.
Pacman hook
You can automate the update process using a pacman hook:
/etc/pacman.d/hooks/refind.hook
[Trigger] Operation=Upgrade Type=Package Target=refind [Action] Description = Updating rEFInd on ESP When=PostTransaction Exec=/usr/bin/refind-install
Where the Exec=
may need to be changed to the correct update command for your setup. If you did #Manual installation, you could create your own update script to call with the hook.
Tip: If you setup rEFInd with #Secure Boot, in addition to adding --localkeys
, you may also want to add the option --yes
to the refind-install
command. It will prevent the command from failing if it gets executed when Secure Boot is disabled. See refind-install(8) for more information.
Note: If the ESP is not mounted to /boot
and you rely on automounting to mount it, make sure to preload the vfat
module as instructed in EFI system partition#Alternative mount points. Otherwise, if refind is upgraded together with the kernel, the ESP will become inaccessible.
Configuration
The rEFInd configuration refind.conf
is located in the same directory as the rEFInd EFI application (usually esp/EFI/refind
or esp/EFI/BOOT
). The default configuration file contains extensive comments explaining all its options, see Configuring the Boot Manager for more detailed explanations.
Passing kernel parameters
There are two methods for setting the kernel parameters that rEFInd will pass to the kernel.
For kernels automatically detected by rEFInd
For automatically detected kernels you can either specify the kernel parameters explicitly in /boot/refind_linux.conf
or rely on rEFInd’s ability to identify the root partition and kernel parameters. See Methods of Booting Linux: For Those With Foresight or Luck: The Easiest Method for more information.
Tip:
- rEFInd will automatically choose the Arch Linux icon (
os_arch.png
) for the boot entry when/etc/os-release
is on the same partition as the kernel. If your/boot
is a separate partition see Configuring the Boot Manager: Setting OS Icons. - rEFInd does not support detecting the distribution of unified kernel images. To have a icon for a unified kernel image, copy
/usr/share/refind/icons/os_arch.png
toesp/EFI/Linux/
and make sure the file names match. E.g., if you haveesp/EFI/Linux/Arch-linux.efi
, then name the icon—esp/EFI/Linux/Arch-linux.png
.
For rEFInd to support the naming scheme of Arch Linux kernels and thus allow matching them with their respective initramfs images, you must uncomment and edit extra_kernel_version_strings
option in refind.conf
. E.g.:
esp/EFI/refind/refind.conf
... extra_kernel_version_strings linux-hardened,linux-zen,linux-lts,linux ...
Note:
- rEFInd only supports detecting one initramfs image per kernel, meaning it will not detect fallback initramfs nor microcode images. They must be specified manually.
- Without the above
extra_kernel_version_strings
line, the%v
variable inrefind_linux.conf
will not work for Arch Linux kernels.
refind_linux.conf
If rEFInd automatically detects your kernel, you can place a refind_linux.conf
file containing the kernel parameters in the same directory as your kernel. You can use /usr/share/refind/refind_linux.conf-sample
as a starting point. The first uncommented line of refind_linux.conf
will be the default parameters for the kernel. Subsequent lines will create entries in a submenu accessible using +
, F2
, or Insert
.
Alternatively, try running mkrlconf
as root. It will attempt to find your kernel in /boot
and automatically generate refind_linux.conf
. The script will only set up the most basic kernel parameters, so be sure to check the file it created for correctness.
If you do not specify an initrd=
parameter, rEFInd will automatically add it by searching for common RAM disk filenames in the same directory as the kernel. If you need multiple initrd=
parameters, you must specify them manually in refind_linux.conf
. For example, a microcode passed before the initramfs:
/boot/refind_linux.conf
"Boot using default options" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw add_efi_memmap initrd=bootintel-ucode.img initrd=bootamd-ucode.img initrd=bootinitramfs-%v.img" "Boot using fallback initramfs" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw add_efi_memmap initrd=bootintel-ucode.img initrd=bootamd-ucode.img initrd=bootinitramfs-%v-fallback.img" "Boot to terminal" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw add_efi_memmap initrd=bootintel-ucode.img initrd=bootamd-ucode.img initrd=bootinitramfs-%v.img systemd.unit=multi-user.target"
Warning:
initrd
path is relative to the root of the file system on which the kernel resides. This could beinitrd=bootinitramfs-%v.img
or, if/boot
is a separate partition (e.g. the ESP),initrd=initramfs-%v.img
.- Use backslashes (
) as path separators in the
initrd
parameter, otherwise the kernel may fail to find the initramfs image(s):EFI stub: ERROR: Failed to open file: /boot/intel-ucode.img
. - If using Booster generated initramfs images, replace
initramfs
withbooster
in the initramfs files name. E.g.initrd=bootbooster-%v.img
.
Note:
- Quotes are escaped by repetition (i.e.
""
is the escaped version of"
). For example, to pass the option"acpi_osi=Windows 2015"
to the first boot entry of the aboverefind_linux.conf
:"Boot using default options" "... initrd=bootinitramfs-%v.img ""acpi_osi=Windows 2015"" "
- rEFInd replaces
%v
inrefind_linux.conf
with the kernel’s version (by extracting it from the file name). For rEFInd to support Arch Linux kernels, theextra_kernel_version_strings
inesp/EFI/refind/refind.conf
must be edited as instructed in #For kernels automatically detected by rEFInd.
Without configuration
If you merely install rEFInd onto the ESP and launch it without any further ado (say via UEFI shell or KeyTool, or directly from firmware) you still get a menu to boot from via autodetection, with no configuration required whatsoever.
This works because rEFInd has a fallback mechanism that can:
- Identify the root partition (for
root=
parameter ) via the Discoverable Partitions Specification or/etc/fstab
. - Detect kernel options (
ro
orrw
) from GPT partition attributes (using attribute60
«read-only») or/etc/fstab
.
Note: rEFInd does not support escape codes (e.g. for spaces) in /etc/fstab
.
For manual boot stanzas
If your kernel is not autodetected, or if you simply want more control over the options for a menu entry, you can manually create boot entries using stanzas in refind.conf
. Ensure that scanfor
includes manual
or these entries will not appear in rEFInd’s menu. Kernel parameters are set with the options
keyword. rEFInd will append the initrd=
parameter using the file specified by the initrd
keyword in the stanza. If you need additional initrds (e.g. for Microcode), you can specify them in options
(and the one specified by the initrd
keyword will be added to the end).
Manual boot stanzas are explained in Creating Manual Boot Stanzas.
esp/EFI/refind/refind.conf
... menuentry "Arch Linux" { icon /EFI/refind/icons/os_arch.png volume "Arch Linux" loader /boot/vmlinuz-linux initrd /boot/initramfs-linux.img options "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw add_efi_memmap initrd=bootintel-ucode.img initrd=bootamd-ucode.img" submenuentry "Boot using fallback initramfs" { initrd /boot/initramfs-linux-fallback.img } submenuentry "Boot to terminal" { add_options "systemd.unit=multi-user.target" } }
It is likely that you will need to change volume
to match either a filesystem’s LABEL, a PARTLABEL, or a PARTUUID of the partition where the kernel image resides. The PARTUUID needs to be in uppercase. See Persistent block device naming#by-label for examples of assigning a volume label. If volume
is not specified it defaults to volume from which rEFInd was launched (typically EFI system partition).
Warning:
loader
andinitrd
paths are relative to the root ofvolume
. If/boot
is a separate partition (e.g. the ESP), the loader and initrd paths would be/vmlinuz-linux
and/initramfs-linux.img
, respectively.- Use backslashes (
) as path separators in all quoted
initrd
parameters, otherwise the kernel may fail to find the initramfs image(s):EFI stub: ERROR: Failed to open file: /boot/initramfs-linux.img
. - If using Booster generated initramfs images, replace
initramfs
withbooster
in the initramfs files name. E.g.initrd /boot/booster-linux.img
.
Note: Quotes are escaped by repetition (i.e. ""
is the escaped version of "
). For example, to pass the option "acpi_osi=Windows 2015"
to the above boot entry "Arch Linux"
:
options "... initrd=bootamd-ucode.img ""acpi_osi=Windows 2015"" "
Installation alongside an existing UEFI Windows installation
rEFInd is compatible with the EFI system partition created by a UEFI Windows installation, so there is no need to create or format another FAT32 partition when installing Arch alongside Windows. Simply mount the existing ESP and install rEFInd as usual. By default, rEFInd’s autodetection feature should recognize any existing Windows/recovery bootloaders.
Note: In some cases, Windows behaves differently (low resolution boot screen, OEM logo replaced by Windows logo, black screen after boot screen, artifacting). If you face such issues, try setting use_graphics_for +,windows
in esp/EFI/refind/refind.conf
or adding graphics on
to the Windows boot stanza.
Tools
rEFInd supports running various 3rd-party tools. Tools need to be installed separately. Edit showtools
in refind.conf
to choose which ones to show.
esp/EFI/refind/refind.conf
... showtools shell, memtest, mok_tool, gdisk, fwupdate ... ...
UEFI shell
See Unified Extensible Firmware Interface#UEFI Shell.
Copy shellx64.efi
to the root of the EFI system partition.
Memtest86+
Install memtest86+-efi and copy it to esp/EFI/tools/
.
# cp /boot/memtest86+/memtest.efi esp/EFI/tools/memtest86.efi
Key management tools
rEFInd can detect Secure Boot key management tools if they are placed in rEFInd’s directory on ESP, esp/
or esp/EFI/tools/
.
HashTool
Follow #Using PreLoader and HashTool.efi
will be placed in rEFInd’s directory.
MokManager
Follow #Using shim and MokManager will be placed in rEFInd’s directory.
KeyTool
Install efitools.
Place KeyTool EFI binary in esp/
or esp/EFI/tools/
with the name KeyTool.efi
or KeyTool-signed.efi
.
See Secure Boot#Using KeyTool for instructions on signing KeyTool.efi
.
GPT fdisk (gdisk)
Download the gdisk EFI application and copy gdisk_x64.efi
to esp/EFI/tools/
.
fwupd
Install fwupd-efi and setup fwupd.
Copy the fwupdx64.efi
binary and firmware file to esp/EFI/tools/
:
# cp /usr/lib/fwupd/efi/fwupdx64.efi esp/EFI/tools/
Poweroff or reboot
rEFInd reportedly have poweroff and reboot menu entries built in. Since this list of tools is the most extensive of its kind in this wiki, users of UEFI shell, or other UEFI boot managers, such as systemd-boot, might be interested in powerofforreboot.efiAUR.
Tips and tricks
Using drivers in UEFI shell
To use rEFInd’s drivers in UEFI shell load them using command load
and refresh mapped drives with map -r
.
Shell> load FS0:EFIrefinddriversext4_x64.efi Shell> map -r
Now you can access your file system from UEFI shell.
Setting efifb resolution
This article or section needs expansion.
Reason: It should be possible to simply rely on resolution max
. (Discuss in Talk:REFInd)
If the resolution in refind.conf
is set to an incorrect value, on all systems except Apple Macs rEFInd will display a list of supported resolutions. For Apple Macs it will silently use the default resolution.
To determine framebuffer resolutions supported by efifb, copy /usr/share/gnu-efi/apps/x86_64/modelist.efi
from gnu-efi to the root of ESP. Enter the UEFI shell and run modelist.efi
.
Shell> FS0:modelist.efi
GOP reports MaxMode 3 0: 640x480 BGRR pitch 640 *1: 800x600 BGRR pitch 800 2: 1024x768 BGRR pitch 1024
Set one in refind.conf
. Reboot and check if settings has been applied by running dmesg | grep efifb
as root.
Btrfs subvolume support
Tip: make sure btrfs_x64.efi
driver is installed, it can be installed manually by copying from /usr/share/refind/drivers_x64/btrfs_x64.efi
to esp/EFI/refind/drivers_x64/btrfs_x64.efi
, or you can install all drivers with the refind-install /dev/sdx --alldrivers
option.
Warning: btrfs_x64.efi
does not support raid1c3/4
.
Auto detection
To allow kernel auto detection on a Btrfs subvolume uncomment and edit also_scan_dirs
in refind.conf
.
esp/EFI/refind/refind.conf
... also_scan_dirs +,subvolume/boot ...
Next add subvol=subvolume
to rootflags
in refind_linux.conf
and then prepend subvolume
to the initrd path.
/boot/refind_linux.conf
"Boot using standard options" "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=subvolume initrd=subvolumebootinitramfs-%v.img"
Manual boot stanza
If booting a btrfs subvolume as root, prepend the path to the subvolume to the loader and initrd paths, and amend the options
line with rootflags=subvol=root_subvolume
. In the example below, root has been mounted as a btrfs subvolume called ‘ROOT’ (e.g. mount -o subvol=ROOT /dev/sdxY /mnt
):
esp/EFI/refind/refind.conf
... menuentry "Arch Linux" { icon /EFI/refind/icons/os_arch.png volume "[bootdevice]" loader /ROOT/boot/vmlinuz-linux initrd /ROOT/boot/initramfs-linux.img options "root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw rootflags=subvol=ROOT" ... }
A failure to do so will otherwise result in the following error message: ERROR: Root device mounted successfully, but /sbin/init does not exist.
LoaderDevicePartUUID
Since version 0.13.1, rEFInd supports setting the UEFI variable LoaderDevicePartUUID. Enabling this allows systemd-gpt-auto-generator(8) to automount the EFI system partition without needing to specify it in /etc/fstab
. See systemd#GPT partition automounting.
For rEFInd to set LoaderDevicePartUUID
, edit refind.conf
and uncomment write_systemd_vars true
:
esp/EFI/refind/refind.conf
... write_systemd_vars true ...
You can verify if it is set by checking its value with cat /sys/firmware/efi/efivars/LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
or by looking at the state of «Boot loader sets ESP information» in bootclt
output.
Troubleshooting
Apple Macs
mactel-bootAUR is an experimental bless utility for Linux. If that does not work, use bless from within OSX to set rEFInd as the default boot entry:
# bless --setBoot --folder esp/EFI/refind --file esp/EFI/refind/refind_x64.efi
If your drivers_x64
folder contains multiple file system drivers (see #Installing the rEFInd Boot Manager for clarification), this can lead to an improper functioning of rEFInd through a file system driver bug, whereby only a blank screen and with the rEFInd logo is shown (for custom themes, this would be the set background image). To fix this, simply remove all drivers except the one for the file system on which the kernel resides.
Another potential blank screen cause occurs when dual booting with Windows, where rEFInd is unsuccessful in auto-scanning the EFI system partitions on other disks. To remedy this, use blkid to identify Windows partitions, and add the PARTUUID of each Windows partition as a comma-separated entry to the variable dont_scan_volumes
in refind.conf
. For example:
# blkid
/dev/nvme0n1p1: LABEL="SYSTEM" UUID="4CE7-C215" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="13aa9955-1234-5678-9098-006c334b5088" /dev/nvme0n1p5: LABEL="Windows RE Tools" BLOCK_SIZE="512" UUID="08C4E6C5C4E6B45A" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="4eced110-0987-6543-2123-b0ab8576869b"
esp/EFI/refind/refind.conf
... dont_scan_volumes 13aa9955-1234-5678-9098-006c334b5088,4eced110-0987-6543-2123-b0ab8576869b ...
Not using the distribution logo
If you see Tux instead of the Arch Logo, then you might be affected by this issue (your root partition is of type Linux x86-64 root (/) instead of Linux filesystem).
You can fix this using fdisk#Change partition type.
See also
- The rEFInd Boot Manager by Roderick W. Smith.
- Wikipedia:rEFInd
/usr/share/refind/docs/README.txt
- rEFInd discussion forum on Sourceforge
Здравствуйте, друзья, вот я предлагаю вам руководство по установке Refind в Windows 8. Помните, что компьютеры с Windows 8 поставляются с EFI (http://es.wikipedia.org/wiki/Extensible_Firmware_Interface), что, скажем так, не очень дружит с нашими дистрибутивами Linux.
Есть 3 основные причины, по которым вам следует установить Refind в Windows 8 (очевидно, на мой взгляд).
- Не рекомендуется удалять раздел восстановления Windows 8, так как BIOS может быть поврежден, особенно на тех ноутбуках, которые поставляются с «System Rescue (F4). «
- Если вы не хотите стирать Windows 8
- Если вы тратите всю жизнь на изменение загрузочного устройства, установите Refind и забудьте о повторном входе в BIOS для чего-то подобного.
Refind является Менеджер загрузки нравиться GRUB Преимущество заключается в том, что он автоматически определяет «загрузочные» устройства или разделы вашего компьютера при каждой загрузке. http://www.rodsbooks.com/refind/), а это значит, что с его помощью мы можем заставить Windows 8 видеть разделы с Linux.
Индекс
- 1 Манос а ля Обра
- 2 Изменить размер раздела Windows
- 3 Установить Refind
- 4 Рекомендации для новой ОС Linux, которую вы устанавливаете, чтобы использовать Refind только в качестве диспетчера загрузки
Манос а ля Обра
Изменение или изменение записей Booteo всегда сопряжено с риском, и во многих случаях может быть допущена ошибка, которая предотвратить запуск вашей операционной системы (ОС), чтобы избежать возможной потери данных из-за невозможности доступа к вашей ОС, Рекомендуется сделать резервную копию своей информации перед тем, как попробовать это руководство.
Прежде всего, это руководство основано на руководстве для Gentoo (http://wiki.gentoo.org/wiki/UEFI_Dual_boot_with_Windows_7/8), в который внесены определенные изменения.
Изменить размер раздела Windows
Если вы собираетесь установить Linux, вам нужно как минимум место на жестком диске, затем вы можете освободить место для него, используя Диспетчер дисков для этого: нажмите ПОБЕДИТЬ+X а затем на появившейся панели нажмите Управление диском.
После этого щелкните правой кнопкой мыши диск, чтобы установить его размер и выберите Уменьшить объем
Теперь просто выберите пространство, которое вы хотите оставить Windows, чтобы вы могли его использовать (я рекомендую максимум, который вы можете), затем УМЕНЬШИТЬ и готово !!!
Установить Refind
Теперь следующий шаг — установить Refind, для этого мы загружаем следующий файл:
После загрузки разархивируйте его в папку, расположенную по адресу, который легко найти или запомнить.
После загрузки и распаковки файла нажмите ПОБЕДИТЬ+X и мы нажимаем на SКомандная строка (администратор)
После входа в Командная строка вы вводите:
mountvol S: /s
(Предполагая, что нет привода S: если нет, измените S на любую букву)
Теперь перейдите в папку, которую вы разархивировали, refind, чтобы увидеть подкаталоги внутри нее.
dir C:/carpeta/donde/esta/refind
(Советы: как и в Linux, вы можете использовать TAB для автозаполнения)
Уже находясь внутри папки Refind и с возможностью видеть подкаталоги (вы можете сделать dir, и вы должны увидеть файл README среди прочего) вы вводите следующую команду, которая копирует папку refind на новый диск
xcopy /E refind S:EFIrefind
Теперь введите, чтобы ввести диск S: и каталог refind диска S:
S:
cd EFIrefind
В руководстве по установке Refind сказано, что вы можете удалить некоторые драйверы, которые вам не нужны, в папках. драйверы_x64 y водители_ia32 Поскольку ненужные драйверы задерживают запуск системы, рекомендую оставить их все, поскольку задержка минимальная и незаметная. Но если вы все же хотите удалить драйверы, которые вы не будете использовать, вы можете проверить следующую страницу: http://www.rodsbooks.com/refind/drivers.html
Теперь вы должны переименовать файл пример refind.conf a refind.conf вы можете сделать это с помощью следующей команды
rename refind.conf-sample refind.conf
И, наконец, чтобы установить Refind в качестве программы загрузки по умолчанию:
bcdedit /set {bootmgr} path EFIrefindrefind_x64.efi
Эта команда действительна, если ваша система 64-битная, если она 32-битная, вы должны изменить refind_x64.efi a refind_ia32.efi
Теперь при перезапуске должно появиться меню refind для выбора нужной ОС.
Рекомендации для новой ОС Linux, которую вы устанавливаете, чтобы использовать Refind только в качестве диспетчера загрузки
- При установке системы рекомендуется иметь загрузочный раздел (/ boot), который можно отформатировать в EXT2 или FAT.
- Refind автоматически ищет файлы vmlinuz на ваших загрузочных разделах
- Не устанавливайте GRUB или другой менеджер загрузки. Когда вы устанавливаете свою систему linux, создайте файл refind.conf в / Boot и добавьте в него все необходимые параметры для запуска вашей системы. Самыми основными (и необходимыми) являются те, в которых вы указываете, какой раздел является вашим корневым. В моем файле refind.conf есть следующие строки:
"Boot with standard options" "root=/dev/sda7 ro initrd=initramfs-linux.img"
Где / dev / sda7 — мой корневой раздел. - Если вы забыли создать файл refind.conf, нет проблем, в Refind выберите свою ОС и дважды нажмите клавишу F2, чтобы отредактировать (на мгновение) параметры загрузки, и там вы можете добавить строку «Корень = / раздел / корень ро» и после входа в вашу систему вы можете создать файл refind.conf с необходимыми параметрами загрузки.
- Если вы забыли вставить компакт-диск или USB-накопитель до начала перезарядки, это не имеет значения !!! просто вставьте устройство, пока Refind отображается на экране, нажмите кнопку ESC и ваше новое загрузочное устройство появится автоматически.
- Если по какой-то причине вы установили GRUB и он был размещен на Refind, войдите в BIOS и выберите загрузочное устройство, превосходящее Windows, Refind появится снова при следующей перезагрузке.
- Наконец, чтобы у вас был логотип вашей ОС, а не Tux, просто добавьте изображение 128x128p в формате PNG в свой раздел / Boot и назовите его тем же именем, что и образ вашей системы, в моем случае это vmlinuz-linux.png
Для получения дополнительной информации о том, как добавить параметры в refind.conf можно посетить: http://www.rodsbooks.com/refind/configfile.html
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.