您的位置:首页 > 运维架构 > Linux

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

2015-12-10 23:10 567 查看
主机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.



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

我下载的Linux内核版本是Linux-3.1.4,将其解压到/usr/src目录下



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

我们找到start_kernel函数(在 /linux/init/main.c中定义),添加自己的学号和密码



3.4.配置内核选项

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


make mrproper命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以前编译时未清理而残留的。

make menuconfig会出现一个图形界面,列出了所有的内核配置选项.



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 //安装可加载模块




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



3.7.安装新内核

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

#make install (安装新内核)


安装成功的界面为:



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也作了相应更改)




3.8.配置grup

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


我的是/dev/sda1



# vi /boot/grub/menu.lst


进入menu.lst文件,修改:



4.实验结果

开机重启



选择重新编译的版本(ubuntu 3-1-4,[b]****[/b])

由于重启消息显示过快,所以找不到自己在源码中的个人信息

启动后,打开终端查看版本,可以看到启动系统的Linux版本



http://blog.chinaunix.net/uid-26000296-id-4208526.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: