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

Инструменты сайта


linux:kernel:bootloader:grub

GRand Unified Bootloader (GRUB)

Сведения

Загрузчик операционных систем, вторая реализация, первой был - Grub Legacy.

GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows, MS-DOS и др.
Позволяет при загрузке задавать произвольные параметры и передавать их в ядро, для дальнейшей обработки (для Multiboot систем).

Конфигурация

Основным файлом конфигурации является /boot/grub/grub.cfg, но он генерируется автоматически, скриптами, расположенными в /etc/grub.d/

Так же, есть ещё файл один конфигурации - /etc/default/grub, он так же содержит в себе ряд полезных опций.
Такие как например:

  • Стандартный пункт загрузки (grub_default). Можно указать порядковый номер либо текстовый идентификатор (как в файле /boot/grub/grub.cfg)
  • Время отображения меню (grub_timeout). '-1' для ручного выбора.
  • Скрытое меню (grub_hidden_timeout)
  • Параметры загрузки ядра (grub_cmdline_linux_default)

Установка пароля

Имея доступ к загрузчику, можно легко сбросить пароль любого пользователя в системе, поэтому рекомендуется установить пароль на загрузчик (но имея возможность загрузки с LiveCD, можно обойти и эту защиту).
Сначала создаем и шифруем пароль с помощью утилиты grub-mkpasswd-pbkdf2
Затем открываем файл /etc/grub.d/40_custom и дописываем в конце две строки:

set superusers="root"
password_pbkdf2 root *сгенерированный хэш пароля (grub.pbkdf2.sha512.10000...)*

После изменений, нужно обновить конфигурацию grub

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

или

# update-grub

ПАРОЛЬ БУДЕТ УСТАНОВЛЕН НА ВСЕ ПУНКТЫ ЗАГРУЗКИ в т.ч. и на обычную загрузку т.е. его нужно будет вводить при каждом запуске.
Для того что бы разрешить обычную загрузку без пароля, нужно отредактировать файл /etc/grub.d/10_linux, находим пункт и добавляем параметр –unrestricted, как на скриншоте:

PS: Имея возможность загрузится с LiveCD, можно обойти защиту паролем, отредактировав файл /boot/grub/grub.cfg.

Консоль GRUB

Что бы попасть в консоль, нужно нажать клавишу C во время отображения меню загрузки.

ls

Кроме стандартного назначения, можно получить список жестких дисков и разделов

cat

Содержимое указанного файла.

linux

Загружает указанное ядро.

linux файл_ядра опция1=значение опция2 опция3

initrd

Загружает указанный initrt-образ (должен соответствовать версии ядра).

initrd /boot/initrd.img-2.6.32-020632-generic

chainloader

Передает управление другому загрузчику (ищется в root разделе). Обычно требуется указание файла загрузки.

chainloader /путь/имя_файла

Для Windows можно использовать:

chainloader +1
boot

load_env / save_env

Загружает / Сохраняет переменные окружения из своего файла (/boot/grub/grubenv)
GRUB environment block можно использовать для хранения небольшого количества информации (1024 байт).
Утилита grub_editenv позволяет редактировать из работающей системы.

configfile

Позволяет загрузить другой файл конфигурации, вместо /boot/grub/grub.cfg

terminal_output

Перечисляет или выбирает выходной терминал. Без аргументов перечисляет активные и доступные терминалы.
–append добавляет терминал в список активных.
–remove удаляет из списка активных.

testspeed

Дает возможность протестировать скорость чтения файла с диска.
-s, –size=ЧИСЛО - объём данных каждой операции чтения.

testspeed [-s РАЗМЕР] [путь до файла]

time

Время выполнения любой команды.

time [команда] [аргументы]

sleep

Заморозка.
-v, –verbose - показывает отсчет.
-i, –interruptible - разрешает прерывание кнопкой ESC.

sleep [КЛЮЧИ] [СЕКУНДЫ]

root

Сообщает какой раздел используется в качестве корневого.

set

Используется для задания различных параметров.

set root=(hd0,5)

Поиск раздела по UUID, метке или файлу, имеет ключи:

  • u (–fs-uuid) - поиск раздела по UUID
  • l (–label) - поиск по метке раздела
  • f (–file) - поиск по указанному файлу
  • n (–no-floppy) - не проверять флоппи-дисковод (чтоб не трещал)
  • s (–set) - установить найденный раздел в качестве значения заданной переменной.

vbeinfo

Список поддерживаемых видеорежимов.

halt / reboot

Выключение / перезагрузка

linux/kernel/bootloader/grub.txt · Последнее изменение: 2021/04/20 08:17 — admin