Как проверить, применены ли настройки GRUB в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии мы узнаем, как проверить, были ли успешно применены изменения, внесенные в конфигурацию загрузчика GRUB в Linux. Мы рассмотрим основной файл конфигурации GRUB, расположенный по пути /etc/default/grub, чтобы понять его настройки.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") subgraph Lab Skills linux/cat -.-> lab-558789{{"Как проверить, применены ли настройки GRUB в Linux"}} linux/grep -.-> lab-558789{{"Как проверить, применены ли настройки GRUB в Linux"}} end

Проверка конфигурации GRUB с помощью команды cat /etc/default/grub

На этом шаге мы рассмотрим файл конфигурации GRUB. GRUB (GRand Unified Bootloader) — это загрузчик для многих дистрибутивов Linux, включая Ubuntu. Это первое программное обеспечение, которое запускается при включении компьютера, и оно отвечает за загрузку ядра операционной системы.

Основной файл конфигурации GRUB расположен по пути /etc/default/grub. Этот файл содержит настройки, которые определяют поведение GRUB, например, операционную систему по умолчанию для загрузки, время ожидания перед загрузкой и параметры ядра.

Просмотрим содержимое этого файла с помощью команды cat. Команда cat используется для отображения содержимого файлов.

Откройте терминал, если он еще не открыт. Помните, что вы можете найти иконку Xfce Terminal слева на рабочем столе.

Введите следующую команду и нажмите Enter:

cat /etc/default/grub

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

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

## Uncomment to enable graphical terminal (grub-gfxpayload is needed)
#GRUB_TERMINAL=gfxterm

## The resolution used on graphical terminal
## settings below may not work on your chipset but may be useful for EFI panel
## sizes
#GRUB_GFXMODE=640x480

## Uncomment to disable graphical terminal on boot problems
#GRUB_TERMINAL_INPUT=console

## Uncomment to disable menu scrolling
#GRUB_MENU_SCROLL_STYLE=menu

## Uncomment to enable hidden menu by default
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true

## Uncomment to enable BadRAM filtering, modify to suit your needs
## This works only with Linux 2.6.25 or later using pci_filter_enable=1
## and needs BadRAM filtering support in the kernel
#GRUB_BADRAM="0x0123456789abcdef,0xghijkllmnopqrstuvwxyz"

## Uncomment to disable graphical boot (use text mode)
#GRUB_DISABLE_GRAPHICS_OVERRIDE=true

## If you want to enable the GRUB boot menu at boot time, uncomment the following line:
#GRUB_ENABLE_CRYPTODISK=y

## The following lines are for the default grub menu entry
#GRUB_INIT_TUNE="480 440 1"

## Uncomment to set a custom theme
#GRUB_THEME=/path/to/grub/theme

## Uncomment to enable os-prober, which detects other operating systems
#GRUB_DISABLE_OS_PROBER=false

В этом файле содержатся различные настройки. Например:

  • GRUB_DEFAULT: Определяет пункт меню по умолчанию для загрузки. 0 означает первый пункт.
  • GRUB_TIMEOUT: Устанавливает время в секундах, по истечении которого будет автоматически загружен пункт по умолчанию.
  • GRUB_CMDLINE_LINUX_DEFAULT: Содержит параметры ядра, которые передаются ядру при загрузке пункта по умолчанию.

Понимание этого файла является важным для продвинутой настройки Linux и устранения проблем с загрузкой.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка меню GRUB с помощью команды cat /boot/grub/grub.cfg

На предыдущем шаге мы рассмотрели файл /etc/default/grub, который является основным файлом конфигурации GRUB. Однако этот файл не используется напрямую GRUB во время процесса загрузки. Вместо этого настройки из файла /etc/default/grub используются для генерации фактического файла конфигурации меню GRUB, который расположен по пути /boot/grub/grub.cfg.

Файл /boot/grub/grub.cfg автоматически генерируется командой update-grub (или grub-mkconfig). Он содержит пункты меню, которые вы видите при запуске компьютера, позволяя выбрать, какую операционную систему или ядро загрузить.

Важно: Никогда не редактируйте файл /boot/grub/grub.cfg вручную. Любые изменения, которые вы внесете, будут перезаписаны при следующем запуске команды update-grub. Всегда изменяйте файл /etc/default/grub, а затем запускайте команду sudo update-grub, чтобы применить изменения.

