我不确定这是系统问题(如加载模块的顺序)还是视频驱动程序问题。似乎每次
- 我使用 Arch ISO USB 记忆棒从 chroot 环境更新与引导相关的内容,一切正常。
- 当我从正在运行的本机系统进行更新时,事情就会变得糟糕,而且我认为当与启动相关的事情出现在该更新中时。
更新2016-04-18
我将 root( arch-chroot
) 更改为机器并尝试使用mkinitcpio -p linux
.我收到以下错误:
ERROR: '/lib/modules/4.4.5-1-ARCH' is not a valid kernel module directory
uname -r
(检查内核版本)产量
4.3.3-2-拱门
中的文件夹/lib/modules/
4.5.0-1-ARCH
extramodules-4.5-ARCH
显然,当内核版本号与模块版本号不匹配时,这并不好。为什么会出现这种情况呢?这意味着系统自身更新(pacman)的方式存在问题。还是我做错了什么?
pacman -Qo /lib/modules/4.5.0-1-ARCH
(检查包所有者)产量
/usr/lib/modules/4.5.0-1-ARCH/ is owned by linux 4.5-1
/usr/lib/modules/4.5.0-1-ARCH/ is owned by linux-headers 4.5-1
如果您在评论中给我建议,我会尽力及时添加信息。
当问题发生时
运行yaourt -Syau --noconfirm
并重新启动后,下次启动时,我的屏幕分辨率会变得混乱(驱动程序似乎正在工作)并且 USB 设备(键盘+鼠标)变得无响应。这可能是 Grub 造成的吗?
grub 启动屏幕后出现错误
- 内核模块加载失败
机器信息
- 引导加载程序是 Grub 2
- 操作系统 Arch Linux
- 显卡 GeForce 9500 GT (rev a1),带有 nouveau 驱动程序(使用 获取
lspci -v | grep VGA -A 10
)
我可以通过从 Arch ISO USB 记忆棒启动来 chroot 进入这台机器。也许知道我已经通过等待几天的另一次更新然后从 chroot 环境更新系统来恢复系统会有所帮助。突然间,一切又开始运转了。这种情况已经发生过三次了。今天才发生这样的事情,而且越来越令人恼火。
可能相关的问题
答案1
需要立即注意的是,被中断的不仅仅是视频。由于版本匹配限制,不允许加载模块/驱动程序。
更新
对于那些在单独分区(通常是 EFI 主板)上保持引导的用户来说,这可能是由于 /boot 装载中的 /etc/fstab 中存在错误所致。如果在更新期间未安装此分区,则模块可能(可能会)升级,而驻留在 /boot 中的内核则不会。dkms
通常可以防止内核模块不匹配。
我确实有内核+模块不匹配导致错误消息
错误:“/lib/modules/4.4.5-1-ARCH”不是有效的内核模块目录
问题中提到。
为了修复这个问题,我需要从 Arch USB 记忆棒启动,并将操作系统和 BOOT 分区分别挂载到 /mnt 和 /mnt/boot。我必须将 root 切换到机器arch-chroot /mnt /bin/bash
并手动(强制)更新我的内核。
pacman -Sy linux --force
这使我的系统内核与模块 (4.4.5-1-ARCH) 保持同步,以便它们匹配(因为它们绝对应该如此!)
至于为什么会出现内核+模块不匹配的情况,我不知道。我希望[dkms][1]
将来能够防止这种情况发生。就我而言,模块不是在安装新内核时构建的,而是在内核未安装时更新的。
动态内核模块支持 (DKMS) 是一个程序/框架,可以生成 Linux 内核模块,这些模块的源代码通常驻留在内核源代码树之外。其概念是在安装新内核时自动重建 DKMS 模块。
*加里·勒豪普特(2003 年 9 月 1 日)。 “Kernel Korner - 探索动态内核模块支持 (DKMS)”。 Linux 杂志。检索日期:2016 年 3 月 12 日。