Como verificar se uma opção de inicialização do kernel está habilitada no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma opção específica de inicialização do kernel está habilitada no Linux. Exploraremos três métodos principais para alcançar esse objetivo.

Primeiramente, você usará o comando cat /proc/cmdline para visualizar os argumentos da linha de comando passados para o kernel durante a sessão de inicialização atual. Em seguida, você examinará o arquivo de configuração do GRUB localizado em /etc/default/grub para entender onde algumas dessas opções de inicialização são configuradas. Por fim, você inspecionará os logs de inicialização usando o comando dmesg para ver como o kernel interpretou e aplicou as opções de inicialização. Ao concluir essas etapas, você obterá habilidades práticas para diagnosticar e entender o processo de inicialização do seu sistema Linux.

Verificar opções de inicialização com cat /proc/cmdline

Nesta etapa, exploraremos como visualizar as opções de inicialização usadas quando seu sistema Linux foi iniciado. Essa informação é armazenada em um arquivo especial dentro do sistema de arquivos /proc.

O sistema de arquivos /proc é um sistema de arquivos virtual no Linux que fornece informações sobre processos e outras informações do sistema. Ele não contém arquivos reais em seu disco, mas sim fornece uma janela para as estruturas de dados do kernel.

O arquivo que nos interessa é /proc/cmdline. Este arquivo contém os argumentos da linha de comando passados para o kernel no momento da inicialização. Esses argumentos podem influenciar como o kernel se comporta e qual hardware ele detecta.

Para visualizar o conteúdo deste arquivo, usaremos o comando cat. O comando cat é um utilitário simples usado para exibir o conteúdo de arquivos.

Abra seu terminal, caso ainda não esteja aberto. Você pode fazer isso clicando no ícone Xfce Terminal no lado esquerdo da sua área de trabalho.

Agora, digite o seguinte comando e pressione Enter:

cat /proc/cmdline

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

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

A saída exata variará dependendo da configuração do seu sistema, mas mostrará a imagem do kernel sendo inicializada (BOOT_IMAGE), a localização do sistema de arquivos raiz (root=) e outras opções como ro (sistema de arquivos somente leitura inicialmente), quiet e splash.

Entender essas opções de inicialização pode ser útil para solucionar problemas de inicialização ou configurar comportamentos específicos do kernel.

Lembre-se, /proc/cmdline é um arquivo dinâmico gerado pelo kernel, portanto, seu conteúdo reflete a sessão de inicialização atual.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar a configuração do GRUB com cat /etc/default/grub

Na etapa anterior, analisamos os argumentos da linha de comando passados para o kernel após ele ter sido iniciado. Agora, vamos ver de onde alguns desses argumentos podem se originar: o arquivo de configuração do GRUB.

GRUB (GRand Unified Bootloader) é um carregador de inicialização (boot loader). Sua principal função é carregar o kernel do sistema operacional na memória e passar o controle para ele. O arquivo de configuração do GRUB determina as opções do menu de inicialização, o sistema operacional padrão e os parâmetros do kernel.

O arquivo de configuração principal para o GRUB em muitos sistemas Linux é /etc/default/grub. Este arquivo contém configurações que são usadas para gerar a configuração real do menu de inicialização do GRUB.

Usaremos o comando cat novamente para visualizar o conteúdo deste arquivo.

Abra seu terminal, caso ainda não esteja aberto.

Digite o seguinte comando e pressione Enter:

cat /etc/default/grub

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

## 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"

Procure a linha que começa com GRUB_CMDLINE_LINUX_DEFAULT. As opções listadas aqui (como "quiet splash") são frequentemente passadas para o kernel no momento da inicialização, e você pode tê-las visto na saída de cat /proc/cmdline na etapa anterior.

Este arquivo é importante porque permite que você configure os parâmetros padrão do kernel sem ter que digitá-los manualmente toda vez que você inicializa.

Nota Importante: Se você fizesse alterações neste arquivo em um sistema real, normalmente precisaria executar sudo update-grub posteriormente para aplicar as alterações ao arquivo de configuração de inicialização real (/boot/grub/grub.cfg). No entanto, neste ambiente de laboratório, estamos apenas inspecionando o arquivo.

Clique em Continuar para prosseguir.

Inspecionar logs de inicialização com dmesg

Nesta etapa final, analisaremos as mensagens do buffer de anel do kernel usando o comando dmesg. O buffer de anel do kernel armazena mensagens do kernel, incluindo informações sobre detecção de hardware, drivers de dispositivos e eventos do sistema que ocorrem durante o processo de inicialização.

O comando dmesg é usado para exibir essas mensagens. É uma ferramenta crucial para diagnosticar problemas de hardware ou entender o que aconteceu durante a inicialização do sistema.

Abra seu terminal, caso ainda não esteja aberto.

Digite o seguinte comando e pressione Enter:

dmesg

Este comando exibirá uma lista potencialmente muito longa de mensagens. Essas mensagens são geradas pelo kernel à medida que ele inicializa e interage com o hardware e software do sistema.

Você verá uma saída semelhante a esta (a saída exata variará muito):

[    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
...

Observe que a saída inclui a versão do kernel e os argumentos da linha de comando, semelhante ao que vimos em /proc/cmdline.

Como a saída de dmesg pode ser extensa, é frequentemente útil canalizá-la para um paginador (pager) como less ou more para visualizá-la tela por tela.

Experimente este comando:

dmesg | less

Agora você pode usar as setas do teclado para rolar para cima e para baixo pela saída. Pressione q para sair do less.

Você também pode filtrar a saída usando grep para pesquisar palavras-chave específicas, como "error" ou o nome de um dispositivo de hardware.

Por exemplo, para ver mensagens relacionadas a dispositivos USB:

dmesg | grep -i usb

Este comando mostrará apenas as linhas contendo "usb" (sem distinção entre maiúsculas e minúsculas devido à flag -i).

Explorar a saída de dmesg é uma habilidade fundamental para a administração e solução de problemas de sistemas Linux.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, aprendemos como verificar se uma opção de inicialização do kernel está habilitada no Linux, examinando o arquivo /proc/cmdline. Este arquivo fornece uma visão dinâmica dos argumentos da linha de comando passados para o kernel durante a sessão de inicialização atual, oferecendo informações sobre como o sistema foi iniciado e sua configuração inicial.

Também começamos a explorar a origem dessas opções de inicialização, analisando o arquivo de configuração do GRUB, /etc/default/grub, que é um local chave para definir os parâmetros de inicialização do kernel antes mesmo do sistema iniciar.