内核崩溃-未同步:尝试终止 init(针对物理机的 VM 映像)

内核崩溃-未同步:尝试终止 init(针对物理机的 VM 映像)

我有一台 CentOS 5.4 x86_64 机器,我使用以下命令对主分区进行映像处理,以便可以在本地机器上的 VM 中运行它进行测试。

#dd bs=1024 count=10482412 if/dev/sda of/mnt/storage/sda.img

然后我使用以下命令在本地机器上转换图像:

#VBoxManage convertdd sda.img sda.vmdk --format VMDK --variant Standard

我创建了一个新的虚拟机并将此映像加载为硬盘。我使用 Cent OS 5.4 x85_64 安装 DVD 启动到救援模式。我 chroot 到映像中并按照以下步骤重新安装 grub:

#mount --bind /proc /mnt/disks/sda1/proc
#mount --bind /dev /mnt/disks/sda1/dev
#mount --bind /sys /mnt/disks/sda1/sys
#chroot /mnt/disks/sda1
#grub-install hd0

然后我重新启动虚拟机,grub 显示了 3 个选项。我尝试了所有 3 个选项,但每次都会出现内核恐慌。它开始启动,然后我从 3 个选项中分别收到以下消息:“内核恐慌 - 未同步:试图杀死 init!”

我不知道该怎么做才能让它正确启动...

答案1

最有可能的是 initrd 映像无效,映像执行 switchroot 时路径肯定有问题。一个常见原因是 initrd 中未加载所有驱动程序,因此无法检测到硬盘。您能否提供:

a)grub.conf 输出

b) 虚拟磁盘上的 /etc/modprobe.conf 内容?我建议的补救措施是重复您的

#mount --bind /proc /mnt/disks/sda1/proc
#mount --bind /dev /mnt/disks/sda1/dev
#mount --bind /sys /mnt/disks/sda1/sys
#chroot /mnt/disks/sda1

操作,然后从 chrooted 环境运行 mkinitrd,但在 modprobe.conf 文件中使用固定别名 scsi_hostadapter xxxx 行。

答案2

VM 主机是否一定支持 64 位客户机?VMWare 至少不支持较旧的 AMD CPU 和不支持 VT 的 Intel CPU 上的 64 位客户机(并且一些较新的 Intel 芯片没有 VT)。您可以使用 Intel 的列表检查支持情况,网址为http://ark.intel.com/VTList.aspx或者使用类似CPU-Z

如果这是导致您出现问题的原因,那么我预计启动很早就失败了。最好在您的问题中指出错误发生前显示的最后几件事。

相关内容