/usr/lib/modules 在启动时被删除

/usr/lib/modules 在启动时被删除

这是 Manjaro 的全新安装,使用 Manjaro Architect 安装在 LUKS 加密分区内的现有 LVM 分区上,并使用单独的未加密引导分区。我已经重新安装好几次了,每次都是一样的结果。

该问题会在第二次及后续引导时显现出来,systemd-modules-load.service尽管引导会在挂起之前继续运行一段时间,但不会出现任何进一步的错误消息。

幸运的是,过了一段时间我可以切换到另一个 tty 来检查问题,到目前为止我发现的是:

  • 引导挂起是因为 Xorg 无法加载,因为nvidia驱动程序无法加载,因为nvidia尚未加载内核模块。
  • systemd-modules-load.service似乎失败,因为/usr/lib/modules不存在。首次启动时成功,但首次启动后目录消失,后续启动将失败。

我可以通过重新安装内核 ( linux417) 和 nvidia 驱动程序 ( linux417-nvidia) 来恢复,这将在再次消失之前只工作一次启动/usr/lib/modules

所以我的问题是:

  • 在启动过程中可能是什么原因导致的?
  • 我怎样才能继续寻找更多线索?
System:    Kernel: 4.17.0-2-MANJARO x86_64 bits: 64 compiler: gcc v: 8.1.1 
           Desktop: Gnome 3.28.2 Distro: Manjaro Linux 17.1.10 Hakoila 
Machine:   Type: Desktop Mobo: ASUSTeK model: P8Z77-V v: Rev 1.xx serial: <filter> BIOS: American Megatrends 
           v: 0906 date: 03/26/2012 
CPU:       Topology: Quad Core model: Intel Core i5-3570K bits: 64 type: MCP arch: Ivy Bridge rev: 9 
           L2 cache: 6144 KiB 
           flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 27288 
           Speed: 1605 MHz min/max: 1600/3800 MHz Core speeds (MHz): 1: 1605 2: 1605 3: 1605 4: 1605 
Graphics:  Card-1: NVIDIA GK104 [GeForce GTX 670] driver: nvidia v: 396.24 bus ID: 01:00.0 
           Display: x11 server: N/A driver: nvidia resolution: <xdpyinfo missing> 
           OpenGL: renderer: GeForce GTX 670/PCIe/SSE2 v: 4.6.0 NVIDIA 396.24 direct render: Yes 
Audio:     Card-1: Intel 7 Series/C216 Family High Definition Audio driver: snd_hda_intel v: kernel 
           bus ID: 00:1b.0 
           Card-2: NVIDIA GK104 HDMI Audio driver: snd_hda_intel v: kernel bus ID: 01:00.1 
           Sound Server: ALSA v: k4.17.0-2-MANJARO 
Network:   Card-1: Intel 82579V Gigabit Network Connection driver: e1000e v: 3.2.6-k port: f040 bus ID: 00:19.0 
           IF: eno1 state: up speed: 1000 Mbps duplex: full mac: <filter> 
           Card-2: Qualcomm Atheros AR9485 Wireless Network Adapter driver: ath9k v: kernel bus ID: 06:00.0 
           IF: wlp6s0 state: down mac: <filter> 
Drives:    HDD Total Size: 588.83 GiB used: 306.90 GiB (52.1%) 
           ID-1: /dev/sda vendor: Samsung model: SSD 830 Series size: 119.24 GiB 
           ID-2: /dev/sdb vendor: Samsung model: SSD 850 EVO 500GB size: 465.76 GiB 
Partition: ID-1: / size: 31.25 GiB used: 10.00 GiB (32.0%) fs: ext4 dev: /dev/dm-2 
           ID-2: /boot size: 487.9 MiB used: 66.7 MiB (13.7%) fs: ext4 dev: /dev/sdb1 
           ID-3: /home size: 410.58 GiB used: 296.83 GiB (72.3%) fs: ext4 dev: /dev/dm-3 
           ID-4: swap-1 size: 16.00 GiB used: 0 KiB (0.0%) fs: swap dev: /dev/dm-1 
Info:      Processes: 201 Uptime: 54m Memory: 15.62 GiB used: 2.46 GiB (15.7%) Init: systemd Compilers: 
           gcc: 8.1.1 clang: 6.0.0 Shell: zsh v: 5.5.1 inxi: 3.0.10

答案1

Manjaro 包括一个kernel-alive软件包提供了一个名为 systemd 的服务,linux-module-cleanup该服务应该清理旧的内核模块,但显然其中有一个错误,导致它只擦除整个/usr/lib/modules目录......

解决方案是使用 禁用该服务systemctl disable linux-module-cleanup.service,或者您也可以删除该kernel-alive软件包。

感谢 Manjaro 论坛上的 jonathon 提出了这一建议。

相关内容