centos5.5 x86-64升级内核到2.6.30,以便格式化ext4大容量硬盘1xiaok

2021-05-21 18:10:46 浏览数 (1)

另一个关于内核升级的文档:《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

有问题联系我,多谢!

0 人点赞