Silent boot (Português) - ArchWiki

Jump to content

# Silent boot (Português)

From ArchWiki
Status de tradução: Este artigo é uma tradução de Silent boot. Data da última tradução: 2019-11-06. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Plymouth

Esta página é para aqueles que preferem limitar a verbosidade de seu sistema a um mínimo estrito, seja por estética ou por outros motivos. Seguir este guia removerá todo o texto do processo de inicialização. Demonstração em vídeo

## Parâmetros do kernel

Altere os parâmetros do kernel usando as opções de configuração do seu gerenciador de inicialização, para incluir os seguintes parâmetros:

    quiet vga=current

`vga=current` é o argumento do kernel para evitar comportamentos estranhos, como FS#32309.

Se você ainda estiver recebendo mensagens impressas para o console, pode ser que o dmesg envie a você o que acha que são mensagens importantes. Você pode alterar o nível em que essas mensagens serão impressas usando `quiet loglevel=<nível>`, sendo `<nível>` qualquer número entre 0 e 7, em que 0 é o mais crítico e 7 é o nível de depuração da impressão.

    quiet loglevel=3 vga=current

Note que isto parece funcionar apenas se `quiet` e `loglevel=<nível>` forem usados, e eles devem estar nessa ordem (quiet primeiro). O parâmetro de loglevel só alterará o que é impresso no console, os níveis do próprio dmesg não serão afetados e ainda estarão disponíveis através do diário, bem como do comando `dmesg`. Para obter mais informações, consulte o arquivo `Documentation/kernel-parameters.txt` do pacote linux-docs.

Se você também quiser impedir o systemd de imprimir seu número de versão ao inicializar, você também deve anexar `udev.log_priority=3` à sua linha de comando do kernel (systemd-udevd.service(8) § KERNEL COMMAND LINE). Se systemd for usado em um initramfs, anexe `rd.udev.log_priority=3`.

Se você estiver usando o hook `systemd` no initramfs, você poderá receber mensagens systemd durante a inicialização do initramfs. Você pode passar `rd.systemd.show_status=false` para desativá-los, ou `rd.systemd.show_status=auto` para suprimir somente mensagens bem-sucedidas (portanto, em caso de erros você ainda pode vê-los). Na verdade, `auto` já foi passado para `systemd.show_status=auto` quando `quiet` é usado, no entanto por algum motivo algumas vezes systemd dentro do initramfs não entende isso. Abaixo estão os parâmetros que você precisa passar para o seu kernel para obter uma inicialização completamente limpa com o systemd em seu initramfs:

     quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_priority=3

Também `touch ~/.hushlogin` para remover a última mensagem de login.

## Remover o cursor piscando do console

O cursor do console na inicialização continua piscando se você seguir estas instruções. Isto pode ser resolvido passando `vt.global_cursor_default=0` ao kernel [1].

Para recuperar o cursor no TTY, execute:

    # setterm -cursor on >> /etc/issue

## sysctl

Para ocultar quaisquer mensagens do kernel do console, adicione ou modifique a linha `kernel.printk` de acordo com [2]:

    /etc/sysctl.d/20-quiet-printk.conf

    kernel.printk = 3 3 3 3

## agetty

Para ocultar o problema de agetty exibido e a linha de prompt "login:" do console[3], crie um trecho drop-in para `getty@tty1.service`.

    /etc/systemd/system/getty@tty1.service.d/skip-prompt.conf

    [Service]
    ExecStart=
    ExecStart=-/usr/bin/agetty --skip-login --nonewline --noissue --autologin nome_de_usuário --noclear %I  $TERM

## startx

Para ocultar mensagens do `startx`, você pode redirecionar sua saída para `/dev/null`, em seu .bash_profile, como:

Nota Redirecionamento está quebrado com login sem root. Veja Xorg (Português)#Redirecionamento do log da sessão

    $ [[ $(fgconsole 2>/dev/null) == 1 ]] && exec startx -- vt1 &> /dev/null

## fsck