Просмотрим содержимое файла /boot/grub/grub.cfg с помощью команды cat.

Введите следующую команду в терминале и нажмите Enter:

cat /boot/grub/grub.cfg

Вы увидите гораздо более длинный и сложный вывод по сравнению с файлом /etc/default/grub. Этот файл содержит подробную конфигурацию для каждого пункта меню загрузки, включая путь к ядру, путь к initrd и параметры командной строки ядра.

#
## DO NOT EDIT THIS FILE
#
## It is automatically generated by grub-mkconfig using templates
## from /etc/grub.d and settings from /etc/default/grub
#

#### BEGIN /etc/grub.d/00_header ###
...
#### END /etc/grub.d/00_header ###

#### BEGIN /etc/grub.d/05_debian_theme ###
...
#### END /etc/grub.d/05_debian_theme ###

#### BEGIN /etc/grub.d/10_linux ###
...
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' {
	recordfail
	...
	linux	/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro  quiet splash $vt_handoff
	initrd	/boot/initrd.img-*-generic
}
...
#### END /etc/grub.d/10_linux ###

#### BEGIN /etc/grub.d/20_linux_xen ###
...
#### END /etc/grub.d/20_linux_xen ###

#### BEGIN /etc/grub.d/30_os-prober ###
...
#### END /etc/grub.d/30_os-prober ###

#### BEGIN /etc/grub.d/30_uefi-firmware ###
...
#### END /etc/grub.d/30_uefi-firmware ###

#### BEGIN /etc/grub.d/40_custom ###
...
#### END /etc/grub.d/40_custom ###

#### BEGIN /etc/grub.d/41_custom ###
...
#### END /etc/grub.d/41_custom ###

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

Этот файл сложен, и вам не нужно понимать каждую строку прямо сейчас. Главное, что нужно запомнить, это то, что /boot/grub/grub.cfg - это файл, который фактически использует GRUB, и он генерируется из файла /etc/default/grub и скриптов в директории /etc/grub.d.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка параметров GRUB с помощью команды dmesg

На предыдущих шагах мы рассмотрели файлы конфигурации GRUB /etc/default/grub и /boot/grub/grub.cfg. Мы увидели, что в файле /etc/default/grub содержится переменная GRUB_CMDLINE_LINUX_DEFAULT, которая определяет параметры ядра. Эти параметры передаются ядру Linux при его загрузке.

Команда dmesg используется для отображения сообщений из кольцевого буфера ядра. Эти сообщения содержат информацию о процессе загрузки системы, включая параметры командной строки ядра, которые были использованы.

Применим команду dmesg, чтобы посмотреть параметры командной строки ядра, переданные GRUB во время загрузки этой виртуальной машины.

Введите следующую команду в терминале и нажмите Enter:

dmesg | grep "Kernel command line"

Разберем эту команду:

  • dmesg: Отображает сообщения ядра.
  • |: Это символ пайпа (конвейера). Он берет вывод команды слева (dmesg) и передает его в качестве входных данных команде справа (grep).
  • grep "Kernel command line": Эта команда ищет строки, содержащие точную фразу "Kernel command line" во входных данных, которые она получает (от dmesg).

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

[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-*-generic root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vt.handoff=7

Вы можете увидеть параметры, такие как quiet и splash, которые, вероятно, были определены в переменной GRUB_CMDLINE_LINUX_DEFAULT в файле /etc/default/grub. Эти параметры сообщают ядру, как вести себя во время загрузки. Например, параметр quiet уменьшает количество выводимой информации во время загрузки, а параметр splash включает графический экран загрузки.

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

Теперь вы успешно исследовали конфигурацию GRUB и проверили параметры ядра с помощью команды dmesg.

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке мы научились проверять, применяются ли настройки GRUB в Linux. Мы начали с изучения основного файла конфигурации GRUB, /etc/default/grub, с помощью команды cat, чтобы понять его содержимое и различные параметры, которые контролируют поведение GRUB во время процесса загрузки.

Просмотрев файл /etc/default/grub, мы получили представление о настройках, таких как параметры по умолчанию для загрузки, значения таймаута и аргументы командной строки ядра. Этот первый шаг является важным для понимания предполагаемой конфигурации GRUB перед проверкой ее применения.