在线为Debian升级内核-》由2.2-20到2.4.20

昨天,为Debian在线升级了内核,虽然对老鸟来说是小菜,但对于新手,可能还有点用吧。主要就是apt-get install这个来升级。

一。在/etc/apt/sources.list加入下面的。

#debian woody
deb ftp://ftp.jp.debian.org/debian unstable main contrib

二。运行一系列的命令。

#apt-get update

# apt-get install kernel-image

会出来一系列的提示,让我们来选择要升级哪个版一的。用下面的命令来看一下,现在系统的版本是什么的?注意看我标颜色的地方。这就证明是此机是686的CPU

#uname -a

Linux linuxsir03 2.2.20-idepci #1 Mon Jan 13 22:22:30 EST 2003 i686 unknown unknown GNU/Linux


那们们运行了#apt-get install kernel-image以后,我们应该怎么选择内核呢??


# apt-get install kernel-image
Reading Package Lists... Done
Building Dependency Tree... Done
Package kernel-image is a virtual package provided by:
kernel-image-2.4.20-k7-smp 2.4.20-5
kernel-image-2.4.20-k7 2.4.20-5
kernel-image-2.4.20-k6 2.4.20-5
kernel-image-2.4.20-686-smp 2.4.20-5
kernel-image-2.4.20-686 2.4.20-5
kernel-image-2.4.20-586tsc 2.4.20-5
kernel-image-2.4.20-386 2.4.20-5
kernel-image-2.4.18-bf2.4 2.4.18-6
kernel-image-2.2.22-idepci 2.2.22-1
kernel-image-2.2.22-compact 2.2.22-1
kernel-image-2.2.22 2.2.22-1
kernel-image-2.2.20-udma100-ext3 2.2.20-7
kernel-image-2.2.20-reiserfs 2.2.20-4
You should explicitly select one to install.
E: Package kernel-image has no installation candidate

我们想升级到2.4.20版本的,我用的是INTEL的C-333的CPU的机器,所以我选686的。情况就由您所用的CPU来决定 。也就是看uname -a。
于是用下面的命令:
# apt-get install kernel-image-2.4.20-686

这样升级完成后,系统就自动更新内核了。这仅是第一步,也是最简的。哈。。其实下面的几步也是一样的简单。。

在升级的过程中,有一些提示,我们要仔细的看。除了LILO的那个,其它的都是YES吧。到LILO这个地方,可能系统问:是否用老原来的LILO配制文件来引导?如果选[是],可能麻烦就来了。这要仔细应对。如果您对LILO引导,可能不会有什么问题,只是改一下/etc/lilo.conf就行了。这个过程省略,因为我不用LILO。我主要谈一下GRUB。
如果用GRUB来引导,可能在更新内核的时候一不小心就会把GRUB从MBR中赶出来。对于GRUB。可能做完了上一步,我们还得得新安装GRUB。方法就在这里。。

http://www.linuxsir.com/bbs/showthr...;threadid=16614
这个过程也省了。仔细的看一下不会太难。

上面改/etc/grub.conf中,可能更新了内核会出现如下的错误信息。

VFS Unable to mount root fs on 03:01

为了避免上面情况的发生。我们就一步到位把/etc/grub.conf文件更改一下。

/etc/grub.conf中启动Debian的那段中,加入
initrd=/boot/initrd.img-2.4.20-686
看一下完整 的启动Debian新内核的一段


title Debian 3.0 Woody
root (hd0,0)
kernel /boot/ vmlinuz-2.4.20-686 root=/dev/hda1
initrd=/boot/initrd.img-2.4.20-686

vmlinuz-2.4.20-686和initrd.img-2.4.20-686,应该到/boot目录下去找相应的文件名。在这里,我是以我的机器上的来说的。

同时,要在/etc/grub.conf中保证原来的内核的启动的那段有在, 这样就是我们没有写好grub.conf,我们也方便修改。

另外,升级完成后,可能存在网卡不能用的情况,这要修改/etc/modules.conf这个文件,比如我用8029的网卡,就要加入一行。

alias eth0 ne2k-pci

当然如果声卡要发声,也得重新修改这个文件。应该到/lib/modules/2.4.20-686/kernel/drivers/
中找相应的硬件设备的模块名,比如我想让8029网卡能加载。这是我以我的机器的上的系统来说的。在我前面说的目录中,可能与您的不同。也就是标颜色的地方不同。网卡的模块名就在/lib/modules/2.4.20-686/kernel/drivers/net
8029的网卡,也就是ne2k-pci,所以就有alias eth0 ne2k-pci这一行之说。具体详细的,就看您所出的问题,根据问题找解决办法,可能是最能学到东西了。我仅是举个例子。

改完后,我们reboot一下试试???

#uname -a
#reboot