Kernel parameters (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de Kernel parameters. Data da última tradução: 2020-06-26. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Existem três maneiras de passar opções para o kernel e, assim, controlar seu comportamento:

  1. Ao compilar o kernel — no arquivo config do kernel. Veja Kernel#Compilação para detalhes.
  2. Ao iniciar o kernel — usando parâmetros de linha de comando (geralmente, por meio de um gerenciador de boot).
  3. Em tempo real — por meio de arquivos no /proc/sys/ ([[veja sysctl]]) e no /sys/).

Entre os três métodos, as opções configuráveis diferem em disponibilidade, seus nome e o método no qual são especificadas. Esta página só explica o segundo método (parâmetros de linha de comando do kernel) e mostra uma lista dos parâmetros do kernel mais usados no Arch Linux.

A maioria dos parâmetros está associada a subsistemas e funciona apenas se o kernel estiver configurado com esses subsistemas integrados. Eles também dependem da presença do hardware ao qual estão associados.

Parâmetros de linha de comando do kernel têm o formato parâmetro ou parâmetro=valor.

Nota: Todos os parâmetros do kernel diferenciam maiúsculo de minúsculo.
Dica: As opções de módulos carregáveis podem ser definidos via arquivos .conf em /etc/modprobe.d/. Veja Módulos de kernel#Usando arquivos em /etc/modprobe.d/.

Configuração

Nota:

Os parâmetros do kernel podem ser definidos temporariamente, editando a entrada de inicialização no menu de seleção de inicialização do gerenciador de boot ou modificando seu arquivo de configuração.

Os exemplos a seguir adicionam os parâmetros quiet e splash a Syslinux, systemd-boot, GRUB, GRUB Legacy, LILO e rEFInd.

Syslinux

  • Pressione Tab quando o menu é exibido e adicione-os ao final da string:
linux /boot/vmlinuz-linux root=/dev/sda3 initrd=/boot/initramfs-linux.img quiet splash
Pressione Enter para inicializar com esses parâmetros.
  • Para tornar persistentes as alterações após a reinicialização, edite /boot/syslinux/syslinux.cfg e adicione-os à linha APPEND:
APPEND root=/dev/sda3 quiet splash

Para mais informações sobre configurar o Syslinux, veja o artigo Syslinux.

systemd-boot

  • Pressione e quando o menu aparecer e adicione os parâmetros ao final da string:
initrd=\initramfs-linux.img root=/dev/sda2 quiet splash
Pressione Enter para inicializar com esses parâmetros.
Nota:
  • Se você não tiver definido um valor para o tempo limite do menu, será necessário manter Espaço pressionado durante a inicialização para que o menu do systemd-boot apareça.
  • Se você não conseguir editar os parâmetros no menu de inicialização, você pode precisar editar o /boot/loader/loader.conf e adicionar o editor 1 para habilitar a edição.
  • Para tornar persistentes as alterações após a reinicialização, edite /boot/loader/entries/arch.conf (presumindo que você configurou sua partição de sistema EFI) e adicionou-as à linha options:
options root=/dev/sda2 quiet splash

Para mais informações sobre configurar o systemd-boot, veja o artigo systemd-boot.

GRUB

  • Pressione e quando o menu é exibido e adicione-os à linha linux:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff quiet splash
Pressione Ctrl+x para inicializar com esses parâmetros.
  • Para tornar persistentes as alterações após a reinicialização, você poderia editar manualmente /boot/grub/grub.cfg com exatamente a linha acima, mas a melhor prática é:
Editar /etc/default/grub e anexar suas opções de kernel entre aspas na linha GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
E, então, gerar novamente automaticamente o arquivo grub.cfg com:
# grub-mkconfig -o /boot/grub/grub.cfg

Para mais informações sobre configurar o GRUB, veja o artigo GRUB.

GRUB Legacy

  • Pressione e quando o menu é exibido e adicione-os à linha kernel:
kernel /boot/vmlinuz-linux root=/dev/sda3 quiet splash
Pressione b para inicializar com esses parâmetros.
  • Para tornar persistentes as alterações após a reinicialização, edite /boot/grub/menu.lst e adicione-os à linha kernel, exatamente como acima.

Para mais informações sobre configurar o GRUB Legacy, veja o artigo GRUB Legacy.

LILO

  • Adicione-os a /etc/lilo.conf:
