Ubuntu 22.10 更新内核或AMD驱动后无法启动求助
Ubuntu 22.10 更新内核或AMD驱动后无法启动求助
别慌!第一次接触Linux就碰到启动故障确实让人头疼,先把重点放在保住你的课程文件上,再一步步修复启动问题——咱们慢慢来:
第一步:优先备份重要文件
因为你的系统现在无法正常启动,先确保课程资料不会丢:
- 找个U盘制作Ubuntu 22.10的启动盘(和你当前系统版本一致最好),用它开机选择「Try Ubuntu」进入试用模式;
- 进入试用模式后,打开文件管理器,就能看到你本地硬盘里的系统分区,找到存放课程文件的文件夹,直接复制到外接U盘里备份,这一步一定要先做!
第二步:修复启动故障(针对「too many BDL entries」错误)
这个错误基本是AMD显卡驱动和当前内核不兼容导致的,大概率是你更新的驱动出了问题,咱们先把有问题的驱动卸掉,回到系统默认的开源驱动:
方法1:通过恢复模式操作
- 开机时按住
Shift键(UEFI启动的话可能要按Esc),调出GRUB启动菜单; - 选择「Advanced options for Ubuntu」,然后选一个更新驱动之前的内核版本(列表里不是最新的那个,比如数字更小的版本),后面带「recovery mode」的选项;
- 进入恢复模式菜单后,选择「root」选项,进入根权限终端;
- 先把系统分区挂载为可写模式:
mount -o remount,rw / - 卸载有问题的AMD驱动:
- 如果你装的是AMD官网的
amdgpu-pro驱动,直接执行卸载命令:amdgpu-pro-uninstall - 不确定驱动类型的话,直接重装系统默认的开源显卡驱动:
apt install --reinstall xserver-xorg-video-amdgpu mesa-vulkan-drivers
- 如果你装的是AMD官网的
- 更新GRUB配置:
update-grub - 重启系统:
reboot
方法2:如果恢复模式进不去,用试用盘终端修复
如果连恢复模式都无法进入,就用刚才的「Try Ubuntu」试用模式操作:
- 打开终端,先找到你的系统分区,执行
lsblk命令,看输出里的大分区(比如/dev/nvme0n1p2或者/dev/sda2,根据容量判断); - 挂载系统分区:
sudo mount /dev/你的系统分区名 /mnt - 挂载必要的系统目录,让我们能操作系统内部:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys - 切换到系统根环境:
sudo chroot /mnt - 重复方法1里的卸载驱动、重装默认驱动、更新GRUB的命令;
- 退出chroot并重启:
exit sudo reboot
后续建议
等系统恢复正常后,如果你想更新显卡驱动,尽量用Ubuntu自带的「附加驱动」工具来安装,不要手动下载AMD官网的驱动——非LTS版本的Ubuntu(比如22.10)和官网驱动的兼容性经常出问题,用系统自带的驱动源更稳妥。
备注:内容来源于stack exchange,提问作者Yokuho




