我最近编译了我的 Linux 内核 (3.16.2-x),并尝试将其安装到两个不同的 ubuntu 8.10 服务器虚拟机设备中。升级过程如下:
安装内核头文件、libc、固件、镜像 deb 包
手动编辑 grub 菜单 /boot/grub/menu.lst (grub 版本 0.97)
通过运行 update-initramfs -c -v -k 3.16.2-x 创建新的 initramfs
复制 /lib/modules/3.16.2-x/extra/ 目录中的一些内核模块,然后使用 -u 开关再次运行 update-initramfs
depmod -a 3.16.2-x
重启
有趣的是,它在其中一台服务器上启动到新内核,而另一台服务器却持续失败,并显示以下消息。
挂载根文件系统
运行 /scripts/local-top
/scripts/local-top/iscsi: .: 第 101 行:无法打开 /etc/iscsi.initramfs
...
警告!/dev/sda1 不存在。转到 shell!
如果有人能提供一些关于如何调试的想法,那就太好了。我已经检查过,两个服务器的 initramfs 都包含相同的文件,并且完全相同。
答案1
我找到了问题所在。两台设备使用了不同的 scsi 控制器(Paravirtual SCSI 和 LSI Logic Parallel)
虽然结果证明这是我们的构建问题,因为两台机器应该是相同的,但我们的宗旨是仔细检查机器的配置并将每个强制驱动程序包含在内核中。