无损升级ext3至ext4文件系统
基本步骤:
1确认内核版本和系统环境支持ext4 (推荐升至2.6.28以上,lsmod |grep ext4)
2卸载要升级的分区(在线卸不掉则需要进单用户)
3 tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize来给分区加入ext4的特性
4 e2fsck -fDC0 /dev/sdb1 –y修复分区错误
5修改fstab中分区格式为ext4,reboot
关键点:
1tune2fs版本要高于1.41 否则不支持ext4的特性
2官方推荐使用2.6.28以上内核才稳定支持ext4
3对在使用的分区如var,一定要先卸载再操作,并且重启之前一定要挨个执行完tune2fs,e2fsck,和vi /boot/fstab的修改,再重启,否则挂载就会出问题
网络资料:
一、测试场景
操作系统:CentOS 5.6 x86 64bit(内核2.6.18)
文件系统:ext3
硬盘:2块(sda1、sdb1),sdb1的挂载点为/Android,专门用来存储编译文件,在编译时报错。
二、升级前状态
查看系统内核版本:
# uname -r
2.6.18-238.el5
查看文件系统的情况:
# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
ext3 13077624 3342968 9059636 27% /
/dev/sda1 ext3 101086 15876 79991 17% /boot
tmpfs tmpfs 257452 0 257452 0% /dev/shm
/dev/sdb1 ext3 8254240 149624 7685324 2% /android
查看ext4特征是否激活:
# tune2fs -l /dev/sdb1 | grep extent
执行上述命令后无任何信息返回,说明/dev/sdb1的ext4特征没有激活,唯一的解决办法就是升级文件系统到ext4了。
三、软件下载及安装
e2fsprogs软件包下载页面:http://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/
接下来是源码编译安装过程:
# wget http://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/e2fsprogs-1.41.14.tar.gz
# tar -zxvf e2fsprogs-1.41.14.tar.gz
# cd e2fsprogs-1.41.14
# ./configure
# make && make install
安装完毕后暂时不需要重启系统。第一次安装完毕时我就重启系统了,结果系统竟然崩溃了,因此e2fsprogs软件包安装完毕后不要立即重启服务器。