Как сделать загрузку windows первой в grub

Содержание

Через терминал с загрузочного носителя

Для этого вам потребуется загрузочная флешка либо диск с записанным дистрибутивом Linux. В идеальном варианте он должен быть аналогичным системе, установленной на жёсткий диск. Но если дистрибутив — это не самый важный момент, то разрядность должна совпадать в любом случае. Иначе это чревато ещё большими последствиями, в результате которых уже точно придётся всё переустанавливать.

  1. Вставьте флешку или диск в разъём компьютера, после чего в BIOS выставьте носитель в качестве приоритетного для загрузки. Необходимая настройка находится в разделе Boot Device Priority либо First Boot Device. Чтобы запустить BIOS, при включении нажмите нужную кнопку или их комбинацию на клавиатуре. Наиболее популярными вариантами являются F2, Del, Shift + F2, F10. Чтобы не разбираться с БИОСом, можно просто нажать F11 или F12 и выбрать носитель из предложенного списка.
  2. Далее нужно выяснить, на каком разделе винчестера инсталлирована система, а какой указан в качестве загрузчика. Для этого нужно запустить терминал (аналог командной строки Windows), найдя его в меню приложений либо же нажав комбинацию клавиш Ctrl + Alt + T, либо Alt + F2. В открывшемся окошке вам нужно будет впечатать команду sudo fdisk -l. Сразу же утилита просканирует все разделы диска и отобразит информацию о каждом из них. Будет показана даже информация о других установленных на компьютер операционных системах. Вы сможете узнать название раздела, его расположение, размер, а также тип его файловой системы. При условии, что при установке Ubuntu вы совершали разметку вручную, вы без проблем поймёте, какой из разделов является загрузочным, а какой — корневым. При автоматической разметке ориентируйтесь на название Linux. Именно он и будет корнем вашей системы. Имя раздела обычно состоит из аббревиатуры sdc либо sda и цифры с порядковым номером.
  3. Далее нужно выполнить монтирование корневой файловой системы в папку /mnt. В этом вам поможет команда sudo mount /dev/sda1 /mnt, где вместо sda нужно прописать название вашего раздела.

Начиная с этого этапа, восстанавливать Grub в Linux возможно двумя методами.

Способ 1

  1. Введите команду восстановления загрузчика: sudo Grub-install —root-directory=/mnt /dev/sda.
  2. Перезагрузите Компьютер при помощи команды sudo reboot. В результате должно появиться меню выбора ОС.
  3. Если в этом меню отображается устаревшая информация, обновите загрузочную запись MBR. Для этого запустите Linux в обычном режиме, откройте терминал и используйте команду sudo update-Grub. Если это не помогает, примените sudo update-Grub —output=/mnt/boot/Grub/Grub.cfg, а затем повторите предыдущую.
  4. Ещё раз перезапустите компьютер.

Способ 2.

  1. После монтирования корня файловой системы в раздел /mnt, нужно дополнительно смонтировать папку с загрузочными файлами, а также другие компоненты взаимодействия с ядром. Для этого одну за другой выполните команды:

Далее вам понадобится запустить оболочку chroot. Для этого в терминале добавьте chroot /mnt /bin/bash

Первый параметр обращает внимание на корневой каталог, а второй — на специальную оболочку для преобразования команд юзера.
Далее необходимо применить команды, чтобы попасть в Ubuntu и пользоваться практически всеми её приложениями, кроме сервисов и графического интерфейса:

env-update

source /etc/profile.

  1. Выполните перезагрузку через reboot.

Удаление Grub при восстановлении ОС Windows

Рассмотрим ситуацию, когда пользователю компьютера необходимо удалить операционную систему Линукс вместе с её стандартным загрузчиком, оставив при этом ОС Windows с другой программой. Если в системе используется таблица MBR, то подобные манипуляции выполняются крайне легко.

В Интернете можно встретить распространенную рекомендацию: «Возьмите установочный диск Виндовс и загрузитесь с него в режиме восстановления». А далее предлагается выполнение специальных команд. Они будут указаны ниже.

Первое действие:

bootrec \fixboot

Второе действие:

Стоит отметить тот факт, что данный совет является эффективным и вполне применимым на практике. Однако это не самый быстрый способ восстановления стандартного загрузчика Windows, который понадобится для полноценной работы системы. Чтобы удалить Grub и вернуть «виндовскую» программу, пользователю необходимо воспользоваться специальной утилитой.

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