image=/boot/vmlinuz-linux
        ...
        quiet splash

Para mais informações sobre configurar o LILO, veja o artigo LILO.

rEFInd

  • Pressione +, F2 ou Insert na entrada do menu desejada e pressione-a novamente na entrada do submenu. Adicione os parâmetros do kernel ao final da string:
root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff rw initrd=\boot\initramfs-linux.img quiet splash
Pressione Enter para inicializar com esses parâmetros.
  • Para tornar persistentes as alterações após a reinicialização, edite /boot/refind_linux.conf e anexe-os entre aspas a todas as linhas necessárias, por exemplo
"Boot using default options"   "root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff rw quiet splash"
  • Se você desativou a detecção automática de sistemas operacionais em rEFInd e está definindo sub-rotinas do sistema operacional em vez de esp/EFI/refind/refind.conf para carregar seus sistemas operacionais, é possível editá-lo como:
menuentry "Arch Linux" {
	...
	options  "root=PARTUUID=978e3e81-8048-4ae1-8a06-aa727458e8ff rw quiet splash"
	...
}

Para mais informações sobre configurar o rEFInd, veja o artigo rEFInd.

EFISTUB

Veja EFISTUB#Usando UEFI diretamente.

dracut

dracut é capaz de incorporar os parâmetros do kernel no initramfs, permitindo omiti-los da configuração do gerenciador de boot. Consulte dracut#Opções de linha de comando do kernel.

Sobrepondo cmdline

Mesmo sem acesso ao seu gerenciador de boot, é possível alterar os parâmetros do kernel para habilitar a depuração (se você tiver acesso root). Isso pode ser feito sobrescrevendo /proc/cmdline, que armazena os parâmetros do kernel. No entanto, /proc/cmdline não é gravável, mesmo como root, portanto, esse hack é realizado usando uma montagem de ligação para mascarar o caminho.

Primeiro crie um arquivo contendo os parâmetros desejados do kernel

/root/cmdline
root=/dev/disk/by-label/ROOT ro console=tty1 logo.nologo debug

Em seguida, use uma montagem de "bind" para sobrescrever os parâmetros

# mount -n --bind -o ro /root/cmdline /proc/cmdline

A opção -n pula a adição da montagem a /etc/mtab, portanto, funcionará mesmo se a raiz estiver montada como somente leitura. Você pode cat /proc/cmdline para confirmar que sua alteração foi bem-sucedida.

Lista de parâmetros

Esta lista não é exaustiva. Para obter uma lista completa de todas as opções, consulte a documentação do kernel

parâmetro Descrição
root= Sistema de arquivo raiz. Consulte init/do_mounts.c por formatos de nome de dispositivos compatíveis no kernel. Nota que um initramfs com suporte a mais formatos de nomes do udev.
rootflags= Opções de montagem do sistema de arquivos raiz
ro Monta o dispositivo raiz como somente leitura na inicialização (padrão1).
rw Monta o dispositivo raiz como leitura e gravação na inicialização.
initrd= Especifica o local do ramdisk inicial. Para gerenciadores de boot do UEFI e EFISTUB, o caminho deve ser especificado usando contrabarra (\) como separadores de caminho.
init= Executa o binário especificado em vez de /sbin/init como processo init. O pacote systemd-sysvcompat cria links simbólicos /sbin/init para /usr/lib/systemd/systemd para usar o systemd.
init=/bin/sh Inicializa para o shell.
systemd.unit= Inicializa para um target especificado.
resume= Especifica um dispositivo swap para usar ao acordar de hibernation.
nomodeset Desabilita Kernel mode setting.
zswap.enabled Habilita Zswap.
panic= Tempo antes de reiniciar automaticamente ao ocorrer "kernel panic".
debug Habilita depuração de kernel (nível de log de eventos).
mem= Força o uso de uma quantidade específica de memória a ser usada.
maxcpus= Número máximo de processadores que um kernel SMP vai usar durante a inicialização.
selinux= Desabilita ou habilita o SELinux em tempo de inicialização.
netdev= Parâmetros de dispositivos de rede.
video= Sobrepõe configurações padrão do vídeo framebuffer.

1 mkinitcpio usa ro como valor padrão quando rw nem ro é definido pelo gerenciador de boot. Gerenciadores de boot podem definir o valor a ser usado. Por exemplo, o GRUB usa rw por padrão (veja FS#36275 como referência).

Veja também