Kernel parameters (Português)
Existem três maneiras de passar opções para o kernel e, assim, controlar seu comportamento:
- Ao compilar o kernel. Veja Kernel#Compilation para detalhes.
- Ao iniciar o kernel (geralmente, quando chamado por um gerenciadro de boot).
- Em tempo real (atraveś de arquivos no
/proce no/sys). Veja sysctl para detalhes.
Esta página explica mais detalhadamente o segundo método e mostra uma lista dos parâmetros do kernel mais usados no Arch Linux.
Nem todos os parâmetros estão sempre disponíveis. A maioria 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 têm o formato parâmetro ou parâmetro=valor.
Contents
Configuração
- Você pode verificar os parâmetros com que seu sistema foi inicializado executando
cat /proc/cmdlinee veja se ele inclui suas alterações. - A mídia de instalação do Arch Linux usa Syslinux para sistemas BIOS e systemd-boot para sistemas UEFI.
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
Tabquando 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
Enterpara inicializar com esses parâmetros.
- Para tornar persistentes as alterações após a reinicialização, edite
/boot/syslinux/syslinux.cfge adicione-os à linhaAPPEND:
APPEND root=/dev/sda3 quiet splash
Para mais informações sobre configurar o Syslinux, veja o artigo Syslinux.
systemd-boot
- Pressione
equando o menu aparecer e adicione os parâmetros ao final da string:
initrd=\initramfs-linux.img root=/dev/sda2 quiet splash
- Pressione
Enterpara inicializar com esses parâmetros.
- Se você não tiver definido um valor para o tempo limite do menu, será necessário manter
Espaçopressionado 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.confe adicionar oeditor 1para 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 à linhaoptions:
options root=/dev/sda2 quiet splash
Para mais informações sobre configurar o systemd-boot, veja o artigo systemd-boot.
GRUB
- Pressione
equando o menu é exibido e adicione-os à linhalinux:
linux /boot/vmlinuz-linux root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff quiet splash
- Pressione
Ctrl+xpara inicializar com esses parâmetros.
- Para tornar persistentes as alterações após a reinicialização, você poderia editar manualmente
/boot/grub/grub.cfgcom exatamente a linha acima, mas a melhor prática é:
- Editar
/etc/default/grube anexar suas opções de kernel à linhaGRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
- E, então, gerar novamente automaticamente o arquivo
grub.cfgcom:
# grub-mkconfig -o /boot/grub/grub.cfg
Para mais informações sobre configurar o GRUB, veja o artigo GRUB.
GRUB Legacy
- Pressione
equando o menu é exibido e adicione-os à linhakernel:
kernel /boot/vmlinuz-linux root=/dev/sda3 quiet splash
- Pressione
bpara inicializar com esses parâmetros.
- Para tornar persistentes as alterações após a reinicialização, edite
/boot/grub/menu.lste adicione-os à linhakernel, 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
+,F2ouInsertna 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
Enterpara inicializar com esses parâmetros.
- Para tornar persistentes as alterações após a reinicialização, edite
/boot/refind_linux.confe anexe-os a todas as linhas, ou apenas às 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.confpara 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 (Português)#Usando UEFI diretamente.
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. |
| 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. |
| 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).