• Настройка UEFI Dual Boot системы, приправленной rEFInd. Как сделать загрузку Windows первой в Grub Установка загрузчика grub uefi ubuntu 16.04

    06.01.2022

    Для инициализации ядра и запуска операционной системы Linux используется загрузчик. Это программа, которая запускается после завершения проверки оборудования BIOS, подготавливает оборудование к работе, задает нужные параметры ядра и позволяет выбрать операционную систему. Основная задача загрузчика дать пользователю выбрать операционную систему для загрузки.

    Раньше для загрузки Linux использовалось несколько загрузчиков, это isolinux, lilo, grub. Но сейчас чаще всего применяется Grub или полное его название GRand Unified Bootloader. В этой статье будет рассмотрена установка загрузчика Grub через терминал. Также мы поговорим как установить grub на компьютер с UEFI, тоже вручную.

    Как я уже сказал, основная задача загрузчика - предоставить возможность выбора операционной системы перед загрузкой. Не думайте, что в Windows загрузчик не используется, там он тоже есть и работает, подобно тому, как работает Grub.

    Загрузчик может быть установлен в различные таблицы разделов диска. Сейчас самые используемые это GPT и MBR. Установка загрузчика Grub немного отличается для каждой из этих таблиц, учитывая их особенности. Подробнее об отличиях можно почитать в отдельной статье. Тут же я скажу, что GPT - более новая и функциональная таблица разделов, MBR - уже устаревшая, но до сих пор часто используемая.

    В MBR вариантов немного, Grub записывается в область MBR на диске. Размер сектора MBR занимает первых 512 байт и этого вполне достаточно для того, чтобы установить туда загрузчик.

    GPT предоставляет более широкие возможности. Во-первых, для совместимости в GPT эмулируется сектор MBR, и мы можем установить GRUB туда, но такой вариант очень ненадежный и не рекомендуемый. Во-вторых, теперь появилась возможность устанавливать Grub на раздел диска. Мы просто создаем раздел на диске размером 1 Мб и записываем туда то, что раньше записывалось в MBR, это делает установку загрузчика более надежной и защищенной от сбоев.

    UEFI предоставляет совсем иной способ установки загрузчика. Тут его не нужно никуда записывать, загрузчик - это обычное приложение EFI, которое помещается на раздел EFI и уже там полностью успешно работает наряду с другими приложениями.

    Для установки Grub будет использоваться команда grub-install, во всех случаях. Давайте кратко рассмотрим ее синтаксис и параметры. Синтаксис:

    $ grub-install опции диск

    Параметров здесь достаточно много, но нам будут нужны только некоторые:

    • --compress - сжать файлы загрузчика;
    • --install-modules=модули - установить только эти модули;
    • --modules - записать эти модули в MBR;
    • --boot-directory - использовать другой каталог для файлов Grub;
    • --bootloader-id - имя загрузчика в меню EFI;
    • --core-compress - сжимать образ, загружаемый в MBR;
    • --efi-directory - использовать системный раздел EFI;
    • --force - установить несмотря на ошибки;
    • --recheck - удалить существующую карту устройств, помогает если возникают ошибки;
    • --removable - установка grub на флешку (только EFI);

    Основу разобрали. Теперь перейдем к установке. Дальше я буду предполагать, что все действия выполняются из системы, для которой нужно установить загрузчик или из chroot окружения этой системы.

    Установка загрузчика Grub в MBR для BIOS

    Начнем с самого просто и привычного. Данная инструкция как установить загрузчик Grub подойдет для любого дистрибутива, поскольку команды везде почти одинаковые. Здесь не нужно устанавливать никаких дополнительных пакетов или создавать разделов. Установка Grub на жесткий диск выполняется командой:

    sudo grub-install /dev/sda

    sudo grub2-install /dev/sda

    Утилиты grub в разных дистрибутивах могут включать двойку, а могут и не включать. Здесь /dev/sda - ваш жесткий диск. Теперь генерируем конфигурационный файл, чтобы автоматически определились установленные операционные системы:

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    Готово. По поводу двойки здесь такое же замечание. Если вы хотите установить Grub на флешку в MBR, то тут тоже нет проблем просто примонтируйте флешку и выполните такую команду:

    sudo grub-install --root-directory=/mnt/USB/ /dev/sdb

    Здесь /mnt/USB - папка, куда была смотирована ваша флешка, а /seb/sdb - сама флешка. Только здесь есть одна проблема, конфигурационный файл придется делать вручную.

    Установка загрузчика Grub в GPT для BIOS

    Во-первых, мы можем ничего не менять и установить Grub так, как описано в предыдущем способе. Но тогда он будет установлен в область совместимости с MBR, а это не надежно. Поэтому рекомендуется установить grub так, как описано ниже, на отдельный раздел.

    Нужный нам раздел можно создать в установщике любого дистрибутива, если вы выполняете установку в графическом интерфейсе или с помощью gparted. Нам нужен раздел размером 1 Мегабайт без файловой системы и с меткой grub_bios:

    Готово. Если у вас нет под рукой доступа к графическому интерфейсу, вы можете создать такой раздел через терминал. Утилита fdisk не поддерживает работу с gpt, поэтому будем использовать gfdisk. Сначала запустите утилиту:

    sudo gdisk /dev/sda

    Чтобы создать новый раздел нажмите n и выберите номер раздела:

    Соглашаемся с начальным сектором, будет использован первый же свободный:

    Выбираем конечный сектор раздела. По умолчанию будет использоваться максимальный. Нам нужен раздел размером 1 Мб. Размер одного сектора GPT - 512 байт, поэтому нам нужен раздел размеров 2048 секторов. Таким образом, конечный сектор будет 24000 с чем-то.

    HEX Code - это тот код, который скажет системе, что этот раздел нужно использовать для Grub, нужно установить ef02 :

    Готово, осталось нажать w для записи изменений на диск:

    sudo grub-install /dev/sda

    Осталось создать конфигурационный файл grub:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg

    Теперь переходим к самому сложному, как установить grub efi.

    Установка GRUB UEFI GPT

    Установка Grub UEFI чем-то похожа на установку в GPT, тут у нас тоже будет отдельный раздел, только на этот раз не для загрузчика, а раздел EFI. Если у вас уже установлена Windows, то, скорее всего, он уже существует. Этот раздел обычно занимает 100 Мб, имеет файловую систему fat32 и флаг ESP. Вот так он будет выглядеть:

    Если же такого раздела нет, мы можем его создать с помощью gparted. Для этого создаем раздел с такими параметрами:

    Размер 100 Мегабайт, имя раздела ESP , файловая система fat32 . Дальше примените изменения и установите для раздела флаг ESP :

    То же самое вы можете сделать в Gdisk, только на этот раз нужно устанавливать HEX Code раздела ef00 . После того как раздел был создан, подключаем его к нашей файловой системе:

    sudo mkdir /boot/efi
    $ sudo mount /dev/sda2 /boot/efi

    sudo apt install grub-efi efibootmgr

    grub-install /dev/sda

    Установка Grub efi на MBR все выглядит точно так же, только тут есть несколько ограничений. Раздел ESP нужно создавать только в начале диска. В режиме EFI тоже можно установить GRUB на флешку, и это не очень сложно. Для этого используется команда.

    На сегодняшний день практически все уже слышали про технологию UEFI. Говорить о том, что это такое и зачем оно нужно, я не собираюсь. Сегодня я бы хотел описать простейший сценарий установки Dual Boot системы с полной поддержкой UEFI, а также рассмотреть отдельно установку и настройку бут-менеджера rEFInd. Возможно вы уже видели подобные мануалы и гайды, но я постараюсь донести весьма доходчиво суть того, что мы будем делать и зачем. В других мануалах вы лишь смотрите за «магией» картежника и пытаетесь её повторить, делая, зачастую, элементарные ошибки. Кому эта тема интересна - прошу под кат.

    В целом UEFI призвана наоборот упросить процесс загрузки, а не усложнить его. К примеру, посредством этой технологии компьютер можно загружать ОС и вовсе без прослойки в лице GRUB / LILO / etc, загрузчиком может выступать сама UEFI. Однако этот метод имеет свои недостатки, например, вам придется повозиться после обновления ядра, можно, разумеется, написать скрипт, но в целом этим и занимается grub2-efi

    Итак, давайте сформируем примерный список наших действий, некоторым хватит прочесть его и уже взяться за дело. Собственно тут будет всего четыре пункта. Пятый и шестой пункт опционален.

    1. Запись образа Windows 10 (8/8.1) на диск/флешку.
    2. Установка Windows 10 на часть диска.
    3. Запись образа Linux-дистрибутива с поддержкой EFI (большинство) на диск/флешку.
    4. Установка Linux-дистрибутива на оставшуюся часть диска.
    5. Установка и конфигурация rEFInd.
    6. Удаление GRUB и полный переход на rEFInd.

    На первый взгляд всё очень просто, всего 4 базовых пункта, но тут есть огромное количество нюансов.

    Ошибки делают на всех этапах: входят в режим Legacy-bios, указывают не тот загрузочный раздел, просто не понимают, что делают и т.д. В конечном итоге всё это приводит к массе боли и страданиям на форумах, в чатах, и т.д. На деле же всё нереально просто, нужно просто понимать, что ты делаешь на каждом этапе и проверять себя.

    Сначала немного теории

    UEFI видит только один специальный ESP-раздел, обычно он имеет размер 100-200 мегабайт и форматирован в FAT32 (бывает в FAT16), в нем содержаться папки с названиями а-ля Boot, Microsoft, Fedora, Ubuntu и т.д. Если вы перепробовали достаточное количество ОС и никогда не форматировали этот раздел, то там могло набраться приличное количество папок. К примеру, у меня было 2 живых оси и лежало около 6 папок.

    Включение красивой темы

    С этим всё просто, чуть выше последняя строчка конфига указывает на.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 .

    На последок небольшое видео от меня:


    Наверняка закралось приличное количество ошибок в тексте, буду рад, если вы отпишите о них мне ЛС.

    Задача: Имеется комп с двумя системами: Windows 7 и Ubuntu 14.04
    Необходимо обновить версию винды, до 10 а убунты - до 16.04
    Для начала мне надо было установить лицензионную винду вместо того, что было и обновить ее до последней версии - десятки.
    Образ семерки был скачал с сайта Microsoft, залит на флешку с помощью свободной и бесплатной программы rufus , с этой флешки винда была успешно установлена и потом обновлена до 10-ки.
    Теперь встала задача восстановить GRUB, так как винда, естественно, затерла загрузчик, установив свой, который знать не хочет ни о каких линуксах:) Задача усложнена тем, что современные материнские платы содержат не BIOS, а UEFI - более продвинутую локальную операционную систему. И так, как раньше, тупо в лоб GRUB не установишь.

    Немного погуглив этот вопрос, я нашел решение в виде программы Boot-Repair.
    Она сканирует диски на предмет операционных систем и устанавливает GRUB, с формированием нужного меню и всеми необходимыми настройками.
    Есть два пути работы с этой программой:
    Первый путь - загрузиться с флешки или LiveCD диска убунты, установить и запустить эту программу:
    Открыть терминал (Ctrl+Alt+T), скопировать и выполнить следующие команды:
    sudo add-apt-repository ppa:yannubuntu/boot-repair
    Затем обновить источники:
    sudo apt-get update
    Следующая команда установит Boot-Repair:
    sudo apt-get install -y boot-repair
    После этого программу можно запустить обычным для Ubuntu способом, через системное меню.
    Второй путь - скачать образ диска с этой программой , залить его на флешку или CD, загрузиться с него и восстановить загрузчик. Я выбрал второй вариант, как более практичный. Мало ли, где он еще может понадобиться. Скачал и залил его на флешку тем же rufus -ом.
    Не знаю, как там с LiveCD, но если грузиться с флешки на материнских платах с UEFI, надо грузиться в режиме UEFI, иначе программа откажется восстанавливать GRUB. А вот тут как раз, поджидает возможный подводный камень. Вместо привычного выбора языка и параметров загрузки, на экране видим меню GRUB-а на черном фоне со строкой единственного варианта старта.
    В случае, если грузиться с флешки с Ubuntu, имеем меню с двумя вариантами:
    - Загрузка Ubuntu без инсталляции
    - Инсталляция Ubuntu.
    Во всех этих случаях у меня при выборе любого пункта у меня был черный экран с зависанием. То есть, система не смогла подобрать видеорежим и стала в ступор.
    Решается эта проблема следующим образом: Надо выбрать нужный пункт меню в GRUB-е, нажать клавишу "e", так мы попадаем в редактор строки запуска, затем в конце строки, которая самая длинная, перед "--" надо дописать параметр nomodeset. После этого нажать F10. Система загрузится в упрощенном графическом режиме с английским языком по умолчанию.
    Программа предлагает рекомендуемые параметры работы. В большинстве случаев этого достаточно. Продвинутые пользователи могут в расширенных параметрах выбрать приоритет загрузки операционной системы и время ожидания выбора.
    в процессе нужно выполнить всё, что просит программа. Процесс простой и наглядный. По окончании восстановления вы увидите сообщение, что загрузчик восстановлен, и вы можете перезагрузить компьютер.

    Оригинал: How To Repair Grub Boot Loader On Ubuntu Linux 16.04 /15.10 / 15.04
    Автор: Aun
    Дата публикации: 21 июня 2016 года
    Перевод: А. Кривошей
    Дата перевода: октябрь 2016 г.

    Grub (GRand Unified Bootloader) - загрузчик по умолчанию для большинства систем Linux/Unix. Он позволяет загружать различные операционные системы (вы можете устанавливать несколько систем на свой компьютер), или загружать различные версии ядра, если вы работаете в Linux. При любом повреждении этой программы вы получите сообщения об ошибках в процессе загрузки, и в итоге скорее всего не сможете загрузить свою операционную систему. Как правило, единственным способом восстановления нормальной работы в таком случае является восстановление или переустановка системного загрузчика Grub. При правильных действиях эта процедура позволяет избежать потери данных. Сегодня мы научимся восстанавливать/переустанавливать загрузчик Grub в системе Ubuntu. Описываемые далее действия выполнялись в Ubuntu 16.04, но должны также работать в любых достаточно свежих версиях Ubuntu. Для выполнения нашей задачи мы будем использовать хорошо известную утилиту "Boot Repair".

    Установка Boot Repair в Ubuntu

    Boot Repair чаще всего используется для исправления ошибок, связанных с загрузчиком Grub. Сначала необходимо загрузить компьютер с Live CD/DVD/ USB для Ubuntu (если вы ищете способ воостановления Grub, значит с большой долей вероятности вы уже не можете загрузить свою установленную операционную систему).

    $ sudo add-apt-repository ppa:yannubuntu/boot-repair

    После добавления PPA обновите список пакетов:

    $ sudo apt-get update

    Теперь вы можете установить Boot Repair:

    $ sudo apt-get install -y boot-repair

    После успешного окончания установки запустите Boot Repair из Applications > Boot Repair:

    Использование Boot Repair для исправления ошибок Grub

    После запуска Boot Repair вы увидите стартовое окно программы:

    Самая первая опция (Recommended repair) может исправить ошибки Grub, кликните ее, и она запустит процесс восстановления/переустановки, показанный на скриншоте ниже.

    Согласно инструкциям, приведенным на скриншоте, откройте терминал и выполните следующие три команды:

    После завершения выполнения данных команд кликните “Forward”, чтобы перейти к следующему этапу процесса восстановления. Вот что вы увидите на следующем этапе:

    Согласно инструкциям выполните приведенные ниже три команды в правильном порядке. Во время этого этапа появится окно с запросом подтверждения удаления Grub 2, выберите "Yes".

    $ sudo dpkg --configure -a $ sudo apt-get install -fy $ sudo apt-get install -y --force-yes grub-pc linux-generic

    Кликните “Forward” после завершения процесса, ниже скриншот следующего этапа.

    В соответствии с инструкциями выполните в терминале приведенную ниже команду и по запросу укажите жесткий диск, на который будет установлен grub.

    $ sudo apt-get install -y --force-yes grub-pc linux-generic

    Теперь необходимо подождать пару минут для выполнения необходимых операций, и вы должны увидеть приведенное ниже сообщение:

    Перезагрузите свою систему и вы должны увидеть меню рабочего загрузчика.

    Заключение

    Неработоспособность Grub может быть вызвана различными причинами, особенно если у вас установлено несколько операционных систем, при их обновлении или установке могут возникать различные ошибки. Поэтому полезно иметь под рукой такую отличную и бесплатную программу для решения проблем с загрузчиком.

    Ubuntu, как и многие другие дистрибутивы Linux в качестве загрузчика системы используют GRUB2. Если GRUB2 «ломается», например, если вы установите Windows после установки Ubuntu, либо при перезаписи MBR - загрузить Ubuntu вы не сможете.

    GRUB2 можно запросто починить с помощью Live CD Ubuntu или USB-флешки. Этот процесс отличается от восстановления загрузчика GRUB Legacy на старых дистрибутивах Linux.

    Описанный ниже процесс должен работать со всеми версиями Ubuntu. Он был протестирован на версиях Ubuntu 16.04 и Ubuntu 14.04.

    Способ с использованием графического интерфейса: Boot Repair###

    Boot Repair - приложение с графическим интерфейсом, с помощью которого можно починить GRUB2 всего одним щелчком мыши. Идеальное решение для большинства пользователей.

    Если у вас есть носитель, с которого вы устанавливали Ubuntu, вставьте его в компьютер, выполните перезагрузку и загрузитесь со сменного носителя. Если носителя у вас нет, загрузите Live CD Ubuntu и запишите его на диск или создайте загрузочную USB-флешку .

    При загрузке, нажмите «Попробовать Ubuntu» (Try Ubuntu), чтобы загрузить работоспособное окружение рабочего стола.

    Перед тем как продолжить, убедитесь, что у вас работает подключение к интернету. Возможно, потребуется выбрать сеть Wi-Fi и ввести пароль.

    Откройте терминал из Dash и выполните следующие команды для того, чтобы загрузить и установить Boot Repair :

    Sudo apt-add-repository ppa:yannubuntu/boot-repair sudo apt-get update sudo apt-get install -y boot-repair boot-repair

    Boot Repair автоматически просканирует систему после запуска команды boot-repair . После этого, щелкните кнопку Recommended repair для восстановления GRUB2 .

    Здесь вы также можете выполнить расширенные настройки, однако вики-страница Ubuntu не рекомендует делать этого если вы точно не знаете, за что они отвечают. Рекомендуемый вариант позволяет исправить большинство проблем автоматически, а при выборе неправильных настроек можно только ухудшить ситуацию.

    Boot Repair начнёт работать. Возможно, появится запрос открыть терминал и скопировать/вставить несколько команд.

    Просто следуйте инструкциям на экране. Выполните все инструкции Boot Repair и щёлкните Forward чтобы перейти к следующему экрану. Утилита проведёт вас через все необходимые действия для восстановления.

    После того, как Boot Repair закончит работу, перезагрузите компьютер. Ubuntu должна будет нормально запуститься.

    Способ с использованием терминала

    Если же вы не боитесь «запачкать руки», вы можете починить систему через терминал. Вам потребуется загрузиться с Live CD или USB-флешки, так же, как в способе, описанном выше. Убедитесь, что версия Ubuntu на диске совпадает с версией, установленной на компьютере. Например, если у вас была установлена Ubuntu 14.04, следует использовать Live CD Ubuntu 14.04.

    После загрузки системы откройте терминал. Определите раздел диска, на котором установлена Ubuntu с помощью одной из следующих команд:

    Sudo fdisk -l sudo blkid

    Ниже приводится вывод обеих команд. В случае команды fdisk -l , раздел Ubuntu можно определить по слову Linux в колонке System . В случае использования команды blkid , раздел определяется по использованию файловой системы ext4 .

    Если на компьютере имеется несколько разделов Linux в формате ext4 , обратите внимание на их размер и порядок, в котором они представлены в списке.

    Выполните следующие команды для монтирования раздела Ubuntu в /mnt/ubuntu , заменив /dev/sdX# на имя устройства, на котором установлен ваш раздел Ubuntu, определенный выше:

    Sudo mkdir /mnt/ubuntu sudo mount /dev/sdX# /mnt/ubuntu

    На примере выше раздел Ubuntu находится на /dev/sda1 . Это первый раздел на первом жёстком диске.

    Важно! Если у вас имеется отдельный загрузочный раздел, пропустите команду выше и монтируйте загрузочный раздел в /mnt/ubuntu/boot . Если вы не знаете, есть ли у вас отдельный загрузочный раздел, то скорее всего его нет =).

    Выполните следующую команду для повторной установки GRUB2 с Live CD, заменив /dev/sdX на имя жёсткого диска выше. Не указывайте номер. Например, если выше вы использовали /dev/sda1 , введите просто /dev/sda .

    Sudo grub-install --boot-directory=/mnt/ubuntu/boot /dev/sdX

    Выполните перезагрузку, Ubuntu должна нормально загрузиться.

    Для получения подробной информации о том, как использовать команду chroot для получения доступа к повреждённым системным файлам Ubuntu и восстановления GRUB2, смотрите вики-страницу Ubuntu (на англ. языке).

    Похожие статьи