Sublarge

// Linux · 2026-06-11

解决 Alpine Linux 虚拟机从 VirtualBox 迁移到 VMware 的内核崩溃问题

Alpine Linux OVA镜像在VMware启动时出现内核崩溃,原因是新内核将AMD内存纠错驱动amd64_edac编译进initramfs,导致虚拟环境访问无效内存地址。解决方案包括将驱动加入黑名单并重建initramfs。若系统无法启动,需通过Live CD挂载系统分区操作。关键命令:echo "blacklist amd64_edac" >> /etc/modprobe.d/blacklist.conf及mkinitfs。

问题现象

将 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.conf
echo "blacklist edac_mce_amd" >> /etc/modprobe.d/blacklist.conf

# 2. 重建 initramfs(关键步骤)
mkinitfs

# 3. 重启
reboot

搞定。

深入底层

浅画了个流程图,大概是这样子:

在这里插入图片描述

原文 https://blog.csdn.net/2301_79518550/article/details/161883034