热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Debian系统内核升级过程记录

先配置好/etc/apt/sources.list然后命令:apt-getupdateapt-cachesearchkernel-image-2.6#这个命令是搜索2.6版本的kernel-image#然后你就会找到所有内核的一个列表,有很多。#你挑一个自己想要的,比如kernel-image-2.6.8-1-686:

先配置好 /etc/apt/sources.list
然后命令:
apt-get update
apt-cache search kernel-image-2.6  #这个命令是搜索 2.6 版本的 kernel-image
#然后你就会找到所有内核的一个列表,有很多。
#你挑一个自己想要的,比如 kernel-image-2.6.8-1-686:
 proftpd-doc-2.6.8-1-686 #这个命令用来安装软件包
 

这时,Debian 会自动去下载,下载后,自动安装、配置 grub 和 lilo 的启动列表。
然后,重新启动计算机,选择你刚安装的这个内核,即可运行它了。
然后可以把旧内核删除:

apt-get remove kernel-image-2.4*

=======================

$$$$$$$$$$$$$$$$$$$$4
安装必需的软件包 (为内核编译做准备)
首先我们升级软件(包)库:
apt-get update

然后我们安装所有需要的软件包:
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

3 下载内核源代码
接下来我们下载需要的内核到/usr/src目录(去www.kernel.org网站下载你需要的内核版本, 比如. linux-2.6.18.1tar.bz2(你可以从这里下载所有的2.6内核: http://www.kernel.org/pub/linux/kernel/v2.6/). 然后下载到/usr/src目录:
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2

然后解压内核源代码, 创建一个指向内核源代码目录的linux字符链接:
tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux

4 给内核源代码打补丁(可选)
有时你的缺省内核不支持新买的设备, 你需要安装新的驱动. 或者你需要使用虚拟技术或其它高级的技术, 而这些现有的内核都不支持. 这样情况下你需要给给内核源代码打补丁(当然补丁已经发布..)

现在我们假设你已经下载需要的补丁(以下例子我叫它patch.bz2)到/usr/src. 运行下面的命令给内核源代码直接打上补丁(你的用户必须位于/usr/src/linux目录):
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1

第一个命令用于测试, 对内核没有任何影响. 如果没有显示错误, 你可以运行第二个命令给内核打补丁. 如果第一个命令有误, 请务继续的操作!

 配置内核
使用当前工作内核的配置文件做为新内核配置文件的基础是一个很好的主意. 因此我们拷贝已存的配置文件到/usr/src/linux:
cp /boot/config-`uname -r` ./.config

然后运行
make menuconfig
构建内核
执行下面命令来构建内核:
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image
kernel_headers
在--append-to-version= 后面你可以写上任何字符串来区别内核版本, 但是必须以" - "符号开始而且后面不包括任何空格.

保持耐心, 内核编译需要一定时间, 主要看你的内核配置和处理器速度.

7 安装新内核
在成功构建内核后, 你在/usr/src目录能发现两个.deb软件包.
cd /usr/src
ls -l

在我的测试系统上, 他们分别名为 linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb (包含了实际的内核) 和 linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb (包含了需要的文件, 用于以后需要编译额外的内核模块). 我是这样安装的:
dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb

(现在你甚至能够拷贝这两个.deb文件到其它的Ubuntu系统, 通过上面的方式安装. 你将不再需要编译内核.)

然后检查 /boot/grub/menu.lst文件, 现在你将能发现新内核使用的两个引导配置块:
vi /boot/grub/menu.lst

在我测试系统上已经添加好的引导配置块是这样的:
title Ubuntu, kernel 2.6.18.1-custom
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.18.1-custom
savedefault
boot

title Ubuntu, kernel 2.6.18.1-custom (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.18.1-custom
boot

现在重启系统:
shutdown -r now

如果一切进展顺利, 你的新内核正常工作. 你还可以通过运行下面命令来检查新内核是否运行:
uname -r

这将会显示如:
2.6.18.1-custom

##########################3
     # apt-get install debhelper modutils kernel-package libncurses5-dev
     # apt-get install kernel-source-2.4.18   # 使用最新版本
     # apt-get install fakeroot
     # vi /etc/kernel-pkg.conf                # 输入我的名字和email
     $ cd /usr/src                            # 创建目录
     $ tar --bzip2 -xvf kernel-source-2.4.18.tar.bz2
     $ cd kernel-source-2.4.18                # 如果这是你的内核源码
     $ cp /boot/config-2.4.18-386 .config     # 将当前配置设定为默认配置
     $ make menuconfig                        # 按自己的喜好来定制
     $ make-kpkg clean                        # 必须执行这步(per: man make-kpkg)
     $ fakeroot make-kpkg --append_to_version -486 --initrd \
--revision=rev.01 kernel_image \
modules_image # modules_image可以是pcmcia-cs*等。
     $ cd ..
     # dpkg -i kernel-image*.deb pcmcia-cs*.deb # 安装
make-kpkg kernel_image实际上执行了make oldconfig和make dep。如果没使用initrd就不要使用--initrd选项。
#

#############################33
#make menuconfig
#make-kpkg clean
#make-kpkg --append_to_version -686 --initrd kernel_image modules_image
#cd ..
#dpkg -i kernel-image-***.deb


推荐阅读
author-avatar
宋雨甄_938
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有