问题现象
将 Alpine Linux 的 OVA 镜像导入 VMware 后,启动时发生内核崩溃:
RIP: 0010:__amd_smn_rw+0x30/0x110 note: modprobe[2669] exited with irqs disabled问题原因
升级内核后,amd64_edac这个 AMD 内存纠错驱动被编译进了 initramfs。该驱动在 VMware 虚拟化环境下访问到了无效内存地址,导致内核崩溃。
为什么之前没问题?老内核没有把这个模块打进 initramfs,升级内核后才出现。
解决方案
# 1. 禁止加载这两个模块echo"blacklist amd64_edac">>/etc/modprobe.d/blacklist.confecho"blacklist edac_mce_amd">>/etc/modprobe.d/blacklist.conf# 2. 重建 initramfs(关键步骤)mkinitfs# 3. 重启reboot搞定。
深入底层
浅画了个流程图,大概是这样子: