我在 Ubuntu 18.04 中配置了一个 grub 菜单项,以便直接启动到文本控制台。
我看到了提示。然后几秒钟后,提示被删除,光标移到行首。我可以按回车键,提示会再次出现。但是,当我在启动后立即编辑文件时,它也会删除光标行。就像有什么东西在后台运行,删除了当前光标行。
对于如何解决此问题有什么想法吗?
更新:同时,我进行了更多测试,可以确认该问题与启动模式文本与图形无关。当我启动时看到高分辨率/微缩胶片启动菜单并在 grub 中的内核命令行中添加 3 时,也会发生这种情况。
我只是猜测,但可能是一些 systemd 或安全内容在启动时初始化。也许 Ubuntu 不再值得了。谁做出了所有这些愚蠢的决定,没有测试/破坏 Linux 的基本功能?太花哨了。
更新2。它也发生在启动模式 1 中。我还尝试禁用所有配置文件和 bash 启动脚本,以及配置自动登录(getty -a root) - 但没有变化。
更新 3。问题发生前后进程较少(ps -eLf),所以可能是启动后期出现了问题,但我没有发现任何异常。我重新安装了一个新的 Minimal Desktop 系统,看看能否重现该问题。在进行更多测试(包括 5.4 和之前的 4.18 内核)后,我可以说该问题与 GRUB_TERMINAL="console" 或 nomodeset 或 autologin 无关。只需进入 Grub 菜单并将 quiet splash vt_handoff 替换为数字 3 即可查看问题。然而,与我原来的配置不同,它不会擦除该行,但光标仍会移动到 pos 1,启动后约 15 秒,无论是在提示符下还是在文本编辑器中。有东西在拍摄我的屏幕。
Ubuntu 18.04 LTS gpudiag-Z270N-WIFI tty1
<- Cursor moved here_ in:
顺便说一句,当我在启动后立即切换到 tty2(alt-F2)时也会出现此问题。
同时我还发现https://unix.stackexchange.com/questions/341658/ttys-cursor-moves-to-wrong-position-during-login
更新 4:systemd-fsckd.service 确实是罪魁祸首。但是,我决定采用不同的方法,因为我不想等待服务完成后再访问控制台。从我阅读 systemd-fsckd 的手册页来看,它通过 UNIX 域套接字从 fsck 接收有关文件系统检查进度的消息。我不需要它,所以我只是禁用了该服务,并在 grub 中的内核命令行中添加了以下内容:
systemd.mask=systemd-fsckd.socket systemd.mask=systemd-fsckd.serivce
由于这只是暂时的,影响特定的 grub 控制台内核/启动选项,并且不会影响整个系统,所以我更喜欢这个解决方案。
答案1
显然systemd-fsckd.服务在以 3 级(命令控制台)启动系统时导致或利用该问题。
在系统启动后等待 15 秒再在命令行上执行任何操作可能是没问题的,但我决定通过在 Grub Kernel 命令行中添加以下内容来暂时停止服务启动:
systemd.mask=systemd-fsckd.socket systemd.mask=systemd-fsckd.serivce
据我了解,通过阅读 systemd-fsckd.service 的 man(8) 页,它通过 UNIX 域套接字从 fsck 传递有关文件系统检查进度的消息。我不需要它。