Evita que o console apague a tela?

9

Ao inicializar no Linux, às vezes há uma ou duas linhas que são rapidamente limpas. Eu acho que alguns deles nem aparecem no dmesg. Se nada mais, eu quero suprimir o claro antes do prompt "login:". Existe um comando do kernel ou sysctl que eu possa definir para evitar isso, para que eu possa lê-los na tela do console após a inicialização?

    
por Paul Hoffman 05.04.2011 / 18:30

5 respostas

13

A maioria das informações que você deseja estarão em /var/log/dmesg e /var/log/messages após a inicialização do sistema, você deve verificar esses arquivos primeiro.

Geralmente, as máquinas Linux executam mingetty para os terminais virtuais. Se você tiver um sistema init tradicional sysv, eles serão controlados por /etc/inittab . Você pode adicionar a opção --noclear ao mingetty para evitar limpar a tela. Para isso, edite /etc/inittab e altere esta linha:

1:2345:respawn:/sbin/mingetty tty1

para

1:2345:respawn:/sbin/mingetty --noclear tty1

depois reinicie a máquina.

Algumas novas distribuições linux usam substituições de init como Upstart (por exemplo, Ubuntu). Estes geralmente não usam / etc / inittab e usam alguns outros arquivos de configuração. Aqui está uma discussão sobre como o mingetty funciona no Ubuntu.

    
por 05.04.2011 / 18:45
9

Com o systemd, as coisas são diferentes. Veja o artigo Parar de Limpar o Meu Deus Condenado . Resumindo:

mkdir /etc/systemd/system/[email protected]
cat >/etc/systemd/system/[email protected]/noclear.conf <<EOF
[Service]
TTYVTDisallocate=no
EOF
systemctl daemon-reload

Verifique o resultado com systemctl cat [email protected]

    
por 01.09.2016 / 16:18
4

Se nada mais ajudou, você pode pegar seu laptop e capturar todo o log do kernel através do console serial, adicionando algo como isto aos parâmetros do kernel:

console=tty0 console=ttyS0,9600n8 console=tty0

Isso fará com que a saída apperar no console serial (no seu programa de terminal) e no padrão tty. Às vezes, o SOL (Serial Over LAN) está disponível.

    
por 05.04.2011 / 18:55
3

Após horas de pesquisa, encontrei a solução em este tópico e esta questão . Este procedimento funciona para Ubuntu 12.04.1 LTS como também descrito aqui , mas não deve diferir muito para outras distribuições.

Primeiro, adicione console=tty1 ao seu GRUB_CMDLINE_LINUX (também sugiro adicionar noplymouth para inibir o plymouth e seu splashscreen inútil).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

Isso força o log do kernel a ser impresso em tty1 em vez de tty7 e evita a opção tty antes do prompt de login.

Em seguida, basta acessar /etc/init e editar um ou mais tty1.conf , tty2.conf , tty3.conf , tty4.conf , tty5.conf , tty6.conf ou console.conf . Eu os editei adicionando a opção --noclear ao comando getty . Por exemplo, editando tty1.conf :

#> sudo vi /etc/init/tty1.conf

você terá que substituir:

respawn
exec /sbin/getty -8 38400 tty1

com:

respawn
exec /sbin/getty -8 38400 --noclear tty1

Isso é tudo, agora seu sistema deve inicializar em um único tty sem limpá-lo.

    
por 03.10.2012 / 14:34
1

dmesg aqui volta ao início do kernel, começando com

[    0.000000] Initializing cgroup subsys cpuset

Talvez seja alguma mensagem do BIOS ou parte do seu gerenciador de inicialização? De qualquer maneira, há tantas coisas diferentes que podem anular a tela, sem saber exatamente onde no processo aconteceu, é difícil dizer o que fazer sobre isso. É a única coisa que resta na tela "Login:"? ou há alguma outra coisa de boot acima? Se for imediatamente antes do prompt de login e nada mais estiver na tela, talvez /etc/issue tenha um comando de supressão de tela? Caso contrário, você poderia estar usando algum tipo de buffer de quadro do console que está mudando o modo de vídeo. No meu computador, a tela fica em branco quando uma fonte do console é carregada.

    
por 05.04.2011 / 18:42