更新2016-04-18

更新2016-04-18

我不确定这是系统问题(如加载模块的顺序)还是视频驱动程序问题。似乎每次

  • 我使用 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 启动屏幕后出现错误

  • 内核模块加载失败

机器信息

  1. 引导加载程序是 Grub 2
  2. 操作系统 Arch Linux
  3. 显卡 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 日。

相关内容