Linux:主机linux内核版本升级实验

主机linux内核版本升级实验

1.实验要求

1、下载一个新版本的内核源码(尽量与本机内核源码版本相近)
2、修改内核源码,在启动过程中加入你的名字和学号,重新编译内核
3、用新内核启动,过程中应该出现你加入的信息(在启动时最好出现两个内核版本的选择)
4、要求写出详细的实验步骤和结果记录,并附相关实验截图

2.实验目的

希望学生通过该Project促进学生掌握linux内核编译,深入理解grub等引导程序,熟悉linux系统,理解linux内核的相关作用.

3.实验过程

3.1.查看Ubuntu版本

打开Ubuntu终端,输入 uname –r查看自己Ubuntu的Linux版本,我的电脑Ubuntu 8.04,Linux版本是2.6.24.
Linux:主机linux内核版本升级实验_第1张图片

3.2.下载新版本的内核源码

我下载的Linux内核版本是Linux-3.1.4,将其解压到/usr/src目录下
Linux:主机linux内核版本升级实验_第2张图片

3.3.修改源代码,添加学号+姓名

我们找到start_kernel函数(在 /linux/init/main.c中定义),添加自己的学号和密码
Linux:主机linux内核版本升级实验_第3张图片

3.4.配置内核选项

#cd linux-3.1.4 //进入到/usr/src/ linux-3.1.4目录下
#make mrproper 
#make menuconfig //配置内核各选项

make mrproper命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以前编译时未清理而残留的。
make menuconfig会出现一个图形界面,列出了所有的内核配置选项.
Linux:主机linux内核版本升级实验_第4张图片
Loadable Module support
选Module unloading和Automatic kernel module loading这两项;
Device Drivers
Block Devices中选Loopback device support
Multi-device support(RAID and LVM)处选device mapper support
Graphics support,选 Support for frame buffer devices
USB support ,选上USB Mass Storage support
Network device support —>;Ethernet (10 or 100Mbit)

由于在VMware虚拟机下编译内核,SCSI硬盘,因此以下三个选项必选:
Device Drivers
SCSI device support →SCSI device support
SCSI device support→SCSI disk support
SCSI device support→SCSI low-level drivers→BusLogic SCSI support
File system(以下9个选项是关于ext2和ext3文件系统配置,全部选上)
Second extended fs support
Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels
JBD (ext3) debugging support
File system
DOS/FAT/NT Filesystems —>选上NTFS file system support
Miscellaneous filesystems —><*> Compressed ROM file system support (cramfs)

3.5.开始编译内核

进入/usr/src/linux-3.1.4目录下,执行以下命令即可编译。编译需要一段时间。

#make dep //建立编译时所需的从属文件。注意:如果内核从未编译过,此步可跳过
#make clean //清除内核编译的目标文件
#make bzImage //开始编译内核

内核编译成功后,会在/usr/src/linux3-1-4/arch/i386/boot目录中生成一个新内核的映像文件bzImage。

这里写图片描述
如果在/usr/src/linux3-1-4/arch/i386/boot目录下找到bzImage说明你编译成功。

3.6.编译安装可加载模块

#cd /usr/src/ linux-3.1.4 (将目录切换到/usr/src/ linux-3.1.4下执行以下命令)
#make modules //编译可加载模块
#make modules_install //安装可加载模块

Linux:主机linux内核版本升级实验_第5张图片

安装成功后,系统会在/lib/modules目录下生成一个3.1.4子目录,里面存放着新内核的所有可加载模块。
这里写图片描述

3.7.安装新内核

在终端执行命令(将目录切换到/usr/src/ linux-3.1.4下执行以下命令)

#make install (安装新内核)

安装成功的界面为:
Linux:主机linux内核版本升级实验_第6张图片

3.8.生成文件系统

将新内核和System.map文件拷贝到/boot目录下。依次执行下面命令

# cp /usr/src/linux-3.1.4/arch/i386/boot/bzImage /boot/vmlinuz-3.1.4
# cp /usr/src/linux-3.1.4/System.map /boot/System.map-3.1.4
# cd /boot (进入boot目录)
# rm –rf System.map (删除原来的连接)
# ln -s System.map-3.1.4 System.map (重新建立连接)

执行以下命令,生成文件系统

#mkinitramfs -o /boot/initrd.img-3.1.4 3.1.4(这时候你的/boot下生成一个initrd.img-3.1.4,并且你的grub.conf也作了相应更改)

Linux:主机linux内核版本升级实验_第7张图片

3.8.配置grup

# df //查看根目录在那个分区,下一步要用到

我的是/dev/sda1
Linux:主机linux内核版本升级实验_第8张图片

# vi /boot/grub/menu.lst 

进入menu.lst文件,修改:
Linux:主机linux内核版本升级实验_第9张图片

4.实验结果

开机重启
Linux:主机linux内核版本升级实验_第10张图片
选择重新编译的版本(ubuntu 3-1-4,****
由于重启消息显示过快,所以找不到自己在源码中的个人信息
启动后,打开终端查看版本,可以看到启动系统的Linux版本
Linux:主机linux内核版本升级实验_第11张图片

http://blog.chinaunix.net/uid-26000296-id-4208526.html

你可能感兴趣的:(Linux)