В этой статье разберем по пунктам меню загрузчика GRUB для операционной системы Astra Linux.

  1. После запуска загрузчика, на экран выводится окно «Меню GRUB», из которого можно перейти в режим редактирования загрузочных записей (нажать клавишу «e») или в режим командной строки GRUB (нажать клавишу «с»).
  2. Механизм редактирования схож с таковым в обычном текстовом редакторе. Но в данном случае изменения сохранены не будут, она разово будут использоваться для загрузки.
  3. Чтобы после редактирования выполнить загрузку, следует нажать клавишу F10. Если изменения не были внесены, загрузка также будет осуществлена.
  4. Вернуться к выбору пункта меню можно с помощью клавиши Esc. Внесенные изменения будут отменены.

Командная строка GRUB

Для входа в GRUB shell следует нажать «c», пока отображается меню. Некоторые команды:

  • help — информация о доступных командах
  • xls — вывести список разделов
  • ls (hd0, gpt2)/ — посмотреть оглавление раздела
  • linux /vmlinuz root=/dev/sda2 ro parsec.max_ilev=63 quiet net.ifnames=0 — загрузить в память ядро, передав ему параметры
  • initrd /initrd.img — загрузить в память образ initramfs
  • boot — передать управление ядру linux
  1. Командный интерпретатор GRUB обладает широкими возможностями. Можно не только осуществлять навигацию по файловой системе, но и, например, просматривать содержимое файлов с помощью команды cat .
  2. /vmlinuz и /initrd.img — символические ссылки на последние версии ядра linux и образа initramfs в каталоге /boot соответственно.

Некоторые параметры GRUB, передаваемые ядру

  • s — загрузить init в режиме восстановления (single)
  • root = устройство — указание на имя устройства, UUID или метку раздела, которые следует смонтировать в корневой каталог («/»)
  • ro — монтировать в корневой каталог устройство в режиме read-only
  • rw — монтировать в корневой каталог устройство в режиме read-write
  • quiet — заблокировать вывод большинства сообщений
  • splash — разрешает отображение графической заставки
  • 3 — загрузить init в режиме multi-user (без GUI)
  • 5 — загрузить init в режиме graphical (с GUI)
  1. net.ifnames=0 — порядок именования сетевых интерфейсов (0 — в стиле eth0, eth1 и т.д.)
  2. parsec.max_ilev=63 — включить мандатный контроль целостности ОС.
  3. parsec.ccnr_relax=1 — дает непривилегированному пользователю возможность производить запись файлов с разным уровнем конфиденциальности в контейнер (каталог) с установленным флагом ccnr.
  4. parsec.strict_mode=1 загрузка ОС в расширенном режиме МКЦ.
  5. parsec.mac=0 — устанавливается при включении мандатного управления доступом.
  6. init=путь_init — полный путь к программе, выполняемой с PID=1
  7. init=/bin/sh — запустить вместо systemd /bin/sh (для восстановления).

Некоторые загрузчика GRUB

  • Конфигурационный файл /boot/grub/grub.cfg — выполняется GRUB, формируя меню
  • /etc/default/grub — установки переменных для GRUB
  • /etc/grub.d содержит сценарии для формирования grub.cfg, должны иметь право на выполнение
  • Для редактирования предназначен 40_custom
  • Сборка GRUB:
    • grub-mkconfig — создает сценарий, но не перезаписывает
    • update-grub — пере собирает /boot/grub/grub.cfg
  1. Не следует редактировать вручную файл /boot/grub/grub.cfg, он создается при помощи команд grub-mkconfig из файлов /etc/grub.d и /etc/default/grub.
  2. В /etc/default/grub определяется поведение загрузчика GRUB (GRUB_DEFAULT), передача параметров ядру (GRUB_CMDLINE_LINUX) и т.д.
  3. Один из примеров настройки загрузчика GRUB: создание нового пункта меню (menuentry). Для этого следует добавить все новые строки в /etc/grub.d/40_custom, не удаляя существующие.
  4. При этом, в отличие от всех остальных сценариев в /etc/grub.d, в файле /etc/grub.d/40_custom не следует обрамлять команды GRUB в cat<<EOF…EOF, необходимый код будет добавлен в том виде, в каком вы его введете.
  5. sudo grub-mkconfig — использует настройки из /etc/default/grub и выполняет сценарии в /etc/grub.d/ по очереди, выводя в stdout наполнение, предназначенное для записи в grub.cfg, но /boot/grub/grub.cfg при этом не перезаписывается.
  6. Чтобы сгенерировать и перезаписывать /boot/grub/grub.cfg следует использовать sudo update-grub.
  7. Вместо update-grub можно использовать grub-mkconfig -0 /boot/grub/grub.cfg.

Более того, update-grub — сценарий, вызывающий данную команду:

sa@astra:~$ cat /usr/sbin/update-grub
#! /bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
sa@astra:~$

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.