Ubuntu 10.04手动更新kernel

1:前奏

请容许我说一些废话,呵呵,很久以来都说要自己手动更新一下linux的kernel,这个情节现在总算是了了。

如果操作过程中提示缺少什么东西,请自行用apt-get install 安装,该安装问题不在本文范围内,请问google即可。

2:步骤

A: get kernel from

这里我选了linux-2.6.36.2.tar.bz2

B: 解压 :

C: 编译

pwd

/usr/src/linux-2.6.36.2 #该行是pwd的输出,不是命令哦,下划线输出的均是命令的输出,下同

linux-2.6.36.2linux-headers-2.6.32-25linux-headers-2.6.32-25-genericlinux-headers-2.6.32-27linux-headers-2.6.32-27-generic

D: 安装kernel

ls/lib/modules

2.6.32-21-generic 2.6.32-25-generic 2.6.32-27-generic 2.6.36.2

ls/boot/

abi-2.6.32-25-generic memtest86+.binabi-2.6.32-27-generic System.map-2.6.32-25-genericconfig-2.6.32-25-generic System.map-2.6.32-27-genericconfig-2.6.32-27-generic vmcoreinfo-2.6.32-25-genericgrub vmcoreinfo-2.6.32-27-genericinitrd.img-2.6.32-25-generic vmlinuz-2.6.32-25-genericinitrd.img-2.6.32-27-generic vmlinuz-2.6.32-27-generic

makeinstall

sh /usr/src/linux-2.6.36.2/arch/x86/boot/install.sh 2.6.36.2 arch/x86/boot/bzImage System.map “/boot”

ls/boot/

abi-2.6.32-25-generic System.map-2.6.32-25-genericabi-2.6.32-27-generic System.map-2.6.32-27-genericconfig-2.6.32-25-generic System.map-2.6.36.2config-2.6.32-27-generic vmcoreinfo-2.6.32-25-genericconfig-2.6.36.2 vmcoreinfo-2.6.32-27-genericgrub vmlinuz-2.6.32-25-genericinitrd.img-2.6.32-25-generic vmlinuz-2.6.32-27-genericinitrd.img-2.6.32-27-generic vmlinuz-2.6.36.2memtest86+.bin

如果不进行这一步可能不能成功引导kernel,原因是:在grub引导kernel的时候无法识别kernel所在的位置,即没有驱动程序来加载硬盘的分区,而initrd恰好是干这件事的。

ls/boot/

abi-2.6.32-21-generic config-2.6.36.2 memtest86+.bin vmcoreinfo-2.6.32-25-genericabi-2.6.32-25-generic grub System.map-2.6.32-21-generic vmcoreinfo-2.6.32-27-genericabi-2.6.32-27-generic initrd.img-2.6.32-21-generic System.map-2.6.32-25-generic vmlinuz-2.6.32-21-genericconfig-2.6.32-21-generic initrd.img-2.6.32-25-generic System.map-2.6.32-27-generic vmlinuz-2.6.32-25-genericconfig-2.6.32-25-generic initrd.img-2.6.32-27-generic System.map-2.6.36.2 vmlinuz-2.6.32-27-genericconfig-2.6.32-27-generic initrd.img-2.6.36.2 vmcoreinfo-2.6.32-21-generic vmlinuz-2.6.36.2

Generating grub.cfg …Found linux image: /boot/vmlinuz-2.6.36.2Found initrd image: /boot/initrd.img-2.6.36.2Found linux image: /boot/vmlinuz-2.6.32-27-genericFound initrd image: /boot/initrd.img-2.6.32-27-genericFound linux image: /boot/vmlinuz-2.6.32-25-genericFound initrd image: /boot/initrd.img-2.6.32-25-genericFound linux image: /boot/vmlinuz-2.6.32-21-genericFound initrd image: /boot/initrd.img-2.6.32-21-genericFound memtest86+ image: /boot/memtest86+.bindone

执行上面的命令后,可以在中发现我们的新kernel被添加进去了,见下面的vi部分输出,自动为我们添加了两项哦

vi/boot/grub/grub.cfg

### BEGIN /etc/grub.d/10_linux ### menuentry ‘Ubuntu,Linux 2.6.36.2′ –class ubuntu –class gnu-linux –class gnu –class os { recordfail insmod ext2 set root='(hd0,1)’ search –no-floppy –fs-uuid –set 62a097ef-4767-4b5e-8494-ef5fa3298037 linux /boot/vmlinuz-2.6.36.2 root=UUID=62a097ef-4767-4b5e-8494-ef5fa3298037 ro quiet splash initrd /boot/initrd.img-2.6.36.2}menuentry ‘Ubuntu,Linux 2.6.36.2 (恢复模式)’ –class ubuntu –class gnu-linux –class gnu –class os { recordfail insmod ext2 set root='(hd0,1)’ search –no-floppy –fs-uuid –set 62a097ef-4767-4b5e-8494-ef5fa3298037 echo ‘载入 Linux …’ linux /boot/vmlinuz-2.6.36.2 root=UUID=62a097ef-4767-4b5e-8494-ef5fa3298037 rosingle echo ‘载入引导虚拟磁盘 …’ initrd /boot/initrd.img-2.6.36.2}menuentry ‘Ubuntu,Linux 2.6.32-27-generic’ –class ubuntu –class gnu-linux –class gnu –class os { recordfail insmod ext2 set root='(hd0,1)’ search –no-floppy –fs-uuid –set 62a097ef-4767-4b5e-8494-ef5fa3298037 linux /boot/vmlinuz-2.6.32-27-generic root=UUID=62a097ef-4767-4b5e-8494-ef5fa3298037 ro quiet splash initrd /boot/initrd.img-2.6.32-27-generic

}

E: 重启验证

为了以防万一,在重启验证前我们修改一个地方,显示启动菜单,默认可能不会显示的:

的这一半更多地赢取上帝掌握的那一半。

Ubuntu 10.04手动更新kernel

相关文章:

你感兴趣的文章:

标签云: