/boot/grub/grub.cfg

Редагування параметрів GRUB


sudo nano /etc/default/grub

Вносимо зміни, зберігаємо файл: Ctrl+O, Enter, виходимо: Ctrl+X

Але цього недостатньо, тому що насправді GRUB читає налаштування з файлу /boot/grub/grub.cfg, і тому…

Прийняття внесених змін

sudo update-grub

Чому потрібно виконувати цю команду?

Що можна відредагувати?

Відключення заставки Linux

відображає інформацію про завантаження компонентів системи (це дозволить простежити за процесом завантаження та виявити проблеми).

Цей параметр:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

залишаємо порожнім:

Manjaro: GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=f1fcafae-b6b2-42a7-8e39-50cd7a159913"

Manjaro: оставил только resume

Если нужно отключить splash только для одной загрузки, то при старте системы нажмите Escape чтобы перейти в меню grub. Далее нажимаем кнопку “e” для перехода к редактированию опций загрузки. Находим параметры ядра (строка начинается со слова linux) и просто удаляем слово splash и нажимаем Ctrl+X чтобы начать загрузку.

Зменшення часу очікування під час завантаження

Исправляем на нужное значение (в секундах) параметр GRUB_TIMEOUT. Например:

Відключення меню GRUB

:sos:

В случае, если на компьютере установлена только одна ОС, можно отключить меню загрузки чтобы grub загружал систему напрямую.

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

За него отвечает параметр GRUB_HIDDEN_TIMEOUT. в случае, когда установлены другие ОС, этот параметр закомментирован (# в начале строки). в случае с единственной ОС он будет активен.

Значение его задает задержку в секундах. grub приостановит загрузку на заданное количество секунд, давая пользователю возможность вызвать меню загрузки, нажав [Esc].

Если значение установлено в 0, то задержки не будет. Однако, пользователь все равно сможет вызвать отображение меню, удерживая при загрузке [Shift].

Параметр “GRUB_HIDDEN_TIMEOUT_QUIET” отвечает за отображение таймера во время паузы. при значении true таймер показан не будет. false - будет отображаться.

Пример файла grub для VM, где только одна ОС

(показать все строки, кроме закомментированных):

Різне

Що робить update-grub?

Команда sudo update-grub використовується для оновлення конфігурації GRUB на основі налаштувань у файлі /etc/default/grub і скриптів у /etc/grub.d/.

  1. Виконує скрипт /usr/sbin/grub-mkconfig, який зчитує налаштування з:

    • /etc/default/grub (основні параметри завантажувача)

    • /etc/grub.d/ (скрипти для створення записів у GRUB)

    • /boot/grub/grub.cfg (поточний конфігураційний файл GRUB)

  2. Якщо os-prober увімкнено, update-grub шукає інші встановлені ОС і додає їх у меню завантаження.

  3. Генерує новий конфігураційний файл /boot/grub/grub.cfg, який завантажується при запуску системи.

Коли потрібно виконувати update-grub?

Виконання sudo update-grub необхідне після змін у:

  • /etc/default/grub (наприклад, зміна GRUB_TIMEOUT, GRUB_DISABLE_OS_PROBER, GRUB_CMDLINE_LINUX)

  • /etc/grub.d/ (якщо додаєте або змінюєте власні завантажувальні записи)

  • Після встановлення або видалення іншої ОС

  • Оновлення ядра Linux (іноді оновлення ядра виконує update-grub автоматично)

Чи потрібно виконувати update-grub після кожного перезавантаження?

Ні, зміни застосовуються лише після оновлення конфігурації. Якщо не змінювати налаштування GRUB, команду виконувати не потрібно.

Що використовувати в інших дистрибутивах?

  • Debian/Ubuntu/Linux Mintsudo update-grub

  • Arch Linux/Fedora/Manjaro/OpenSUSE

Таким чином, update-grub — це просто обгортка навколо grub-mkconfig, яка спрощує процес генерації конфігурації в Debian-based системах.

Warning: os-prober will not be executed to detect other bootable partitions.

При оновленні системи отрумуємо таке попередження:

Це попередження означає, що утиліта os-prober не буде виконуватися для виявлення інших завантажувальних розділів, і відповідно, інші операційні системи (наприклад, Windows або інші дистрибутиви Linux) не будуть автоматично додані до меню завантаження GRUB.

Причина:

За замовчуванням, у нових версіях GRUB (починаючи з GRUB 2.06) змінено поведінку з міркувань безпеки: os-prober вимкнено, оскільки його виконання може створювати потенційні ризики, особливо якщо використовується шифрування диска.

Як виправити:

Якщо вам потрібно, щоб GRUB знову знаходив інші ОС, вам потрібно вручну ввімкнути os-prober. Для цього:

  1. Відкрийте файл конфігурації GRUB:

  2. Додайте або змініть рядок:

  3. Збережіть файл (Ctrl+X, Y, Enter).

  4. Оновіть конфігурацію GRUB:

Після цього os-prober буде знову виконуватися при оновленні GRUB, і всі доступні ОС будуть додані до меню завантаження.

Альтернативний варіант:

Якщо ви не хочете використовувати os-prober, можна вручну додати потрібні записи в /etc/grub.d/40_custom.

:question: Что за команда? восстановление MBR?

sudo apt-get install mbr sudo install-mbr /dev/sda

Linux: изменить порядок загрузки в GRUB

Было решено заменить загрузку с Ubuntu на Windows, что бы не выбирать систему во время запуска.

Настройки порядка загрузки хранятся в файле /boot/grub/grub.cfg, в первых же строках которого большими буквами сказано:

# DO NOT EDIT THIS FILE

Потому что этот файл создается самой системой во время выполнения команды update-grub на основе файлов:

# ls -1 /etc/grub.d/ 00_header 05_debian_theme 10_linux 20_linux_xen 20_memtest86+ 30_os-prober 30_uefi-firmware 40_custom 41_custom README

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

Перед изменениями – делаем резервную копию:

# cp /etc/default/grub /etc/default/grub.bkp

Для root-доступа не забыть:

sudo -s

Выглядит файл /etc/default/grub по-умолчанию так:

GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” GRUB_CMDLINE_LINUX=””

Строка GRUB_DEFAULT может иметь значение либо числовое (0, 1 и т.д.), либо буквенное – saved.

GRUB_DEFAULT=0 будет загружать первую систему, описанную в файле /boot/grub/grub.cfg, в блоках menuentry.

Обратите внимание, что строки входящие в submenu не учитываем, но сам раздел submenu учитываем – +1.

Проще всего во время загрузки GRUB просто посчитать порядковый номер системы, либо – просмотреть файл /boot/grub/grub.cfg в текстовом редакторе, в котором будет четко видно разделение на «главные» пункты меню, и его «подменю».

Вариант – изменить строку GRUB_DEFAULT= вручную, прямо в файле, и указать номер системы для загрузки.

Либо, вместо номера, указать полное имя:

GRUB_DEFAULT=”‘Windows 7 (loader) (на /dev/sda1)”

Другой вариант – изменить GRUB_DEFAULT на GRUB_DEFAULT=saved, после чего выполнить:

# grub-set-default 4

Этим мы указываем две вещи:

а) GRUB_DEFAULT=saved – GRUB будет загружать ту систему, которая была загружена последней;

