Введение
В этом практическом занятии (лабораторной работе) мы рассмотрим различные методы проверки, установлена ли определенная опция конфигурации ядра в Linux. Мы начнем с изучения файла /proc/config.gz, используя команду zcat для распаковки и просмотра конфигурации ядра, если файл существует. Этот файл содержит параметры конфигурации, использованные для сборки текущего запущенного ядра.
Если файл /proc/config.gz недоступен, мы продолжим поиск файла конфигурации ядра в директории /boot/, в частности, будем искать файлы с именами config-*. Это представляет собой альтернативный способ проверки конфигурации ядра. Наконец, мы проверим журналы конфигурации в выводе команды dmesg.
Проверка конфигурации ядра с помощью 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-*.



