![/usr/lib/modules 在启动时被删除](https://linux22.com/image/135380/%2Fusr%2Flib%2Fmodules%20%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E8%A2%AB%E5%88%A0%E9%99%A4.png)
这是 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
软件包。