基本步驟:
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軟件包安裝完畢後不要立即重啟服務器。