Para ocultar as mensagens do fsck durante a inicialização, deixe o systemd verificar o sistema de arquivos raiz. Para isso, substitua o hook udev com systemd:

    HOOKS=( base systemd fsck ...)

em `/etc/mkinitcpio.conf` e, então, execute:

    mkinitcpio -p linux

Agora, edite `systemd-fsck-root.service` e `systemd-fsck@.service`:

    # systemctl edit --full systemd-fsck-root.service
    # systemctl edit --full systemd-fsck@.service

Configurando StandardOutput e StandardError assim:

    (...)

    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/lib/systemd/systemd-fsck
    StandardOutput=null
    StandardError=journal+console
    TimeoutSec=0

Veja systemd-fsck@.service(8) para mais informações sobre as opções que você pode passar para `systemd-fsck` - você pode alterar com qual frequência o serviço vai verificar (ou não) seus sistemas de arquivos.

## Silenciar o GRUB

Para ocultar as mensagens de boas-vindas e de inicialização do GRUB, você pode instalar o pacote não oficial grub-silentAUR.

Após a instalação, é necessário reinstalar o GRUB na partição necessária primeiro.

Então, pegue um exemplo, como `/etc/default/grub.silent`, e faça as alterações necessárias para `/etc/default/grub`.

As três linhas abaixo são necessárias:

    GRUB_DEFAULT=0
    GRUB_TIMEOUT=0
    GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT

Nota Se você definir `GRUB_TIMEOUT=0` e `GRUB_HIDDEN_TIMEOUT=1` (ou qualquer valor positivo), defina `GRUB_RECORDFAIL_TIMEOUT=$GRUB_HIDDEN_TIMEOUT` em vez de `GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT`. Do contrário, pressionar `Esc` na inicialização para mostrar o menu do GRUB não vai funcionar.

Finalmente, gere novamente o arquivo `grub.cfg`.

## Retendo ou desabilitando o logotipo do fornecedor do BIOS

Os modernos sistemas UEFI exibem um logotipo de fornecedor na inicialização até entregar o controle ao gerenciador de boot; por exemplo, Os laptops da Lenovo exibem um logotipo vermelho brilhante da Lenovo. Esse logotipo de fornecedor é normalmente apagado pelo gerenciador de boot (se o GRUB padrão for usado) ou pelo kernel.

Para evitar que o kernel apague o logotipo de fornecedor, o Linux 4.19 introduziu uma nova opção de configuração `FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER` que retém o conteúdo do framebuffer até que o texto precise ser impresso no console framebuffer. A partir de novembro de 2018 (Linux 4.19.1), os kernels oficiais do Arch Linux são compilados com `CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER = y`.

Quando combinado com um nível de log baixo (para impedir que o texto seja impresso), o logotipo do fornecedor pode ser mantido enquanto o sistema é inicializado. Observe que o GRUB na configuração padrão substitui a tela; considere usar a inicialização EFISTUB para inicializar diretamente no kernel e, assim, alavancar o controle diferido.

Demonstração em vídeo

A linha de comando do kernel deve usar `loglevel=3` ou `rd.udev.log_priority=3` como mencionado acima. Observe que, se você costuma receber mensagens de `Core temperature above threshold, cpu clock throttled` no log do kernel, você precisa usar o nível de log 2 para silenciá-las no momento da inicialização. Alternativamente, se você compilar seu próprio kernel, ajuste o nível de log da mensagem em `arch/x86/kernel/cpu/mcheck/therm_throt.c`.

Se você usar Intel graphics, defina `i915.fastboot=1` na linha de comando do kernel para evitar configurações desnecessárias de modos (e de supressão de tela) na inicialização.

Leia mais sobre isso em:

- Phoronix: Linux 4.19 Adds Deferred Console Takeover Support For FBDEV - Cleaner Boot Process
- Hans de Goede: Adding deferred fbcon console takeover to the Fedora kernels

### Desabilitando o controle obtido

Se o novo comportamento causar problema, você pode desabilitar o controle obtido por meio do parâmetro do kernel `fbcon=nodefer`.

Category:

- Boot process (Português)

Silent boot (Português)
Add topic