Как проверить, установлен ли параметр конфигурации ядра в Linux

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

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

Введение

В этом практическом занятии (лабораторной работе) мы рассмотрим различные методы проверки, установлена ли определенная опция конфигурации ядра в Linux. Мы начнем с изучения файла /proc/config.gz, используя команду zcat для распаковки и просмотра конфигурации ядра, если файл существует. Этот файл содержит параметры конфигурации, использованные для сборки текущего запущенного ядра.

Если файл /proc/config.gz недоступен, мы продолжим поиск файла конфигурации ядра в директории /boot/, в частности, будем искать файлы с именами config-*. Это представляет собой альтернативный способ проверки конфигурации ядра. Наконец, мы проверим журналы конфигурации в выводе команды dmesg.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/CompressionandArchivingGroup(["Compression and Archiving"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/less("File Paging") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/uname("System Information Displaying") linux/CompressionandArchivingGroup -.-> linux/gzip("Gzip") subgraph Lab Skills linux/ls -.-> lab-558861{{"Как проверить, установлен ли параметр конфигурации ядра в Linux"}} linux/cat -.-> lab-558861{{"Как проверить, установлен ли параметр конфигурации ядра в Linux"}} linux/less -.-> lab-558861{{"Как проверить, установлен ли параметр конфигурации ядра в Linux"}} linux/grep -.-> lab-558861{{"Как проверить, установлен ли параметр конфигурации ядра в Linux"}} linux/uname -.-> lab-558861{{"Как проверить, установлен ли параметр конфигурации ядра в Linux"}} linux/gzip -.-> lab-558861{{"Как проверить, установлен ли параметр конфигурации ядра в Linux"}} end

Проверка конфигурации ядра с помощью zcat /proc/config.gz

На этом этапе мы рассмотрим, как проверить конфигурацию ядра с использованием команды zcat и файла /proc/config.gz. Конфигурация ядра определяет, какие функции встроены в ядро, и понимание ее может быть полезным для отладки и настройки.

Сначала разберемся, что такое /proc/config.gz. Это сжатый с использованием gzip файл, содержащий параметры конфигурации ядра, использованные для сборки текущего запущенного ядра. Однако он может отсутствовать в зависимости от конфигурации сборки ядра.

Чтобы проверить, существует ли файл, используйте следующую команду:

ls -l /proc/config.gz

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

-r-------- 1 root root [占位符: 文件大小] [占位符: 日期] /proc/config.gz

Если файл не существует, вы увидите сообщение об ошибке:

ls: cannot access '/proc/config.gz': No such file or directory

Если файл существует, мы можем использовать zcat для распаковки и просмотра его содержимого. zcat - это утилита командной строки, которая распаковывает сжатые с использованием gzip файлы и выводит результат на стандартный вывод.

Выполните следующую команду, чтобы просмотреть конфигурацию ядра:

zcat /proc/config.gz | less

Эта команда передает вывод zcat /proc/config.gz в команду less, которая позволяет прокручивать файл конфигурации.

Вы увидите длинный список параметров конфигурации, каждый из которых начинается с CONFIG_. Например:

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

Нажмите q, чтобы выйти из less.

Если файл /proc/config.gz не существует, вам нужно перейти к следующему этапу и проверить /boot/config-*.

Проверка конфигурации в /boot/config-*

На этом этапе мы проверим наличие файла конфигурации ядра в директории /boot/. Это еще одно распространенное место хранения конфигурации ядра. Файл обычно называется config-*, где * представляет версию ядра.

Сначала выведем список файлов в директории /boot/, чтобы проверить, существует ли файл config-*. Используйте следующую команду:

ls -l /boot/config-*

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

-rw------- 1 root root [占位符: 文件大小] [占位符: 日期] /boot/config-[占位符: kernel version]

Если вы видите файл config-*, это означает, что конфигурация ядра хранится в этом файле. Если вы не видите никаких файлов config-*, это означает, что конфигурация ядра не хранится в стандартном месте в /boot/.

Чтобы просмотреть содержимое файла config-*, вы можете использовать команду cat. Замените [占位符: kernel version] на фактическую версию ядра из имени файла. Например, если файл называется /boot/config-5.15.0-76-generic, команда будет следующей:

cat /boot/config-5.15.0-76-generic | less

Эта команда передает вывод cat /boot/config-[占位符: kernel version] в команду less, которая позволяет прокручивать файл конфигурации.

Вы увидите длинный список параметров конфигурации, каждый из которых начинается с CONFIG_. Например:

CONFIG_POSIX_MQUEUE=y
CONFIG_FHANDLE=y
CONFIG_XFRM=y
CONFIG_XFRM_ALGO=y
CONFIG_XFRM_USER=y
CONFIG_XFRM_INTERFACE=y
CONFIG_INET=y

Нажмите q, чтобы выйти из less.

Если у вас есть несколько файлов config-*, вы можете проверить версию ядра с помощью команды uname -r:

uname -r

Эта команда выведет версию ядра, которая в настоящее время запущена на вашей системе. Затем вы можете использовать эту информацию для выбора правильного файла config-* для просмотра.

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

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

Чтобы просмотреть журналы ядра, используйте следующую команду:

dmesg | less

Эта команда передает вывод dmesg в команду less, которая позволяет прокручивать журналы.

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

Попробуйте следующую команду, чтобы найти строки, содержащие "config":

dmesg | grep config | less

Эта команда передает вывод dmesg в grep config, которая фильтрует строки, содержащие слово "config", а затем передает результат в less для удобного просмотра.

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

[占位符: 时间戳] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[占位符: kernel version] root=UUID=[占位符: UUID] ro quiet splash  vt.handoff=7
[占位符: 时间戳]  Kernel command line: BOOT_IMAGE=/boot/vmlinuz-[占位符: kernel version] root=UUID=[占位符: UUID] ro quiet splash vt.handoff=7
[占位符: 时间戳]  DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS [占位符: BIOS version] 04/01/2014

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

dmesg | grep CONFIG_EXT4_FS

Если параметр включен, вы увидите строку, похожую на следующую:

[占位符: 时间戳]  EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

Если параметр не включен, вы не увидите никакого вывода.

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

Нажмите q, чтобы выйти из less.

Резюме

В этом практическом занятии (лабораторной работе) мы изучили методы проверки конфигурации ядра в Linux. Сначала мы попытались получить доступ к конфигурации ядра с помощью команды zcat /proc/config.gz и узнали, что этот файл содержит параметры конфигурации ядра, использованные для сборки текущего запущенного ядра, но его наличие зависит от конфигурации сборки ядра. Мы использовали команду ls -l для проверки его существования и zcat, перенаправленный в less, чтобы просмотреть его содержимое, если он был доступен.

Если файл /proc/config.gz не был найден, практическое занятие (лабораторная работа) направляет нас к следующему шагу, который включает проверку наличия файла конфигурации ядра в директории /boot/, обычно именуемого config-*.