콘솔이 화면을 지우지 못하게 하시겠습니까?


11

Linux로 부팅 할 때 때때로 한두 줄이 빨리 지워지는 경우가 있습니다. 나는 그들 중 일부는 dmesg에도 나타나지 않는다고 생각합니다. 다른 것이 없으면 "login :"프롬프트 전에 clear를 억제하고 싶습니다. 부팅 후 콘솔 화면에서 읽을 수 있도록이를 막기 위해 설정할 수있는 커널 명령 또는 sysctl이 있습니까?


/var/log/kern.log가 도움이되지 않습니까? 아니면 없어요?
HUB

답변:


13

당신이 될 것입니다 원하는 대부분의 정보 /var/log/dmesg/var/log/messages시스템이 부팅 된 후, 당신은 먼저 해당 파일을 확인해야합니다.

일반적으로 리눅스 머신 은 가상 터미널에 대해 미풍 을 실행 합니다. 기존의 sysv init 시스템이있는 경우 시스템이에 의해 제어됩니다 /etc/inittab. --noclear화면을 지우지 않도록 옵션을 미성년자에 추가 할 수 있습니다 . 이렇게하려면 /etc/inittab이 줄을 편집 하고 변경하십시오.

1:2345:respawn:/sbin/mingetty tty1

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

그런 다음 머신을 재부팅하십시오.

일부 최신 Linux 배포판은 Upstart (예 : Ubuntu)와 같은 초기화 대체를 사용합니다. 이들은 일반적으로 / etc / inittab을 사용하지 않고 다른 구성 파일을 사용합니다. 우분투에서 mingetty 호출이 어떻게 작동하는지에 대한 토론이 있습니다.


글쎄, 나는 정말로 우분투에 관심이 있다는 것을 잊었다. 위의 링크는 일부 오래된 정보를 나타내며 첫 시도 (/etc/init/tty1.conf 편집은 전혀 성공하지 못함)
Paul Hoffman

그들은 사용 getty에서 util-linux하지, mingetty하지만, 데비안이 작품뿐만 아니라. 감사!
mirabilos

10

체계적인 것은 다릅니다. My God Damned Console 지우기 중지 기사를 참조하십시오 . 한마디로 :

mkdir /etc/systemd/system/getty@.service.d
cat >/etc/systemd/system/getty@.service.d/noclear.conf <<EOF
[Service]
TTYVTDisallocate=no
EOF
systemctl daemon-reload

로 결과를 확인하십시오 systemctl cat getty@tty1.service


4

아무것도 도움이되지 않으면 노트북을 가져 와서 커널 매개 변수에 다음과 같은 것을 추가하여 직렬 콘솔을 통해 모든 커널 로그를 캡처 할 수 있습니다.

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

이로 인해 직렬 콘솔 (터미널 프로그램) 및 표준 tty에서 출력이 표시됩니다. 때로는 SOL (Serial Over LAN)을 사용할 수 있습니다.


3

인터넷 검색의 시간 후, 나는에서 솔루션 발견 이 스레드이 질문을 . 이 절차는 여기Ubuntu 12.04.1 LTS설명 된대로 작동 하지만 다른 배포판에서는 그다지 다르지 않아야합니다.

먼저, console=tty1당신에게 추가 하십시오 GRUB_CMDLINE_LINUX(나는 또한 noplymouth금지 plymouth및 쓸모없는 스플래시 화면 을 추가 하는 것이 좋습니다 ).

#> sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX="console=tty1 noplymouth"

이로 인해 커널 로그가 강제로 인쇄되는 tty1대신 로그인 프롬프트가 표시되기 전에 스위치를 tty7피해야 tty합니다.

그런 다음에 가서 /etc/init편집 중 하나 이상 tty1.conf, tty2.conf, tty3.conf, tty4.conf, tty5.conf, tty6.conf또는 console.conf. 명령에 --noclear옵션을 추가하여 모두 편집했습니다 getty. 예를 들어, 편집 tty1.conf:

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

다음을 교체해야합니다.

respawn
exec /sbin/getty -8 38400 tty1

와:

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

그게 전부입니다. 이제 시스템 tty을 지우지 않고 단일 시스템으로 부팅해야 합니다.


1

dmesg 여기서는 커널의 맨 처음으로 돌아가서

[    0.000000] Initializing cgroup subsys cpuset

아마도 이것은 바이오스 메시지이거나 부트 로더의 일부입니까? 어느 쪽이든, 프로세스가 정확히 어디에서 발생했는지 알지 못하고 화면을 비울 수있는 많은 것들이 있습니다. 어떻게 해야할지 말하기가 어렵습니다. "로그인 :"화면에 남은 것이 있습니까? 아니면 그 위에 다른 부팅 도구가 있습니까? 로그인 프롬프트 바로 앞에 있고 화면에 다른 것이 없으면 /etc/issue화면에 공백 명령이 있습니까? 그렇지 않으면 비디오 모드를 전환하는 일종의 콘솔 프레임 버퍼를 사용할 수 있습니다. 컴퓨터에서 콘솔 글꼴이로드되면 화면이 나타나지 않습니다.


TL; DR /etc/issue도 범인이 될 수 있습니다. 좋은 힌트입니다.
Tino
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.