Kernel parameters (Português)
Existem três maneiras de passar opções para o kernel e, assim, controlar seu comportamento:
- Ao compilar o kernel — no arquivo
config
do kernel. Veja Kernel#Compilação para detalhes. - Ao iniciar o kernel — usando parâmetros de linha de comando (geralmente, por meio de um gerenciador de boot), ou como também por meio de uma imagem de kernel unificada.
- No tempo de execução — por meio de arquivos no
/proc/sys/
(veja sysctl) e no/sys/
.
/etc/modprobe.d/
. Veja em Módulos de kernel#Usando arquivos em /etc/modprobe.d/.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
, ou módulo.parâmetro=valor
.
- Você pode verificar os parâmetros com que seu sistema foi inicializado executando
cat /proc/cmdline
e veja se ele inclui suas alterações. - Todos os parâmetros de kernel são case-sensitive, ou seja, existe a diferenciação entre letras maiúsculas e minúsculas.
Configuração do gerenciador de boot
Os parâmetros de kernel podem ser configurados de forma temporária ao editar a entrada de inicialização, na seleção do menu de boot no gerenciador de boot, ou de forma permanente ao modificar o arquivo de configuração do gerenciador de boot.
Os exemplos a seguir adicionam os parâmetros quiet
e splash
nos gerenciadores de boot GRUB, GRUB Legacy, LILO, Limine, rEFInd, Syslinux e systemd-boot.
GRUB
- Pressione
e
quando o menu é exibido e adicione-os à linhalinux
:
linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
- Pressione
Ctrl+x
para inicializar com esses parâmetros.
- Para tornar persistentes as alterações após a reinicialização, você pode editar manualmente /boot/grub/grub.cfg com exatamente a mesma linha acima, ou ao usar grub-mkconfig:
- Editar
/etc/default/grub
e anexar suas opções de kernel entre aspas na linhaGRUB_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
GRUB Legacy
- Pressione
e
quando o menu é exibido e adicione-os à linhakernel
:
kernel /boot/vmlinuz-linux root=0a3407de-014b-458b-b5c1-848e92a327a3 rw 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 à linhakernel
, exatamente como acima.
LILO
- Adicione-os em
/etc/lilo.conf
ao usarappend
ouaddappend
:
image=/boot/vmlinuz-linux ... append="quiet splash"
Limine
- Para temporariamente adicionar um parâmetro de kernel, pressione
e
quando a seleção no menu de boot aparecer na tela e modifique a linhakernel_cmdline
:
kernel_cmdline:
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
- Para aplicar as mudanças permanentemente, edite a linha
kernel_cmdline
no arquivo de configuração do Limine localizado emesp/limine.conf
:
/+Arch Linux ... kernel_cmdline: root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
rEFInd
- Pressione
Insert
,F2
, ouTab
, ou+
na entrada do menu desejada e pressione-a novamente na entrada do submenu. Adicione os parâmetros do kernel ao final da string:
root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 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=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash"
- Se você desativou a detecção automática de sistemas operacionais em rEFInd e está definindo várias estrofes de OSes ao invés de colocar dentro de
esp/EFI/refind/refind.conf
para carregar seus OSes, é possível editá-lo como:
menuentry "Arch Linux" { ... options "root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash" ... }
Syslinux
- Pressione
Tab
quando o menu aparecer e adicione-os ao final da string:
linux /boot/vmlinuz-linux root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw initrd=/boot/initramfs-linux.img quiet splash
- Pressione
Enter
para inicializar com estes parâmetros.
- Para fazer a mudança persistente depois da reinicialização, edite
/boot/syslinux/syslinux.cfg
e adicione-os na linha doAPPEND
:
APPEND root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
systemd-boot
- Pressione
e
quando o menu aparecer e adicione os parâmetros ao final da string:
initrd=\initramfs-linux.img root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
- Pressione
Enter
para inicializar com esses parâmetros.
- 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ê então precisará editar o
/boot/loader/loader.conf
e adicionar oeditor 1
para habilitar a edição.
- Para tornar persistentes as alterações após a reinicialização, edite
/boot/loader/entries/arch.conf
(supondo que você configurou sua partição de sistema EFI) e adicione-os na linhaoptions
:
options root=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 rw quiet splash
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.
EFI boot stub
Veja a página em inglês EFI boot stub#Using UEFI directly.
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=UUID=0a3407de-014b-458b-b5c1-848e92a327a3 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 abrange todas as opções. Para obter uma lista completa de todas as opções, consulte a documentação e veja a seção sobre os parâmetros na linha de comando do kernel.
parâmetro | Descrição |
---|---|
init | /sbin/init ao /usr/lib/systemd/systemd para que seja usado systemd. Configure-o para /bin/sh para inicializar o shell.
|
initrd | Especifica a localização do ramdisk inicial. Para gerenciadores de boot UEFI e em um EFI boot stub, o caminho precisa ser especificado com barras invertidas \ , sendo estes os separadores entre os diretórios.
|
cryptdevice | Especifica a localização de uma partição criptografada com dm-crypt e adicionalmente com um nome advindo de um mapeador de dispositivos. |
debug | Habilita a depuração do kernel (nível de log de eventos). |
lsm | Configura a ordem de inicialização dos módulos de segurança do Linux. Usado para habilitar AppArmor, SELinux ou TOMOYO. |
maxcpus | Número máximo de processadores que um kernel com multiprocessamento simétrico (SMP) irá usar durante o início do sistema. |
mem | Força o uso de uma quantidade específica de memória. |
netdev | Parâmetros dos dispositivos de rede. |
nomodeset | Desabilita Kernel mode setting. |
panic | Tempo antes de reiniciar automaticamente ao ocorrer um pânico no kernel. |
resume | Especifica um dispositivo swap para usar ao acordar o sistema da hibernação. |
ro | Monta o dispositivo raiz/root com a permissão de somente leitura na inicialização. Este é o padrão do mkinitcpio1. |
root | Sistema de arquivo raiz/root. Consulte init/do_mounts.c para ver os formatos de nome de dispositivos compatíveis com o kernel. Note que um initramfs com udev oferece suporte a mais formatos de nomes. Uma instalação compatível com systemd#Montagem automática de partição GPT permite que seja totalmente omitido o parâmetro ou que o mesmo seja usado, de maneira alternativa, como root=gpt-auto .
|
rootflags | Opções de montagem do sistema de arquivos raiz/root. Útil para configurar opções que não podem ser aplicadas ao remontar (ou seja, pelo systemd-remount-fs.service(8)). Por exemplo, a opção discard de um volume raiz/root formatado com XFS ou com a opção subvol= de um volume formatado com Btrfs que usa um subvolume como raiz/root.
|
rw | Monta o dispositivo raiz/root com a permissão de leitura e gravação na inicialização. Este é o padrão do kernel1. |
systemd.unit | Inicializa o sistema em um lugar especificado pelo target. |
video | Sobrescreve o framebuffer (memória de vídeo) nas configurações padrões de vídeo. |
- O kernel usa
rw
se não houver explicitamente definidoro
ourw
na linha de comando do kernel (veja bootparam(7) § General non-device-specific boot arguments). Entretanto, mkinitcpio usaro
como valor padrão e sobrescreve o valor padrão do kernel (veja mkinitcpio(8) § EARLY INIT ENVIRONMENT). Gerenciadores de boot talvez também tenham sua própria configuração padrão, por exemplo, grub-mkconfig usarw
(veja a referência em FS#36275).
rw
é requisito quando é usado o hook fsck do mkinitcpio (veja [1]) ou quando é usado F2FS como um sistema de arquivo raiz/root.