|
|
一台文件存储服务器单目录下子目录已经突破31998数限制,造成无法继续创建子目录,服务器系统环境为CentOS5.4 内核版本为2.6.18。解决方案只能是升级到ext4文件系统,首先到https://ext4.wiki.kernel.org/index.php/Ext4_Howto查了一下资料,文中的第一句便是“Ext4 was released as a functionally complete and stable filesystem in Linux 2.6.28”。难道只能升级内核一条路了吗?当然不是:)呵呵,下面总结本人实施/www分区从ext3升级至ext4步骤供大家参考。
; k p9 O7 p n3 L
/ _; a# n4 {; c; U+ N! {一、升级前状态
- {( K! A' l5 t3 A( R8 o引用
) t7 ] q: v& j" |5 N) e/ ~4 ` L6 E5 H' w$ ]/ D: q
[root@USER-SERVER ~]# df
$ B. K' T2 H; K" j) ^2 ?Filesystem 1K-blocks Used Available Use% Mounted on0 E' r7 ~0 ^8 I
/dev/sda2 20315844 2342008 16925196 13% /
2 }3 g0 o" D. k' b/dev/sda5 129863460 192192 122968152 1% /www, a3 v1 L' |# t4 B' ?9 r
/dev/sda1 194442 17798 166605 10% /boot
# b: F: t% b0 J' @8 ?tmpfs 1029680 0 1029680 0% /dev/shm: S# b" \+ l& D2 u! R/ F2 Z
4 H. _) u- Y- y6 t
/ {" U# S7 c1 _ [& r+ [ B
0 s9 `2 a d0 C2 x/ a. ~, K无任何信息返回,说明/dev/sda5的ext4特征没有激活
+ ~' e) @% [- k N+ j2 X& y: ~引用
: j, X6 i7 R7 g' L: t$ ? Z6 v! V+ J0 Z& z, j5 z* J9 W3 c1 X2 ~. O
[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent* H) n. m5 s0 V3 x8 w- m2 I
[root@USER-SERVER ~]# : g6 `( }2 A) }8 Q5 u8 ^
9 Q# i, O( l7 K( T/ L
4 x* u" V3 V, U0 A/ V* u$ }9 u! m1 A5 C- j# Z7 e8 o; D
安装所需包8 a- A0 R1 t( ~% Y' r
源码安装:
& D; E0 _9 r& E5 B引用
+ M% m2 r3 @) p7 _+ r. T& R
9 p1 D3 W5 x3 D# ]2 swget http://ftp.kernel.org/pub/linux/ ... rogs-1.41.12.tar.gz+ w O: Q5 ?' z C& U" w ]0 c
tar zxvf e2fsprogs-1.41.12.tar.gz; cd e2fsprogs-1.41.12% F L- N0 _0 s
./configure6 \5 D: A# u" V$ F( ]
make;make install
1 r* y" S' ~* R5 N( x# [
7 |/ l* x0 _5 I8 s0 B3 @0 u. X% O
' |9 m6 C1 y! X* n0 f
4 R8 D3 p$ ?4 T* RRPM安装:. n$ K3 e; ^% G9 s
引用
- K* u8 \6 N3 ^, w. E
! e, d. L% O' F5 N5 M( ^8 g' r- D5 h+ Zyum -y install e2fsprogs
$ |3 M$ C, g2 G0 B
8 s* F- `* Q$ h6 w/ o
! l. e! D, a/ N1 m. I
L* G, Z6 F7 T. ?9 j# w) d/ ^
! v* `; r! Y5 v6 p二、制作引导镜像+ G: C6 q! v, w& F6 y5 w/ H5 o
查找并加载相应的模块,如只需ext4支持,可将--with=ext3去掉
0 k, d5 a9 T( Z7 u1 J7 L引用& B7 `/ G9 D3 B$ W" k! r7 z3 F
( _/ O; {5 f0 M X3 d! P+ L
[root@USER-SERVER boot]# mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old
+ @6 e2 e6 Q* C* n( J[root@USER-SERVER boot]# mkinitrd -v --with=ext4 --with=ext3 /boot/initrd-`uname -r`.img `uname -r`2 x2 m P8 y8 H3 k* L4 R! g" U
Creating initramfs
0 W9 P1 x4 ]8 }& n: E3 v9 [Looking for deps of module ehci-hcd- z) Z4 ?0 z: s& e L
Looking for deps of module ohci-hcd' T* M3 K. E6 H6 H# @
Looking for deps of module uhci-hcd0 K0 y/ ]2 }" w" O9 [' k- f2 Z
Looking for deps of module ext3: jbd
4 k# S# n. S OLooking for deps of module jbd3 L; j! G. e9 o; @: Z! @0 i
Found root device sda2 for LABEL=/! m( Y1 k" s" Z$ B
Looking for driver for device sda24 g- A2 L' w B% T/ r7 Q* M
Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix ' }6 r, x5 c Q! M5 P) K7 K
Looking for deps of module scsi_mod
% c) D2 O6 i2 b8 {( [+ z \5 rLooking for deps of module sd_mod: scsi_mod
7 d- x! y% x0 r; @Looking for deps of module libata: scsi_mod * b; _* T7 B& O8 |. r: S; h$ ?' r5 I
Looking for deps of module ata_piix: scsi_mod libata
# k4 K. q5 G! l# j/ C+ _& y9 Y2 \Looking for driver for device sda37 |4 R% D( J. C) }) Y3 C2 \
Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix
! m% a) Z/ |; d: H8 kLooking for deps of module usb-storage: scsi_mod
; _; w! `6 ~$ N$ d# k6 R* mLooking for deps of module ide-disk2 p' h \! ^ }7 d* S( |, D
Looking for deps of module dm-mem-cache
& M" S- k; ]4 q2 S' t! ALooking for deps of module dm-region_hash: dm-mod dm-log 5 {9 w: V, U ?# V" P7 N- ^4 U
Looking for deps of module dm-mod
5 c& Y8 D+ v. h) kLooking for deps of module dm-log: dm-mod
2 [9 }1 v% l" d5 P0 i3 F# B2 wLooking for deps of module dm-message) P9 @# x- s* p' k
Looking for deps of module dm-raid45: dm-message dm-mod dm-mem-cache dm-log dm-region_hash j+ o. `3 k' e% f& I
Looking for deps of module ext4: crc16 jbd2 8 T( q6 G. C7 l( @
Looking for deps of module crc16
$ x2 r4 @$ \7 a# ELooking for deps of module jbd2/ `1 Z1 {3 c1 x5 r% A8 V) N0 u
Using modules: /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/host/ehci-hcd.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/host/ohci-hcd.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/host/uhci-hcd.ko /lib/modules/2.6.18-164.15.1.el5/kernel/fs/jbd/jbd.ko /lib/modules/2.6.18-164.15.1.el5/kernel/fs/ext3/ext3.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/scsi/scsi_mod.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/scsi/sd_mod.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/ata/libata.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/ata/ata_piix.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/storage/usb-storage.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-mem-cache.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-mod.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-log.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-region_hash.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-message.ko /lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-raid45.ko /lib/modules/2.6.18-164.15.1.el5/kernel/lib/crc16.ko /lib/modules/2.6.18-164.15.1.el5/kernel/fs/jbd2/jbd2.ko /lib/modules/2.6.18-164.15.1.el5/kernel/fs/ext4/ext4.ko I& m; D4 s& P, i
/sbin/nash -> /tmp/initrd.qO3680/bin/nash3 f# b& w5 L; T, F F+ N8 \1 N" n
/sbin/insmod.static -> /tmp/initrd.qO3680/bin/insmod
& S1 D( ]0 z) d9 s+ [copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/host/ehci-hcd.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/ehci-hcd.ko' [elf64-x86-64]9 X, H) [2 x. v" ?5 o9 {* `
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/host/ohci-hcd.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/ohci-hcd.ko' [elf64-x86-64]
; u* Y; _, C) k. I$ ?copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/host/uhci-hcd.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/uhci-hcd.ko' [elf64-x86-64]
8 y: w2 C4 q: ]4 m: o! ~$ rcopy from `/lib/modules/2.6.18-164.15.1.el5/kernel/fs/jbd/jbd.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/jbd.ko' [elf64-x86-64]8 o5 J6 j R) \& t* F, u0 ^$ n
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/fs/ext3/ext3.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/ext3.ko' [elf64-x86-64]
4 U7 H6 C' e+ W. Ncopy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/scsi/scsi_mod.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/scsi_mod.ko' [elf64-x86-64]2 t" o- p' Y. I: d
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/scsi/sd_mod.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/sd_mod.ko' [elf64-x86-64]8 { g/ ]8 z q+ }
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/ata/libata.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/libata.ko' [elf64-x86-64]$ L q% w- M: w
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/ata/ata_piix.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/ata_piix.ko' [elf64-x86-64]
/ ?' t$ z1 N2 m0 W1 h Ncopy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/usb/storage/usb-storage.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/usb-storage.ko' [elf64-x86-64]- b2 G3 r5 W, K- B. u2 i' Z8 n' e
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-mem-cache.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/dm-mem-cache.ko' [elf64-x86-64]
4 t% b" I9 g, i+ g0 u: bcopy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-mod.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/dm-mod.ko' [elf64-x86-64]4 E" m& W# s' |
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-log.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/dm-log.ko' [elf64-x86-64]9 M) L$ V: n6 `" ~
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-region_hash.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/dm-region_hash.ko' [elf64-x86-64]
0 w. t4 d; b {copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-message.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/dm-message.ko' [elf64-x86-64]+ q+ t% q% K: E% Z
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/drivers/md/dm-raid45.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/dm-raid45.ko' [elf64-x86-64]
O/ D+ {, l8 h9 l: f+ Bcopy from `/lib/modules/2.6.18-164.15.1.el5/kernel/lib/crc16.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/crc16.ko' [elf64-x86-64], {- U1 y. M( F F, P
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/fs/jbd2/jbd2.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/jbd2.ko' [elf64-x86-64]* Q" V0 `8 [: `# c" o
copy from `/lib/modules/2.6.18-164.15.1.el5/kernel/fs/ext4/ext4.ko' [elf64-x86-64] to `/tmp/initrd.qO3680/lib/ext4.ko' [elf64-x86-64]# n" e# t2 c5 u5 r. \- P' H; H4 T
/sbin/dmraid.static -> /tmp/initrd.qO3680/bin/dmraid9 g" Z2 b4 t$ |4 b' @, z
/sbin/kpartx.static -> /tmp/initrd.qO3680/bin/kpartx- K6 B9 t* D v! w3 y" n: U) Q& _* K
Adding module ehci-hcd
, J, U$ M, }) ]0 o4 B1 [& [$ HAdding module ohci-hcd
1 X- D+ Z5 E h2 u4 eAdding module uhci-hcd
! `& @" }2 a! x8 Q& c7 AAdding module jbd( F0 G* e# X: |+ {4 z
Adding module ext3- D: L& Q) N) k ]. N
Adding module scsi_mod! H# S: y) W6 l* F2 N4 |$ f
Adding module sd_mod
6 X! K6 F- O# q8 m FAdding module libata7 M% W' y& }% c. s. }2 S& N
Adding module ata_piix+ K2 d. q5 ^8 h
Adding module usb-storage! U# _, E' @4 m- Q# p+ S- M) q$ W1 K
Adding module dm-mem-cache
1 L# a3 R: O5 ^! kAdding module dm-mod0 ~3 a7 K' r z; {6 j( ?- P" L
Adding module dm-log
# C7 y/ ^9 G' t! V2 DAdding module dm-region_hash6 h+ T+ _8 }& F$ ^* }/ k! [
Adding module dm-message) b& W+ k3 u' ~
Adding module dm-raid45
: i" i' Y' @5 _: y9 g) lAdding module crc16
4 O) H9 }! l, X# ZAdding module jbd2
7 T2 Y* s7 P& }Adding module ext4; X; c; a/ t6 [- y5 K
; z& J6 A; A( c* L5 p) y4 L) K; q
8 `- k& l* c* L) F0 {- ^8 \5 N
H9 _1 r4 C" I! d8 ?" @5 h: G$ _; T重启5 S5 a, x0 L/ l, A: `' R
[root@USER-SERVER ~]# reboot
9 R. o1 Q% }, k% h* s* f- |9 n @4 I9 v2 @* s+ I
三、格式转换& l# J# i. }% Y/ a0 Y
[root@USER-SERVER ~]# umount /dev/sda58 \+ J% v$ M+ e, j% Z+ b
[root@USER-SERVER ~]# tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sda5/ d# _9 K8 P# W( V
引用
8 @$ C# X- n; U6 r# p/ u4 K" @/ a: ?. F2 E( T6 @
tune2fs 1.41.12 (17-May-2010)9 _, X% O; _4 d3 C W
Please run e2fsck on the filesystem.
& f/ A6 a: a, P/ Z- d1 H6 O& p+ q$ d* g
9 o0 C4 f% D: `. P+ h* o3 g, `7 J& B
+ s- g! J% ^" J6 ]# s5 W
四、修改转换文件系统错误并挂载
$ u) a6 |6 _* w1 P[root@USER-SERVER ~]# e2fsck -fDC0 /dev/sda5 -y
2 C( T5 q) C! V$ }" `[root@USER-SERVER ~]# mount -t ext4 /dev/sda5 /www
* D- A( `6 c* t2 h6 c3 z) u+ i; X
7 u: W8 |1 J- J( S: p" D/ [五、修改文件系统信息(重要!否则重启后会还原为ext3)" V- Y9 \& I% I8 ]$ y" |
将* F* `% W* h2 V2 N
LABEL=/www /www ext3 defaults 1 2+ H R3 O, i5 l
修改为/ E' M" r7 a( s& E: N
LABEL=/www /www ext4 defaults 1 2
. J4 A v( Q7 j6 L7 X4 g[root@USER-SERVER ~]# vi /etc/fstab* L; o( y3 V7 Q7 o0 S* X1 \( ]& n
引用9 q+ X& k1 l% C9 Y
1 @3 `: f% V' O, j
oot@USER-SERVER ~]# vi /etc/fstab; a I _: `/ r5 `! ]( ]" v2 Z1 H
LABEL=/ / ext3 defaults 1 1
6 f* ]$ o# x# L3 NLABEL=/www /www ext4 defaults 1 2
# O7 v e- o w4 o8 u! H; M! n+ {0 VLABEL=/boot /boot ext3 defaults 1 2/ u8 `) W5 W% J9 ~* g! {1 q( U
tmpfs /dev/shm tmpfs defaults 0 0# F! p8 F- }0 A" X; m
devpts /dev/pts devpts gid=5,mode=620 0 0) b; h3 j0 @; w F. `9 f
sysfs /sys sysfs defaults 0 0
$ I' P3 q5 B- W. } nproc /proc proc defaults 0 0
! s! [1 e- p( j: GLABEL=SWAP-sda3 swap swap defaults 0 0' A9 v; H9 P2 y; o
2 h0 y' I( b0 P8 ]5 x R" m. P; v/ u2 n: B1 z3 d
8 v0 |5 f# A$ z* B0 `
- E/ ]( K& K: X. x六、升级后状态! b$ D) }# P4 B6 ~8 N5 i6 y
ext4的特征全激活了:)
# A. h0 p4 }7 q& I! t* r#[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent8 [3 J' G$ k8 c" Y6 h
引用2 B/ B& c% C5 @7 M9 Y0 A+ B
/ t8 N( H9 Q# aFilesystem features: has_journal resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
+ W7 ?) U, }5 o$ O
2 `; F8 ^0 c1 y3 e0 y: F; ~9 L% |% m
" J9 I: y6 y6 D( f
[root@USER-SERVER ~]# df -T) M4 r8 k- B0 a! X
引用
9 s2 h( D: \$ v, \2 O# v- ?3 A# q' T7 s& @" x! y9 B8 O! {
Filesystem Type 1K-blocks Used Available Use% Mounted on
! B4 n8 G! Y$ b) O {) a Q1 M/dev/sda2 ext3 20315844 2310764 16956440 12% /& y& h& V; p: ~7 _! z/ |2 G
/dev/sda1 ext3 194442 20563 163840 12% /boot
1 Y# \. f4 @5 F& X, K0 }- gtmpfs tmpfs 1029672 0 1029672 0% /dev/shm
6 }5 g% \: B- W/dev/sda5 ext4 129863460 192192 122968152 1% /www3 m7 r) K: u* ]2 s
) o! a7 p+ c( D9 M% |( {6 c- j
/ A# y0 O2 [& f" q/ Q' U. z+ R, D |
|