另一个关于内核升级的文档:《NFS》目录里《centos5.5 x86-64升级内核到2.6.20,安装iotop及fscache》
获取包:
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.10.tar.bz2
解压:
tar jxvf linux-2.6.30.10.tar.bz2 -C /usr/src
编译并选择模块:
cd /usr/src/linux-2.6.30.10
cp /boot/config-2.6.18-194.el5 .config
make menuconfig
选择Load an Alternate Configuration File,导入.config文件,根据自己的需要添加功能或者进行精简。
###选择自己机器的驱动并去掉一些其他的驱动,如蓝牙,无线,无线USB网卡驱动,“File systems”里添加了EXT4,XFS 文件系统模块
编译内核是必须选择:
General setup下的--- [*] Prompt for development and/or incomplete code/drivers
General setup -> Enable extended accounting over taskstats
-> Enable per-task storage I/O accounting (这个是对iotop的支持)
Device Drivers -> Real Time Clock,提供RTC支持,否则不能使用clock命令(此2.6.30内核RTC支持单独列出来了,之前的内核RTC支持:Device Drivers -> "Character devices" -> "Enhanced Real Time Clock Support")
注:内核配置有两种方法,一种是直接置入内核* ;另一种是编成模块M ;两种方法各有优点;直接编入内核的,比如设备的启动,不再需要加载模块的这一过程了;而编译成模块,则需要加载设备的内核支持的模块;但直接把所有的东西都编入内核也不是可行的,内核体积会变大,系统负载也会过重。我们编内核时最好把极为重要的编入内核;其它的如果您不明白的,最好用默认[3]。
File system -> The Extended 4 (ext4) filesystem (NEW)及其子选项全选。
修改完毕选择Save an Alternate Configuration File,然后退出配置。
修改.config文件
grep "CONFIG_NF_CONNTRACK_IPV4" .config 如果这个选项没有设置或者是为m,iptable 无法使用,即增加:CONFIG_NF_CONNTRACK_IPV4=y
grep "CONFIG_SYSFS_DEPRECATED_V2" .config 是否为y,如果不是,启动的时候会报错 “mount: could not find filesystem ‘/dev/root’......”
make -j8 bzImage
make -j8 modules
make modules_install
make install
错误排除:
启动后可能会报错:insmod: error inserting '/lib/dm-region-hash.ko' : -1 File exists
所以,先做以下处理:
cd /tmp
cp /boot/initrd-2.6.30.10.img .
mkdir newintrd
cd newintrd
zcat ../initrd-2.6.30.10.img |cpio -i
vi init
删除掉重复的两行:
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
多余的两行保留
find . |cpio -c -o > ../initrdnew
cd ..
gzip -9 < initrdnew > initrd-2.6.30.10.img.new
cp initrd-2.6.30.10.img.new /boot/initrd-2.6.30.10.img
vi /etc/grub.conf
修改 default=0
然后reboot
linux-2.6.30.10]# uname -a
Linux xxx 2.6.30.10 #2 SMP Sat Jun 19 16:00:07 CST 2010 x86_64 x86_64 x86_64 GNU/Linux
启动后看有没有错误
dmesg|grep -i "error" 看到没有任何输出,那个心情愉悦的程度。
---新的linux分区按照ext4格式化:
先分区,对于大容量盘使用parted来分区:
parted /dev/sdb # 使用parted来对GPT磁盘操作,进入交互式模式
(parted) mklabel gpt # 将MBR磁盘格式化为GPT
(parted) mkpart primary 0 -1 # 全部容量做一个主分区
(parted) print #打印当前分区
(parted) quit 退出
分区完成,开始格式化:
需要安装包e4fsprogs.x86_64,
yum install e4fsprogs.x86_64
mkfs.ext4 -N 1491632640 /dev/sdb1 (按inode数格式化)
mount -t ext4 /dev/sdb1 /nfsdata
vi /etc/fstab
/dev/sdb1 /nfsdata ext4 defaults 1 2
---linux ext3平滑升级到ext4:
同样需要安装e4fsprogs.x86_64,
yum install e4fsprogs.x86_64
升级前请备份分区里的数据,确保安全。
umount /nfsdata
tune4fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sdb1
e4fsck -fDC0 /dev/sdb1 -y
/*** tune4fs -O extents,uninit_bg,dir_index /dev/sdb1
/*** e4fsck -pf /dev/sdb1
mount -t ext4 /dev/sdb1 /nfsdata
vi /etc/fstab
/dev/sdb1 /nfsdata ext4 defaults 1 2
有关6.2加载ext4的方法:
1.加载ext4模块,让系统支持ext4文件系统
modprobe ext4
2.安装ext4格式工具
yum –y install e4fsprogs e4fsprogs-devel
3.建立数据目录
mkdir /home/disk1
mkdir /home/disk2
mkdir /home/disk3
4.格式硬盘
mkfs.ext4 /dev/sdb
mkfs.ext4 /dev/sdc
mkfs.ext4 /dev/sdd
5.挂载硬盘
mount /dev/sdb /home/disk1
mount /dev/sdc /home/disk2
mount /dev/sdd /home/disk3
6.查看挂载分区
mount
有问题联系我,多谢!