После этого нужно действовать, следуя простой инструкции:

  1. Запустите программу Bootice на своём компьютере.
  2. Выделите диск, на котором наличествует загрузчик Grub.
  3. Далее нажмите на «Proccess MBR».
  4. В открывшемся окне выберите вариант «Windows NTx …». Скорее всего, он будет находиться в самом низу этого списка.
  5. Затем подтвердите своё решение путем нажатия на кнопку «Install / Config».
  6. Выберите нужную версию MBR на своё усмотрение.

При правильном выполнении указанных действий перед пользователем появится маленькое окошко с подтверждением об удачной замене загрузчика. Нажмите на кнопку «ОК» и выполните перезагрузку вашего устройства. Проверьте, вступили ли изменения в силу.

Как восстановить загрузчик windows 10 после установки ubuntu

Восстановление GRUB – достаточно распространенная операция, с которой приходится сталкиваться многим. Загрузчик повреждается или затирается при установке Windows в качестве второй системы. Не имеет значения, какая сборка Linux стоит – Ubuntu, Mint, Debian или любая другая: восстановить GRUB можно через терминал или с помощью специальной утилиты.

Восстановление через терминал

Windows не дружит с Linux, поэтому если вы ставите систему от Microsoft после Ubuntu, Mint 17 или другой линуксовской сборки, то будьте готовы к тому, что загрузчик затрется. Чтобы не теряться в этой ситуации, распечатайте инструкцию и храните её возле компьютера.

  1. Загрузите Linux с флешки или диска, который использовался при установке.
  2. Откройте терминал, используя сочетание Ctrl+Alt+T. Введите команду «sudo fdisk –l», чтобы посмотреть структуру разделов.
  3. Посмотрите в столбце «Device Boot» корневой раздел Linux Ubuntu (для Mint 17 и других сборок процедура ничем не отличается). В приведенном примере корневой раздел обозначается как sda5.
  4. Смонтируйте том в систему с командой «sudo mount /dev/sda5 /mnt». Вместо «sda5» необходимо написать номер тома, где расположен корневой раздел вашей Ubuntu или Mint 17.
  5. Для восстановления загрузчика введите «sudo grub-install —root-directory=/mnt /dev/sda».

После перезаписи загрузчика необходимо перезагрузить компьютер, используйте команду «sudo reboot». После перезагрузки должно появиться окно выбора операционной системы. Если GRUB был перезаписан в результате установки новой версии Windows, но в окне выбора системы продолжает отображаться старая версия, то нужно выполнить обновление загрузочной записи. Для этого загрузитесь в Ubuntu и выполните в терминале команду «sudo update-grub».

Использование утилиты восстановления

Если работа с терминалом кажется сложной, можно автоматизировать процесс восстановления, использовав специальную утилиту boot-repair.

Запустите сборку Linux с флешки или диска. Откройте терминал и выполните последовательно три команды:

  • sudo add-apt-repository ppa:yannubuntu/boot-repair.
  • sudo apt-get update.
  • sudo apt-get install boot-repair.

Установленная программа будет иметь название «Восстановление загрузчика». Запустите утилиту (выполните «boot-repair» в консоли) и выберите режим работы. Новичкам подойдет «Рекомендуемый способ восстановления». После запуска этого режима GRUB будет автоматически восстановлен.

Есть и топорный способ восстановления GRUB – переустановка Linux. Многие новички используют этот радикальный метод, лишь бы не связываться с терминалом. Однако переустановка приводит к удалению пользовательских файлов, поэтому применять её из-за банального повреждения загрузчика – слишком большая роскошь.

Универсальный инструмент для не универсальных систем

Прежде всего начнём разбираться с наименования GNU GRUB. Эта аббревиатура с английского переводится как «главный унифицированный загрузчик». Его создателем является некоммерческая организация «Проект GNU», которая прославилась в IT-сфере своими свободно распространяемым программным обеспечением. Сам же GRUB по своей сути представляет меню выбора загрузки нужной пользователю ОС из целого перечня поддерживаемых систем:

  • Linux.
  • FreeBSD.
  • Solaris.

При этом GRUB сможет работать даже с Windows. Однако для запуска подобных систем, которые не поддерживаются напрямую данным начальным загрузчиком, есть свои особенные нюансы, которые мы изучим чуть позже во всех деталях и подробностях.

Настройка Grub через конфигурационные файлы

Сразу нужно сказать, что существует два способа настройки Grub Ubuntu, через конфигурационные файлы. Первый — через конфигурационный файл утилиты grub-mkconfig, который позволяет задать общие параметры для загрузчика и ручное редактирование /boot/grub/grub.cfg.

Первый — рекомендованный, и с помощью него можно настроить большинство параметров, в этом случае настройки не собьются, когда вы обновите ядро или загрузчик. Второй вариант еще более гибкий, но после любого обновления вы потеряете свои настройки. Так что то что можно настроить через /etc/default/grub настраиваем через него, все остальное — через /boot/grub/grub.cfg. Сначала рассмотрим первый вариант.

Настройка Grub через /etc/default/grub

Как я уже сказал, настройка загрузчика через файл /etc/default/grub, на основе которого будет автоматически создан /boot/grub/grub.cfg более желательна. Давайте рассмотрим параметры, которые вы можете здесь настроить.

  • GRUB_DEFAULT — указывает какой пункт нужно загружать по умолчанию. Может быть указан номер, или полное название или же строка saved, которая значит, что нужно загрузить пункт, указанный с помощью grub-reboot;
  • GRUB_SAVEDEFAULT — загружать последнюю использованную запись по умолчанию;
  • GRUB_HIDDEN_TIMEOUT — сколько секунд ждать перед тем, как вывести меню;
  • GRUB_HIDDEN_TIMEOUT_QUIET — если установлено true, то меню не будет показано;
  • GRUB_TIMEOUT — сколько секунд будет показано меню;
  • GRUB_CMDLINE_LINUX — добавить опции ядра для всех ядер, как обычных, так и режима восстановления;
  • GRUB_CMDLINE_LINUX_DEFAULT — добавить опции ядра только для обычных ядер;
  • GRUB_CMDLINE_LINUX_RECOVERY — опции ядра, только для режима восстановления;
  • GRUB_BADRAM — указать адреса оперативной памяти, которые не нужно использовать;
  • GRUB_TERMINAL — модуль терминала для Grub. Можно использовать console, только для текстового режима или gfxterm с поддержкой графики;
  • GRUB_GFXMODE — разрешение экрана в Grub, лучшие использовать auto, чтобы система выбрала сама то что ей нужно.
  • GRUB_DISABLE_RECOVERY — не включать в меню пункты восстановления;
  • GRUB_DISABLE_OS_PROBER — не искать другие операционные системы;
  • GRUB_BACKGROUND — адрес картинки для фона, должна находиться в той же папке что и файлы grub;
  • GRUB_THEME — устанавливает тему Grub.

Например, можно использовать такую конфигурацию:

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

Через утилиту восстановления загрузчика

Поскольку предыдущий метод может быть не всем под силу, воспользуемся той особенностью Ubuntu, что она может полноценно работать, будучи запущенной с флешки. Для этого мы применим специальную утилиту boot-repair. Что нужно сделать?

  1. Запустить Ubuntu с флешки и убедиться, что имеется активное интернет-соединение.
  2. Найти терминал и запустить в нём одну за другой такие команды:
  1. В меню приложений найти «Восстановление загрузчика» и включить утилиту.
  2. Кликнуть на кнопку «Рекомендуемый способ восстановления» и дождаться окончания процедуры.
  3. В большинстве ситуаций этих действий вполне достаточно для нормальной работоспособности загрузчика Grub Linux.

Как восстановить загрузчик Windows 10, 8, 7 из командной строки

Частой причиной того, что операционная система не загружается, является повреждение загрузчика Windows 10. Восстановление системных файлов с помощью функции Восстановления системы не восстанавливает загрузчик. Как его можно восстановить?

Шаг 1: Восстановите данные, утерянные в результате повреждения загрузчика

Восстановление загрузчика Windows, повреждение или перезапись системных файлов, ошибки файловой системы или наличие битых секторов диска – это не далеко полный список причин утери данных.

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

Загрузите бесплатно и просканируйте компьютер с помощью Hetman Partition Recovery. Ознакомьтесь с возможностями программы и пошаговой инструкцией.

Шаг 2: Восстановите загрузчик Windows 10 из командной строки

В случае повреждения, загрузчик Windows можно восстановить с помощью Командной строки.

Если система не загружается, то запустите диагностическую утилиту с загрузочного диска:

  • Запустите компьютер используя загрузочный диск.
  • В загрузившемся меню перейдите в Восстановление системы / Диагностика / Дополнительные параметры / Командная строка.

Если вы можете загрузить Windows, выполните следующее:

  • Нажмите Windows + R.
  • Ведите в окне cmd и нажмите на Enter.

Используйте команду bootrec.exe для восстановления загрузчика:

  • Введите в Командной строке bootrec.exe /fixboot

  • Перезагрузите компьютер.

Шаг 3: Программы для восстановления загрузчика Windows 10

Если в наличии нет оригинального загрузочного диска Windows, то загрузить компьютер, в том числе и с целью восстановления загрузчика, можно с помощью диска загрузочной сборки – LiveCD. Как правило на таких дисках имеется и несколько программ для восстановления загрузчика Windows 10. Такие программы можно запускать прямо из LiveCD – для них не требуется запускать операционную систему c жесткого диска компьютера, они работают в портативном режиме.

Для этого:

  • Найдите и запишите образ подходящего вам LiveCD на CD/DVD-диск или USB-накопитель.
  • Подключите LiveCD к компьютеру и включите его. Компьютер автоматически загрузится с LiveCD (в BIOS или UEFI необходимо изменить очередность загрузки с CD или USB).
  • Запустите программу для восстановления загрузчика, установленную на вашем LiveCD:

    • EasyBCD;
    • MultiBoot;
    • FixBootFull.

    Следуйте указаниям программы.

  • Дождитесь окончания процесса восстановления.
  • Перезагрузите компьютер без использования LiveCD.

Шаг 4: Восстановите загрузчик Windows 10 после установки Linux, Ubuntu

Иногда, после установки Ubuntu Linux второй системой, основная система Windows 10 перестаёт загружаться. Это связано с возможной перезаписью загрузочного сектора Windows.

Для восстановления загрузчика Windows и сохранения возможности загрузки Ubuntu Linux необходимо сделать следующее:

  • Сохраните загрузочный сектор Ubuntu Linux. Для этого запустите терминал и введите в нём:dd if=/dev/sda3 of=/linux.boot bs=512 count=1. В результате данной команды загрузочная запись скопируется в каталог пользователя под которым работает ПК. Перейдите в папку пользователя и скопируйте данный файл в раздел, в котором установлен Windows.
  • Запустите компьютер используя загрузочный диск Windows.
  • В загрузившемся меню перейдите в Восстановление системы / Диагностика / Дополнительные параметры / Командная строка.
  • Введите в Командной строке:bootrec.exe /FixMbrbootrec.exe /FixBoot

В результате восстановиться загрузчик Windows но с большой вероятностью будет повреждён загрузчик Ubuntu Linux. Для возобновления его работоспособности:

  • Перезагрузите Windows, запустите консоль с правами администратора и введите:bcdedit /create /d “Linux” /application BOOTSECTOR

  • Скопируйте ID диска, который после данной команды станет видным в виде {ID}.Пример ID диска: {с3454a4v-9652-fg78-94re-d8d2d3lh5a23}

  • Введите следующие команды, с использованием скопированного ID:bcdedit /set {с3454a4v-9652-fg78-94re-d8d2d3lh5a23} device partition=c:partition=c: здесь указывает на раздел, где установлена Windows.

  • Задействуйте сохранённый ранее файл и ID диска:bcdedit /set {с3454a4v-9652-fg78-94re-d8d2d3lh5a23} path \linux.bootbcdedit /displayorder {с3454a4v-9652-fg78-94re-d8d2d3lh5a23} /addlast

    bcdedit /timeout 10

После этого на компьютере смогут загружаться как Windows так и Ubuntu Linux.

(2 votes, average: 5.00 out of 5)

Что представляет собой загрузочный сектор?

Если владелец ПК уверен в своих силах и знаниях, ему будет достаточно прочесть лишь раздел, в котором пошагово расписан процесс установки загрузчика GRUB, однако тем юзерам, которые впервые сталкиваются с подобной проблемой, лучше предварительно узнать об особенностях BIOS и MS DOS.

Жёсткий диск разделён на несколько секторов, в первом из которых осуществляется основная запись диска (пользователи привыкли именовать её как MBR). Для этого требуется всего 512 байт, в которых «спрятана» небольшая программка. Следующий сектор занимает таблица разбиения диска, которая, по обычаю, состоит из четырёх главных разделов, объёмом 64 байта, и цифровой подписи (только 2 байта).

Еще один способ восстановления загрузки Windows 10 с помощью командной строки

Для этого способа нужна утилита Bootrec. В отличие от предыдущей утилиты эта утилита не восстанавливает файлы загрузчика, а восстанавливает загрузочную запись. То есть она восстанавливает MBR — первый сектор на HDD

Для операционной системы очень важно, чтобы MBR был в целости и сохранности. При старте компьютера его BIOS первым делом ищет MBR для осуществления с него запуска операционной системы

Для этого примера запустим, как и в предыдущих примерах, командную строку. В рассматриваемой утилите есть две основные команды /FixMbr и /FixBoot Первая команда необходима для исправления MBR, а вторая создает новый. Первым делом рассмотрим ситуацию, когда у нас поврежден MBR. Для этого в консоли введем первую команду.

На изображении выше видно, что операция прошла успешно, а это значит, что MBR восстановлен.

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

Из изображения выше видно, что новый сектор MBR создан успешно.

Из примеров видно, как легко восстановить сектор MBR с помощью консольной утилиты Bootrec. Если у вас проблема со стартом Windows 10, то советуем воспользоваться этим примером в первую очередь.

Чистим систему от вредоносного программного обеспечения до восстановления загрузчика

Если причиной поломки загрузчика является вредоносная программа, то этот вредоносный код необходимо удалить до восстановления. В этой ситуации вам поможет Dr.Web LiveDisk. Это аварийный диск, который обладает множеством средств для восстановления компьютера, а также лечения его от вирусов. Загрузить Dr.Web LiveDisk можно на его официальном сайте www.drweb.ru. Этот Live CD основан на linux и является бесплатным. Этот диск распространяется как образ ISO, который можно записать, как на оптический диск, так и на USB-флешку. После записи образа на диск запустим Dr.Web LiveDisk.

В стартовом меню выберем первый пункт и продолжим загрузку Dr.Web LiveDisk. После нескольких секунд должна запуститься ОС, основанная на Linux, которая собственно и представляет собой Dr.Web LiveDisk.

Также полезным будет тот факт, что в этой ОС есть полная поддержка интернета и встроенный браузер Firefox.

Восстановление в rescue mode

При отсутствии загрузочного диска, можно восстановить Grub из его консоли. Восстановление происходит следующим образом: сначала нужно подгрузить все модули, чтобы стала доступна вся функциональность Grub, а затем уже запуститься с нужного раздела.
Как известно, Grub состоит из двух частей.
Первая часть записана в MBR диска. Она содержит базовую функциональность, то есть в ней есть консоль в rescue mode и ничего больше. Вначале нужно определить, на каком разделе находится вторая часть груба (она лежит в каталоге /boot/grub), подгрузить недостающие модули. И только потом можно будет дать команду запуска с нужного раздела.
В rescue mode доступно всего четыре команды:

 ls
set
unset
insmod

Вначале следует дать команду:

ls

В ответ она выведет, например, следующее:

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1)

Иногда Grub может неправильно опеределить, какие файловые системы находятся на разделах дисков. В данном случае определяет их как msdos.
Нам нужно постараться угадать, какие диски мы видим. В данном случае видно два диска. Диск с индексом 0 содержит три раздела, диск с индексом 1 содержит два раздела. Зная структуру своих дисков несложно определить нужный диск.

Grub называет разделы в обратном порядке. И становится непонятно, что имеется в виду под (hd0,msdos3) — первый раздел или третий? Тут можно выкрутиться, использовав синтаксис (hd0,1). Нужно помнить, что в Grub счет дисков начинается с 0, а счет разделов — с 1.
Предположим, что Линукс установлен на первый диск в первый раздел, то есть (hd0,1).
Даем команду:

set prefix=(hd0,1)/boot/grub 
set root=(hd0,1)

Этими командами мы указываем использовать диск (hd0,1) для дальнейших команд. После чего нужно проверить, действительно ли на этом разделе есть то, что нам нужно. Даем команду:

ls /boot/grub

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

insmod ext2
insmod normal
normal

Проверьте правильность написания первой команды для файловых систем ext3 и ext4

Если ОС расположена на разделе, отформатированном в btrfs,
то выполняем следующие команды:

set prefix=(hd0,1)/@/boot/grub
set root=(hd0,1)

подгружаем модули:

insmod btrfs
insmod normal

запускаем GRUB:

normal

После чего Grub перейдёт в полнофункциональный режим. Он автоматически найдет все операционки, которые можно подгружать, и покажет своё Grub-меню.

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

grub-install /dev/sdX

Где sdX, диск, на который нужно установить Grub.

Способы восстановления загрузчика Windows 10

Восстановить загрузчик Windows 10 можно несколькими способами, ниже они будут перечислены в порядке возрастания сложности, если не помог первый — переходите к следующему, нам потребуется диск или флешка с установочными файлами Windows 10, загружаемся с него и попадаем в меню выбора языка, выбираем если нужно и жмем далее:

выбираем Поиск и устранение неисправностей:

и далее возможные варианты, для автоматического поиска и устранения проблем при загрузке, в том числе и восстановления загрузчика выбираем «Восстановление при загрузке»:

Выбираем операционную систему загрузку которой нужно восстановить:

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

Тут выбираем «Командная строка», либо можно нажать Shift + F10:

В командной строке вводим по порядку команды и после каждой нажимаем Enter:

  1. diskpart
  2. list volume — покажет список дисков и разделов на них, нужно определить букву присвоенную системному диску, обычно это С но не всегда
  3. exit
  4. bcdboot c:Windows (где С — буква диска с системой, она может быть другой, а Windows — папка куда установлена система, указывайте свою если меняли при установке) Должно получиться как на картинке ниже, стрелки с действиями пронумерованы:

Если операционных систем более одной, команду придется повторить для оставшихся, но это сработает только для Windows 8 и 10 и в некоторых случаях для Windows 7.

Что такое GRUB?

Загрузчик или менеджер загрузки

Я не хочу запутать вас на этом этапе, но эта тема нуждается в разъяснении перед тем, как мы продолжим. Разница между менеджером загрузки и загрузчиком весьма размыта.

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

Ядро Linux версии 3.3 включает в себя встроенный загрузчик EFI. Фактически, любая операционная система, способная работать с EFI включает в себя загрузчик EFI. В системах с поддержкой EFI системная прошивка считывает системный раздел EFI (ESP) для обнаружения файлов EFI на загрузочном разделе.

GRUB — это одновременно загрузчик и менеджер загрузки. Через секунду я вернусь к GRUB. Сначала давайте взглянем на другие GRUB — подобные программы.

Примечание: GRUB — это аббревиатура для GRand Unified Bootloader (большой объединённый загрузчик).

2. Какие существуют загрузчики, похожие на GRUB?

GRUB — наиболее популярный загрузчик для Linux. Но не единственный. Есть ещё менеджер загрузки rEFInd, который нравится некоторым пользователям Linux.

Персонализированный экран менеджера загрузки rEFInd

Существует также текстовый менеджер загрузки systemd-boot . Вы можете догадаться, что он предназначен только для дистрибутивов, основанных на systemd. Некоторые дистрибутивы, как Pop OS, используют systemd-boot.

systemd-boot в Pop OS

Про другие загрузчики читайте в статье Лучшие загрузчики для Linux.

3. Доступ к опциям и настройкам GRUB

Обычный экран GRUB, который вы видите — это интерфейс меню. Он позволяет вам выбрать, какую операционную систему загрузить, если на вашей машине более одной ОС. Вы также можете выбрать другое ядро для вашего дистрибутива Linux, если у вас установленно более одного.

В зависимости от настроек, у вас могут быть другие опции в меню GRUB. Вы можете редактировать меню GRUB. нажав кнопку Е. Таким способом вы можете менять параметры ядра перед его загрузкой. Например, в некоторых случаях отключение драйвера графики поможет загрузить зависшую при старте систему.

Вы также можете войти в командную строку GRUB используя кнопку C в меню GRUB.

4. Файл настроек GRUB

Любые изменения, которые вы делаете из меню GRUB — временные. Если вы хотите сохранить настройки GRUB, например, изменить паузу перед автоматической загрузкой по умолчанию, то вы можете изменить настройки после загрузки системы Linux.

Стандартный файл настроек GRUB находится в /etc/default/grub. Также есть папка /etc/default/grub.d. Вы можете редактировать файл /etc/default/grub напрямую, однако рекомендуется сохранять дополнительные изменения в вышеуказанной папке.

Стандартный файл настроек GRUB

Вы должны обновить GRUB для того, чтобы ваши изменения стали действовать. Фактически, когда бы вы ни установили дополнительный дистрибутив Linux на ваш компьютер, он попытаться переписать существующие настройки GRUB своими. Подробнее о настройках Grub читайте здесь.

5. GRUB customizer для лёгкой настройки GRUB

Если редактирование файла текстовым редактором в терминале — не то, что вам нравится, то вы можете использовать графическую утилиту, называющуюся GRUB Customizer. Она позволяет вам менять порядок загрузки, задержку загрузки и т.п. Вы также можете изменить фон GRUB на обои по своему усмотрению.

GRUB Customizer может быть установлен в Ubuntu 20.04 из репозитория Universe и через PPA в Ubuntu 18.04. Он также доступен через AUR в дистрибутивах, основанных на Arch Linux. Подробнее про использование Grub Customizer рассказано в этой статье.

Защита от зацикливания на перезагрузке

Если загрузка ОС не закончилась успешно, или осуществлялась загрузка в режим восстановления, то при следующей загрузке — меню выбора GRUB будет выводится и ждать явного вмешательства оператора (так же, как если бы вы выставили GRUB_TIMEOUT=-1). При этом последующие аппаратные сбросы системы — не помогут проскочить меню.

Зачем это сделано

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

Совсем иная ситуация при загрузке — никакие сервисы по очистке логов не работают (они запускаются позже) и, если, в процессе загрузки система свалится и начнет перезагружаться, то лог будет только расти. И расти он будет до тех пор пока будут повторятся перезагрузки, и будет хватать места на том разделе диска, где расположен каталог /var/log. А когда на разделе с /var/log место кончится то система зависнет уже наглухо и даже в режим восстановления ее будет не загрузить. Загрузится можно будет только с LiveCD/USB (с Live системы и надо будет лечить систему, первым делом руками зачистив логи).

Защита встроенная в GRUB не позволит системе попасть в столь тяжелое положение.

А что если…

Функция (как видно) — безусловно полезная, однако она может быть неудобной для без-клавиатурных станций — на них «зависшее» меню GRUB-а — это не преимущество, а некоторые сложности (без подключения клавиатуры такая станция, попавшая в меню GRUB, никогда не загрузится вообще).

А что если отключить?

Собственно сами случаи, когда циклится загрузка — не так и часты, если машина работает без графики то там вообще мало чему падать на этапе загрузки, да еще так, что бы система вышла на перезагрузку. Разве что совсем кривой прикладной софт встроенный в процесс загрузки…

Гораздо чаще загрузка прерывается из за внешних условий — например пропадает питание, или кто-то сбрасывает грубо систему.

Как это работает

Реализовано все достаточно просто — в скрипте /boot/grub/grub.cfg переменная окружения GRUB recordfail устанавливается в ходе каждой загрузки в 1.
Скрипт /etc/init.d/grub-common запускается на финальных этапах загрузки (линки с именем S99grub-common есть в /etc/rc2.d, /etc/rc3.d, … /etc/rc5.d). grub-common сбрасывает переменную recordfail в 0.
Если скрипт /etc/init.d/grub-common не отработает, то не сброшенное значение recordfail предотвращает автоматическую загрузку, меню GRUB появляется и потребуется явное интерактивное вмешательство со стороны оператора.

Для того, что бы убрать необходимость интерактивного вмешательства в процесс загрузки нужно установить переменную GRUB_RECORDFAIL_TIMEOUT в /etc/defaul/grub в то количество секунд, которые меню GRUB-а будет ждать ввода в случае когда recordfail=1.
Сохранить изменения и обновить GRUB (sudo update-grub).

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

Финт с GRUB_RECORDFAIL_TIMEOUT может не сработать в некоторых (старых) версиях GRUB. Тогда нужно редактировать /etc/grub.d/00_header. Нужно найти функцию make_timeout (), которая выглядит примерно так:

make_timeout ()
{
    cat << EOF
if ; then
  set timeout=-1
else
  set timeout=${2}
fi
EOF
}

и заменить в ней строчку

set timeout=-1

на

set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}

После этого финт с GRUB_RECORDFAIL_TIMEOUT заработает. Нужно сохранить изменения и обновить GRUB (sudo update-grub).

Изменения в скрипте /etc/grub.d/00_header могут быть утеряны при обновлении пакета grub-common. Но в новых версиях GRUB переменная GRUB_RECORDFAIL_TIMEOUT уже внедрена (т.е. эти изменения уже сделаны в 00_header).