б) такой системой мы устанавливаем запись №4, т.е. – Windows 7 (loader).

Причем второй пункт выполнять необязательно – достаточно будет 1 раз выбрать систему во время загрузки – и она будет сохранена как «система по-умолчанию».

Так же, вместо указания «индекса» системы – можно указать полное ее полное «имя»:

# grub-set-default “‘Windows 7 (loader) (на /dev/sda1)”

После чего выполнить:

# update-grub

//Generating grub configuration file … Найден образ linux: /boot/vmlinuz-3.13.0-24-generic Найден образ initrd: /boot/initrd.img-3.13.0-24-generic Найден образ linux: /boot/vmlinuz-3.5.0-46-generic Найден образ initrd: /boot/initrd.img-3.5.0-46-generic Найден образ linux: /boot/vmlinuz-3.5.0-37-generic Найден образ initrd: /boot/initrd.img-3.5.0-37-generic Найден образ linux: /boot/vmlinuz-3.5.0-26-generic Найден образ initrd: /boot/initrd.img-3.5.0-26-generic Найден образ linux: /boot/vmlinuz-3.5.0-17-generic Найден образ initrd: /boot/initrd.img-3.5.0-17-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin Найден Windows 7 (loader) на /dev/sda1 завершено//

Исправление заставки

Чиним сплэш в Ubuntu 10.04

После установки проприетарных драйверов видео (по крайней мере от nVidia, насчет ATI не знаю) в Ubuntu 10.04 сплэш при загрузке по какой-то причине показывается в маленьком разрешении экрана и поэтому выглядит увеличенным. Исправить это очень просто.

Открываем файл конфигурирования загрузчика системы GRUB 2:

sudo nano /etc/default/grub

Добавляем в него такую строку:

Вместо 1024x768 пишите своё разрешение. Куда добавлять — не важно, я добавил сразу после GRUB_CMDLINE_LINUX.

После чего нам нужно обновить конфигурацию GRUB, чтобы произведенные нами изменения записались в grub.cfg. Для этого существует следующая команда:

sudo update-grub

Теперь загрузочная заставка должна быть нормальных размеров.

Что-то такое случилось…

как-то поставил Минт вместо другого Минта, который был прописан с виндой на grub’е. Установщик винду не заметил, предлагал поставить Минт рядом с Минтом. Поэтому выбрал пункт вручную. Взял, затер области со старым Минтом, создал новые и установил туда новый Минт. Все было Ок, пока не решил запустить винду. А она взяла и исправила “ошибки” на диске. Пытался исправить по вышеприведенной инструкции - install grub ругался что-то про canonical, слишком маленькую загрузочную область, писал error. Не знаю, что именно повлияло, но Загрузил gparted, и установил boot на раздел с линуксом вместо винды - и grub успешно загрузился.

Last updated