Как проверить, включена ли опция загрузки ядра в Linux

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

Введение

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

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

Проверка опций загрузки с помощью команды cat /proc/cmdline

На этом этапе мы узнаем, как просмотреть опции загрузки, использованные при запуске вашей Linux - системы. Эта информация хранится в специальном файле в файловой системе /proc.

Файловая система /proc представляет собой виртуальную файловую систему в Linux, которая предоставляет информацию о процессах и другой системной информации. Она не содержит реальных файлов на вашем диске, а скорее дает доступ к структурам данных ядра.

Файл, который нас интересует, - это /proc/cmdline. Этот файл содержит аргументы командной строки, переданные ядру во время загрузки. Эти аргументы могут повлиять на поведение ядра и на то, какое оборудование оно обнаруживает.

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

Если терминал еще не открыт, откройте его. Для этого нажмите на значок Xfce Terminal слева на рабочем столе.

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

cat /proc/cmdline

Вы увидите вывод, похожий на следующий:

BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7

Точный вывод будет различаться в зависимости от конфигурации вашей системы, но он покажет образ ядра, который загружается (BOOT_IMAGE), местоположение корневой файловой системы (root=), а также другие опции, такие как ro (файловая система в режиме только для чтения в начале), quiet и splash.

Понимание этих опций загрузки может помочь при устранении неполадок при загрузке или настройке определенного поведения ядра.

Помните, что /proc/cmdline - это динамический файл, сгенерированный ядром, поэтому его содержимое отражает текущую сессию загрузки.

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

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

На предыдущем этапе мы рассмотрели аргументы командной строки, переданные ядру после его запуска. Теперь давайте посмотрим, откуда могут взяться некоторые из этих аргументов: из файла конфигурации GRUB.

GRUB (GRand Unified Bootloader, Универсальный загрузчик GRUB) - это загрузчик системы. Его основная задача - загрузить ядро операционной системы в память и передать ей управление. Файл конфигурации GRUB определяет параметры меню загрузки, операционную систему по умолчанию и параметры ядра.

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

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

Если терминал еще не открыт, откройте его.

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

cat /etc/default/grub

Вы увидите вывод, похожий на следующий:

## If you change this file, run 'update-grub' afterwards to update
## /boot/grub/grub.cfg.
## For full documentation of the options in this file, see:
##   info -f grub -n 'Simple configuration'

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 booting from a full graphics screen using grub-gfxpayload
#GRUB_GFXPAYLOAD_LINUX=keep

## Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

## The resolution used on graphical terminal
## needs to be in the format e.g. 640x480 or 800x600 or 1024x768
## and your graphics card needs to support it. A list of all available resolutions can
## be found with 'videoinfo' command in grub.
#GRUB_GFXMODE=640x480

## Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_UUID=true

## Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

## Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Найдите строку, начинающуюся с GRUB_CMDLINE_LINUX_DEFAULT. Опции, перечисленные здесь (например, "quiet splash"), часто передаются ядру при загрузке, и вы, возможно, видели их в выводе команды cat /proc/cmdline на предыдущем этапе.

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

Важное примечание: Если бы вы внесли изменения в этот файл на реальной системе, обычно вам бы пришлось выполнить команду sudo update-grub после этого, чтобы применить изменения к фактическому файлу конфигурации загрузки (/boot/grub/grub.cfg). Однако в этом учебном окружении мы просто исследуем файл.

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

Проверка журналов загрузки с помощью dmesg

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

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

Если терминал еще не открыт, откройте его.

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

dmesg

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

Вы увидите вывод, похожий на следующий (точный вывод может сильно отличаться):

[    0.000000] Linux version ... (buildd@lcy02-amd64-...) (gcc-...) #...-Ubuntu SMP ...
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-... root=UUID=... ro console=ttyS0,... quiet splash vt.handoff=7
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
...
[    1.234567] usbcore: registered new interface driver usbfs
[    1.234567] usbcore: registered new interface driver hub
[    1.234567] usbcore: registered new device driver usb
...

Обратите внимание, что вывод включает версию ядра и аргументы командной строки, аналогично тому, что мы видели в /proc/cmdline.

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

Попробуйте эту команду:

dmesg | less

Теперь вы можете использовать стрелки на клавиатуре для прокрутки вывода вверх и вниз. Нажмите q, чтобы выйти из less.

Вы также можете фильтровать вывод с помощью grep, чтобы искать определенные ключевые слова, например, "error" или имя аппаратного устройства.

Например, чтобы увидеть сообщения, связанные с USB - устройствами:

dmesg | grep -i usb

Эта команда покажет только строки, содержащие "usb" (без учета регистра благодаря флагу -i).

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

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

Резюме

В этом учебном модуле мы научились проверять, включена ли опция загрузки ядра в Linux, просматривая файл /proc/cmdline. Этот файл предоставляет динамическое представление аргументов командной строки, переданных ядру во время текущей сессии загрузки, и позволяет понять, как система была запущена и как настроена изначально.

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