内核编译练习
本次编译内核需要实现的功能:
1、 编译内核以实现对EXT4、Reiserfs、NTFS文件系统的支持。
2、 以此复习2.6内核编译的一般过程。
==========================================================================================================
步骤一:拷贝所需要的内核源码包
# fdisk –l
# mkdir /media/u
# mount /dev/sdb1 /media/u
# cd /media/u
# cd kernel
# cp linux-2.6.28.tar.gz /usr/src/kernels/
# cd
# umount /media/u
步骤二:解压内核源码包
# cd /usr/src/kernels/
# tar xzvf linux-2.6.28.tar.gz
步骤三:编辑Makeflie文件
# cd linux-2.6.28
# vim Makefile
-------------------------------------------------------------------------
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 28
EXTRAVERSION = -128.el5 // 修改扩展版本号
NAME = FileSystemTry // 修改名称
……
步骤四:拷贝配置文件用以生成“.config”配置文件
# ls /boot
# cp /boot/config-2.6.18-128.el5 ./.config
步骤五:在TUI界面载入.config文件并配置
# make menuconfig
选择相关的选项(详细选项大家可以载网上找“金步国2.6.19内核详细选项”
http://lamp.linux.gov.cn/Linux/kernel_options.html)
备注:编译时选上 file system 里的 FUSE (Filesystem in Userspace )support
步骤六:编译内核
# make
步骤七:安装内核
# make modules_install
# make install
步骤八:修改grub.conf
# cp /boot/grub/grub.conf /boot/grub/grub.conf_bak
# vim /boot/grub/grub.conf
--------------------------------------------------------------
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.28-128.el5)
root (hd0,0)
kernel /vmlinuz-2.6.28-128.el5 ro root=LABEL=/ hdc=ide-cdrom rhgb quiet
initrd /initrd-2.6.28-128.el5.img
title CentOS (2.6.18-128.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ hdc=ide-cdrom rhgb quiet
initrd /initrd-2.6.18-128.el5.img
步骤九:编译安装reiserfsprogs
作用:用于创建和维护reiserfs文件系统的工具
软件包下载地址:
ftp://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.19.tar.gz http://ftp.namesys.com/pub/reiserfsprogs/reiserfsprogs-3.6.19.tar.gz # cp reiserfsprogs-3.6.19.tar.gz /usr/src
# cd /usr/src
# tar xzvf reiserfsprogs-3.6.19.tar.gz
# cd reiserfsprogs-3.6.19
备注:这里有一个文件中所指定的一个包含文件的路径不正确,需要修改:
# vim include/reiserfs_fs.h
--------------------------------------------------------------------------
// 在末行模式使用“:41”直接将光标定位到41行
修改下面的内容:
#include <asm/unaligned.h>
修改为:
#include </usr/src/kernels/2.6.18-128.el5-i686/include/asm-i386/unaligned.h>
--------------------------------------------------------------------------
# ./configure --prefix=/usr --sbindir=/sbin && make
# make install && ln -sf reiserfsck /sbin/fsck.reiserfs && ln -sf mkreiserfs /sbin/mkfs.reiserfs
查看编译后生成的相关文件
# ls /sbin/*reiserfs*
步骤十:编译安装:fuse-2.8.0-pre2.tar.gz和 ntfs-3g-2009.4.4.tgz用以对NTFS文件系统的(读)写支 持。
A、编译安装fuse-2.8.0-pre2.tar.gz
官方网站:
http://fuse.sourceforge.net/# cp fuse-2.8.0-pre2.tar.gz /usr/src
# cd fuse-2.8.0-pre2
# tar xzvf fuse-2.8.0-pre2.tar.gz
# ./configure
# make && make install
B、 编译安装ntfs-3g-2009.4.4.tgz
官方网站:
http://www.ntfs-3g.org# cp ntfs-3g-2009.4.4.tgz /usr/src
# cp ntfs-3g-2009.4.4.tgz /usr/src
# tar xzvf ntfs-3g-2009.4.4.tgz
# cd ntfs-3g-2009.4.4
# ./configure
# make && make install
C、 挂载:NTFS文件系统:
手工方式挂载:(下面两个命令都可以)
# ntfs-3g 设备名称 挂载点
# mount –t ntfs-3g设备名称 挂载点
开机自动挂载:
# vim /etc/fstab
------------------------------------实例---------
/dev/sda1 /mnt/windows ntfs-3g defaults 0 0