Ubuntu 16.04를 사용하고 있으며 데스크톱 관리자가 없습니다.
내 시스템이 부팅되면 tty0으로 이동하고 화면은 다음과 같습니다.
<내 컴퓨터 이름>로그인: |
|
커서를 나타냅니다 . 몇 초 후에 커서가 다음과 같이 줄의 시작 부분으로 이동합니다.
|<내 컴퓨터 이름>로그인:
"일반적으로" 로그인할 수 있지만 사용자 이름을 입력하면 새 텍스트가 커서 오른쪽에 있는 모든 텍스트(예: 로그인 프롬프트)를 덮어씁니다.
++를 사용하여 Ctrltty1로 전환하면 이 문제가 발생하지 않습니다.AltF2
어떻게 디버깅할 수 있나요?
답변1
이 문제를 디버깅하는 방법에 대한 귀하의 질문에 답하기 위해 제가 시도한 방법은 다음과 같습니다.
나는 낮은 기술 스크립트를 작성했습니다.
#!/bin/bash
while true
do
DATE=`date +%H%M%S`
ps -e f > pss.out/$DATE
echo -ne '\n'$DATE
sleep 1
done
시스템이 부팅되면 빠르게 로그인하여 스크립트를 실행합니다. 출력 줄이 사라질 때까지 지켜본 다음 이벤트 전후의 ps 출력을 비교했습니다.
user@ubuntu-back:~/pss.out$ diff 080234 080236
108d107
< 776 ? Ss 0:00 /lib/systemd/systemd-fsckd
138c137
< 1630 tty1 R+ 0:00 \_ ps -e f
---
> 1634 tty1 R+ 0:00 \_ ps -e f
user@ubuntu-back:~/pss.out$
그래서 systemd-fsckd가 어느 정도 책임이 있다고 볼 수 있습니다.
이를 증명하기 위해 fstab에서 파일 시스템 검사를 끄고 문제가 사라졌습니다.
분명히 이것은 실제 수정은 아니지만 지금까지 내가 가진 전부입니다.
내 경우에는 부팅 시 텍스트 기반 애플리케이션(내가 작성하지 않음)을 자동으로 실행하는 시스템을 보유하는 임무를 맡고 있고 이 문제로 인해 화면 아티팩트가 생성되기 때문에 이 문제를 해결해야 합니다.
답변2
문제는 systemd-fsck '\r'
에 의해 에 인쇄됩니다 /dev/console
. 따라서 터미널 tty1은 systemd-fsckd가 비활성화될 때까지 기다려야 합니다. Ubuntu 18.04.4 시스템에 대한 초기 수정에는 하나의 파일이 포함되었습니다./etc/systemd/system/[email protected]/override.conf
[Unit]
After=boot-efi.mount
After=systemd-fsckd.service
[Service]
ExecStart=
ExecStart=-/usr/local/bin/delaytty1.sh $TERM
Type=idle
/usr/local/bin/delaytty1.sh 스크립트의 내용은 다음과 같습니다.
#!/bin/sh
a="active"
while [ $a = "active" ]; do
sleep 1
a=$(/bin/systemctl is-active systemd-fsckd.service)
done
/sbin/agetty --noclear tty1 $1