Como verificar se uma opção de configuração do kernel está definida no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, exploraremos diferentes métodos para verificar se uma opção específica de configuração do kernel está definida no Linux. Começaremos examinando o arquivo /proc/config.gz, usando zcat para descomprimir e visualizar a configuração do kernel, caso o arquivo exista. Este arquivo contém as opções de configuração usadas para construir o kernel atualmente em execução.

Se /proc/config.gz não estiver disponível, prosseguiremos para verificar o arquivo de configuração do kernel no diretório /boot/, procurando especificamente por arquivos nomeados config-*. Isso fornece uma maneira alternativa de verificar a configuração do kernel. Finalmente, inspecionaremos os logs de configuração no dmesg.

Verificar a configuração do kernel com zcat /proc/config.gz

Nesta etapa, exploraremos como verificar a configuração do kernel usando o comando zcat e o arquivo /proc/config.gz. A configuração do kernel determina quais recursos são integrados ao kernel, e entendê-la pode ser útil para depuração e personalização.

Primeiramente, vamos entender o que é /proc/config.gz. É um arquivo compactado com gzip que contém as opções de configuração do kernel usadas para construir o kernel atualmente em execução. No entanto, ele pode nem sempre estar presente, dependendo da configuração de compilação do kernel.

Para verificar se o arquivo existe, use o seguinte comando:

ls -l /proc/config.gz

Se o arquivo existir, você verá uma saída semelhante a esta:

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

Se o arquivo não existir, você verá uma mensagem de erro:

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

Se o arquivo existir, podemos usar zcat para descomprimir e visualizar seu conteúdo. zcat é um utilitário de linha de comando que descomprime arquivos compactados com gzip e imprime a saída na saída padrão.

Execute o seguinte comando para visualizar a configuração do kernel:

zcat /proc/config.gz | less

Este comando direciona a saída de zcat /proc/config.gz para o comando less, que permite rolar pelo arquivo de configuração.

Você verá uma longa lista de opções de configuração, cada uma precedida por CONFIG_. Por exemplo:

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

Pressione q para sair do less.

Se /proc/config.gz não existir, você precisará prosseguir para a próxima etapa para verificar /boot/config-*.

Verificar a configuração em /boot/config-*

Nesta etapa, verificaremos o arquivo de configuração do kernel no diretório /boot/. Este é outro local comum onde a configuração do kernel é armazenada. O arquivo geralmente é nomeado config-*, onde * representa a versão do kernel.

Primeiro, vamos listar os arquivos no diretório /boot/ para ver se um arquivo config-* existe. Use o seguinte comando:

ls -l /boot/config-*

Você pode ver uma saída semelhante a esta:

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

Se você vir um arquivo config-*, isso significa que a configuração do kernel está armazenada nesse arquivo. Se você não vir nenhum arquivo config-*, isso significa que a configuração do kernel não está armazenada no local padrão em /boot/.

Para visualizar o conteúdo do arquivo config-*, você pode usar o comando cat. Substitua [占位符: kernel version] pela versão real do kernel do nome do arquivo. Por exemplo, se o arquivo for nomeado /boot/config-5.15.0-76-generic, o comando seria:

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

Este comando direciona a saída de cat /boot/config-[占位符: kernel version] para o comando less, que permite rolar pelo arquivo de configuração.

Você verá uma longa lista de opções de configuração, cada uma precedida por CONFIG_. Por exemplo:

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

Pressione q para sair do less.

Se você tiver vários arquivos config-*, pode verificar a versão do kernel usando o comando uname -r:

uname -r

Isso exibirá a versão do kernel atualmente em execução no seu sistema. Você pode então usar esta informação para selecionar o arquivo config-* correto para visualizar.

Inspecionar logs de configuração em dmesg

Nesta etapa, inspecionaremos os logs do kernel usando o comando dmesg para encontrar informações sobre a configuração do kernel. dmesg é um utilitário de linha de comando que imprime o buffer de mensagens do kernel. Este buffer contém informações sobre hardware, drivers e outros eventos do sistema, incluindo detalhes sobre a configuração do kernel no momento da inicialização.

Para visualizar os logs do kernel, use o seguinte comando:

dmesg | less

Este comando direciona a saída de dmesg para o comando less, que permite rolar pelos logs.

As informações de configuração do kernel geralmente são impressas no início dos logs durante o processo de inicialização. Para filtrar os logs e encontrar mensagens relacionadas à configuração, você pode usar o comando grep.

Tente o seguinte comando para pesquisar linhas contendo "config":

dmesg | grep config | less

Este comando direciona a saída de dmesg para grep config, que filtra as linhas contendo a palavra "config", e então direciona o resultado para less para facilitar a visualização.

Você pode ver uma saída semelhante a esta:

[占位符: 时间戳] 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

Você também pode pesquisar opções de configuração específicas. Por exemplo, para descobrir se CONFIG_EXT4_FS está habilitado, use o seguinte comando:

dmesg | grep CONFIG_EXT4_FS

Se a opção estiver habilitada, você verá uma linha semelhante a esta:

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

Se a opção não estiver habilitada, você não verá nenhuma saída.

Ao inspecionar a saída de dmesg, você pode verificar a configuração do kernel e identificar quaisquer problemas potenciais relacionados a opções de configuração ausentes ou incorretas.

Pressione q para sair do less.

Resumo

Neste laboratório, exploramos métodos para verificar a configuração do kernel no Linux. Primeiro, tentamos acessar a configuração do kernel via zcat /proc/config.gz, aprendendo que este arquivo contém as opções de configuração do kernel usadas para construir o kernel atualmente em execução, mas sua presença depende da configuração de construção do kernel. Usamos ls -l para verificar sua existência e zcat direcionado para less para visualizar seu conteúdo, se disponível.

Se /proc/config.gz não for encontrado, o laboratório nos direciona a prosseguir para a próxima etapa, que envolve a verificação do arquivo de configuração do kernel no diretório /boot/, normalmente nomeado config-*.