几天前,我从 22.04 升级到了 Ubuntu Studio 22.04.1。从那时起,系统就不再自动启动到图形桌面了。
当我正常启动时,它会短暂显示 Ubuntu Studio 启动画面,然后返回到终端,该终端仅显示一条与 mtd 相关的消息,我认为这与问题无关,几秒钟后 HDD 停止工作,只是停在那里。我可以使用 Ctrl-Alt-F1 进入登录终端,登录,然后startx
它将正常启动到桌面。
当我在恢复模式下启动,然后在启用网络后立即“恢复正常启动”时,它也会正常启动到桌面。
早期的内核也存在同样的情况。
已经sudo apt-get update
,sudo apt-get upgrade
并且sudo apt-get dist-upgrade
全部都是最新的。
查看了各种日志文件,似乎没有什么可疑的地方。
我的系统:
- AMD 锐龙 5 1600
- NVidia GTX1050Ti(NVidia 驱动程序 515)
同样奇怪但不确定是否相关的是,与驱动程序一起安装的 NVidia X 服务器设置应用程序几乎是空的,并且不包含我在同一台 PC 上运行的生产系统中习惯使用的所有选项。
更新之前一切运行正常。
可能是什么问题呢?
编辑:在startx
从命令行执行之前,没有创建 Xorg.log,因此看起来启动过程甚至没有尝试启动 X 服务器。
答案1
听起来 NVIDIA 驱动程序加载得太晚了(X11 在驱动程序准备好之前就启动了)。
您可以通过将 NVIDIA 驱动程序添加到 Early KMS 的 initrd 来解决此问题:
echo "nvidia" | sudo tee --append /etc/initramfs-tools/modules
echo "nvidia_modeset" | sudo tee --append /etc/initramfs-tools/modules
echo "nvidia_uvm" | sudo tee --append /etc/initramfs-tools/modules
echo "nvidia_drm" | sudo tee --append /etc/initramfs-tools/modules
sudo update-initramfs -c -k $(uname -r)
如果操作正确则:
lsinitramfs /boot/initrd.img-$(uname -r) | grep nvidia
应该返回一些东西(与 GPU 相关,而不是以太网控制器i2c-nvidia-gpu.ko
)
然后重新启动。如果这损坏了您的机器(不应该......),请删除添加的行/etc/initramfs-tools/modules
并再次运行sudo update-initramfs -c -k $(uname -r)
。
答案2
事实证明,就我的情况而言,更新后加载了错误的内核才导致了问题。
我注意到和都/boot/initrd.img
指向/boot/vmlinuz
最新的 5.15.0-46-lowlatency 内核,但执行后uname -r
发现实际上仍在加载之前的 5.15.0-27-lowlatency 内核。grub 菜单也不包含 5.15.0-46 内核。
执行简单操作sudo update-grub
并重新启动即可修复问题,包括 NVidia X 服务器设置中缺少的条目。看来 X 在手动启动时使用的是 nouveau 驱动程序。
编辑:我发现,就我而言,问题的原因是我在两个不同的磁盘上运行了两个 EFI 系统分区,但在启动过程中只使用了其中一个。因此,当 22.04 系统更新内核时,它并没有更新实际用于启动的引导加载程序。我必须update-grub
从我同时运行的另一个 Ubuntu 运行,这样我才能正确启动到 22.04 系统。