- 论坛徽章:
- 0
|
本帖最后由 haitianguyan102 于 2011-12-05 10:42 编辑
环境是 debian 6, grub2,
我新编译了一个 3.1.2的内核,按照标准步骤编译安装,并使用 update-grub 更新 grub 配置,但是重启试图使用新的内核,在启动的时候出现如下错误
Loading Linux 3.1.2debian
error : invalid magic number
Loading initial ramdisk
error : you need to load the kernel first .
显然,第二个错误是有第一个错误导致的。 magic number 在一种情况下指的是在 mbr中两字节标识 mbr 的一个 number,但在我的情况显然并非如此,因为我可以使用旧内核进入系统。
grub 是系统使用 grub-mkconfig 自动配置的,按理应该不会出现问题,我之前也编译过一次内核并使用update-grub 自动更新 grub ,并没有出现问题。
不过还是贴上这一段 grub 配置
menuentry 'Debian GNU/Linux, with Linux 3.1.2debian' --class debian --class gnu-linux --class gnu --class os {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 2aaafa6b-d140-4602-afb6-dce07a6ecfc3
echo 'Loading Linux 3.1.2debian ...'
linux /vmlinuz-3.1.2debian root=/dev/mapper/debian-root ro quiet
echo 'Loading initial ramdisk ...'
initrd /initrd.img-3.1.2debian
我尝试了 grub2 下面的命令行引导,依旧会出现这个问题。
我的问题是,什么情况下会出现 invalid magic number 这种错误, 该 magic number 指的是什么?
PS:个人的怀疑是自己下载的内核有问题,或者是自己在配置过程中出现了一些错误,或者就是因为内核比较新,有点问题。我下载后验证签名是不完整的,而使用的签名跟以前不一样,是<greg@kroah.com>的,报错说
*損壞* 的簽章來自於 "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>"
繁体字为“损坏的签章来自于”,不过我下了很多次都是如此,我使用的是支持断点续传的 axel 。官方并不提供 md5 之类的验证,不过我搜索 md5 倒是发现一个和自己一样的,觉得如果我下载的过程有问题,别人应该也不会跟我是同样的问题。
三天后:
我删掉了 /boot 目录里面自己拷贝过去的 sysmap vmlinux config 及 initrd.img 文件,重新使用 make install 命令来自动设置,可以居然没有自动生成 initrd.img 文件,我试着重启使用新内核,居然可以使用,只是需要 initrd.img 文件,自己再做了一个,成功了。只是还是很糊涂,到底这个错误意味着什么,而且我也是按标准步骤
cp vmlinuz /boot/vmlinuz-3.1.2debian
cp .config /boot/config-3.1.2debian
cp System.map /boot/System.map-3.1.2debian
mkinitramfs -o /boot/initrd.img-3.1.2debian 3.1.2debian
update-grub
做的啊 |
|