|
|
一台文件存储服务器单目录下子目录已经突破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步骤供大家参考。
8 S$ L/ R$ y2 W
6 U A) z# w4 A/ W$ k一、升级前状态
% h1 E5 l/ H& b5 e5 d" m: d, ]引用
# j3 V0 Y9 J6 a! T- b! N/ b v$ g% U$ a- K% k. {
[root@USER-SERVER ~]# df+ M4 g" n7 @ n, B/ y% O& `
Filesystem 1K-blocks Used Available Use% Mounted on
7 m% D6 c, f: b& w& U" [* k$ x3 T/dev/sda2 20315844 2342008 16925196 13% /
, @& F* S* {! m! T+ v. F4 C7 P) f/dev/sda5 129863460 192192 122968152 1% /www
# r& z, m! e/ W( {% {1 j/dev/sda1 194442 17798 166605 10% /boot4 B. O6 E9 x; q& A" [0 \1 O3 h+ j; u
tmpfs 1029680 0 1029680 0% /dev/shm
* }- |/ q% W8 ^5 i2 @% ~2 w" d a ]$ D3 g
; O1 H0 K; q9 k' @. ]1 H( X) X+ B/ ?) A, n/ r6 P
无任何信息返回,说明/dev/sda5的ext4特征没有激活
- a% Z3 G* j% ]7 I. m( n6 q1 v引用& z$ e2 _: g. H+ s
: c3 H% }' W9 A, \6 N
[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent' Y8 `* V5 A( {/ i* C0 e2 Q. K- @
[root@USER-SERVER ~]#
- e, W8 Z0 ~5 d$ E1 |
5 ]8 Z) J1 J! F( ~/ K% m+ u) }
; D& o, r& _" D0 s" e5 r; x
$ B" _7 U1 T" W7 A1 A) u安装所需包
( P* f/ B5 o" S源码安装:2 y5 I( {3 ]9 C4 r# W
引用
% \. a! h& q& K; g' u: n. _, T, J7 R% t# F/ |5 _
wget http://ftp.kernel.org/pub/linux/ ... rogs-1.41.12.tar.gz/ k" E8 ?7 d: b" R# p
tar zxvf e2fsprogs-1.41.12.tar.gz; cd e2fsprogs-1.41.12
+ T6 J1 l+ {1 c0 w2 G./configure
7 j0 L/ z6 _ jmake;make install
# U! R; G* k3 ^9 G/ A. q8 A
8 a3 c" l( n. B4 s
( t9 m$ h! a; c1 y1 }3 p% B/ S( J$ d; J$ r+ ?3 |
RPM安装:
/ d' ~7 p! c6 h引用" G5 Y& k4 }) }
: a# K$ u; ]% r1 S9 h ]7 [9 f
yum -y install e2fsprogs Q C2 W4 v( D& i( H
# W2 W# A) F1 Z2 ]
: @9 P1 W! G5 b5 g& R
3 l/ J4 M! y7 z/ _+ H& J
, r- U5 H9 s/ A, h& ~二、制作引导镜像 q) b$ r+ I. w) A" { e! G
查找并加载相应的模块,如只需ext4支持,可将--with=ext3去掉4 P: r: {. L3 R- U- @8 [0 e
引用' H$ S5 w5 s; e' ?1 x
# b9 T- h1 }2 j0 B: Q- ~' g4 w; K
[root@USER-SERVER boot]# mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old
! x8 ?, H2 k# J[root@USER-SERVER boot]# mkinitrd -v --with=ext4 --with=ext3 /boot/initrd-`uname -r`.img `uname -r`/ D. [( B- b% r% F% a/ o7 [) S
Creating initramfs6 R' R! F7 _2 I
Looking for deps of module ehci-hcd
' _8 K, L" G3 k# R, B$ [& |5 sLooking for deps of module ohci-hcd9 x% l% W; F# Z8 ^+ r
Looking for deps of module uhci-hcd
- ~2 b) J: `, p1 V1 @5 t" H7 vLooking for deps of module ext3: jbd ; B' Q* D2 c& Y1 X9 `+ L' B2 `$ J
Looking for deps of module jbd
J6 m+ Q) {- oFound root device sda2 for LABEL=/* c- Q0 |5 W: h- [; ]0 ]
Looking for driver for device sda28 r+ q- ^& b7 L, v! G
Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix
7 m( r T% E% E; E# z1 RLooking for deps of module scsi_mod6 B! r# K7 r5 p" \+ ]9 s
Looking for deps of module sd_mod: scsi_mod " Q' {" r# U; ]" j% k2 _+ L
Looking for deps of module libata: scsi_mod 1 x y! E& n0 \# L: |5 a& Q
Looking for deps of module ata_piix: scsi_mod libata
/ W6 U( R, q8 S+ YLooking for driver for device sda3
4 q# R) O- I) o. G& |/ L( ELooking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix
( E. m1 i, O6 t5 L8 q1 p1 R0 u' DLooking for deps of module usb-storage: scsi_mod ' K, m z$ a# o; [! H7 r4 ^
Looking for deps of module ide-disk i2 ]& `, u1 b
Looking for deps of module dm-mem-cache
4 J- V3 w1 `& h% p s7 WLooking for deps of module dm-region_hash: dm-mod dm-log 3 C1 E2 I2 M! p) K
Looking for deps of module dm-mod
, H4 Q/ y. S% \! F) d* p, GLooking for deps of module dm-log: dm-mod / y( T5 }, m7 z$ u
Looking for deps of module dm-message
8 E9 C* s g0 U( }: l$ ]/ HLooking for deps of module dm-raid45: dm-message dm-mod dm-mem-cache dm-log dm-region_hash
( a6 _0 U7 R0 {4 `Looking for deps of module ext4: crc16 jbd2 4 j2 J0 [! T4 k) h! `" y
Looking for deps of module crc16
8 q% m5 b8 _8 u; o( ?/ ILooking for deps of module jbd2: a h$ o, Z- Q, R' b- _
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 M* N* R% {, S! T
/sbin/nash -> /tmp/initrd.qO3680/bin/nash
# ~6 @- G& o4 ^# |% y/sbin/insmod.static -> /tmp/initrd.qO3680/bin/insmod
' j7 }- S5 X2 U9 I/ ]4 Q# r$ G7 S7 Kcopy 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]
1 u( }4 }% t6 s1 ]& ]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] s D, C% e! K
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]& {5 E; W$ N" ? B
copy 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]
$ F8 {6 e6 O! A; [! X6 R* Kcopy 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]
8 y% w( I; c D8 M; @" _copy 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]
( P8 p- m0 H. B4 c+ J7 U* @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]" W( ~ L/ @* ~+ J
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]
* D" B1 E0 Q: i# r7 Icopy 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], @* @0 M6 U9 `, T {' r1 D7 O- H- s
copy 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] ^+ z8 P4 ^8 X: k& 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]6 ?: C2 p) B3 P/ ~2 R& { w
copy 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]6 r* S7 A d x' H o& J0 E
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]" y' B" y* F$ J/ _. c& Q1 j8 ~! g W
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]
5 P6 P, n4 r8 T% {! r5 @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]
_! ?9 o$ J3 G# s' h) I! ucopy 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]
) q% K& k' k( g* u1 M' vcopy 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]! t0 Z) \8 `: 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]2 {/ G% F# B- [! k
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]) A6 Y5 ^* w$ P
/sbin/dmraid.static -> /tmp/initrd.qO3680/bin/dmraid
7 q) H5 K, T- u) G& Z" |$ t/sbin/kpartx.static -> /tmp/initrd.qO3680/bin/kpartx
, _+ ?% \* B$ y2 j7 D' z0 q7 Z3 rAdding module ehci-hcd
Z. l2 z0 R. \6 \+ ]- QAdding module ohci-hcd% \" ^; V- B3 D9 u7 `
Adding module uhci-hcd
! K1 ~5 J* p- O5 A; h5 mAdding module jbd
( P/ X- s0 X R O/ i% Q, M' FAdding module ext3
0 a |5 ?3 x2 s- }6 V& X. `Adding module scsi_mod
4 ^0 i. F+ V+ b% A, g: Q2 TAdding module sd_mod
: I( d& h! M F7 EAdding module libata
% R! b- D; f9 [9 k$ |Adding module ata_piix$ N) g- ^3 D& \ ^" |3 J
Adding module usb-storage% j2 z* E8 f8 ]! e, p9 z
Adding module dm-mem-cache
4 \9 q/ ]. y' O, h" eAdding module dm-mod/ ^7 \( U. r4 E9 K
Adding module dm-log; \: s, t: T* G1 P. E
Adding module dm-region_hash$ x1 a1 D4 R2 `8 U) Z# T v
Adding module dm-message `/ E3 | k+ Q+ H1 S
Adding module dm-raid45$ ?4 o7 ]2 u' j/ @0 M" d
Adding module crc16
2 Q4 z3 g# f. c2 v% @6 F; hAdding module jbd23 z- o8 g1 l# J6 L) A
Adding module ext45 U- b' Q! ]1 w. S
1 P4 B& B8 w) T0 ?/ j7 }
/ R3 X; k, W9 L
# I3 ~8 c6 v# u- q
/ P- }5 L7 @4 w/ k3 t4 ?) X重启
! Z1 s' A6 g9 Z- Y[root@USER-SERVER ~]# reboot
& B A- C% I3 r, d! z, N/ F: P7 u3 E: K* a$ ]* _" q
三、格式转换
( D0 u, k5 F- ]- O! x[root@USER-SERVER ~]# umount /dev/sda5
1 ]1 z( u7 c. w6 w& R* N# w[root@USER-SERVER ~]# tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sda5
7 Q; B! s1 Z, R c* ~0 ?" o引用
* m4 X3 F; G) z" j" c U4 r
$ W. A0 m8 p9 gtune2fs 1.41.12 (17-May-2010)
; }3 N% W3 M- [6 }Please run e2fsck on the filesystem.5 n$ X. ]6 Y( R" {) M* q5 ]
: C# k( ^8 b& j4 S
# x1 s2 r) H* |3 D; R w/ x4 t7 Q' W/ i5 I
$ d. e* u% ~) X% \
四、修改转换文件系统错误并挂载
8 c2 b; k8 l+ \( U[root@USER-SERVER ~]# e2fsck -fDC0 /dev/sda5 -y T7 D% d3 | C$ s5 `
[root@USER-SERVER ~]# mount -t ext4 /dev/sda5 /www. I+ i: p. T" g( o5 ]" _! F
$ l- v! N; w/ k' A, B: l% K
五、修改文件系统信息(重要!否则重启后会还原为ext3)9 _( J# o+ j, h2 E9 [
将! T# {3 M$ E3 i/ R% F t3 g, k7 i
LABEL=/www /www ext3 defaults 1 27 _& h7 a4 g- d9 y" g
修改为+ I) Y$ h4 l% L* R8 l% a2 ]/ M
LABEL=/www /www ext4 defaults 1 2
: n/ P0 Y5 o( F1 {' K& J[root@USER-SERVER ~]# vi /etc/fstab# i+ c4 x5 }" w1 f1 w5 m8 X
引用 n( |1 v% P/ m( w: b! F
7 I; M3 G/ v6 z5 R. S0 M6 X
oot@USER-SERVER ~]# vi /etc/fstab, Z+ b. I+ ^ N- m
LABEL=/ / ext3 defaults 1 1
/ \ ~; N* `( Z. k+ U/ o" F; vLABEL=/www /www ext4 defaults 1 2
F8 h6 f) \) v/ e A- G' qLABEL=/boot /boot ext3 defaults 1 2, m+ G4 I- J4 W' ~# U
tmpfs /dev/shm tmpfs defaults 0 0
: J+ I, ]' }# a2 S( Gdevpts /dev/pts devpts gid=5,mode=620 0 05 }# `8 ?. S+ X4 e% V" T6 [
sysfs /sys sysfs defaults 0 0$ \5 ~3 o6 y }1 i
proc /proc proc defaults 0 0' G+ F! _5 _1 r& M" z
LABEL=SWAP-sda3 swap swap defaults 0 0' r7 P& t; O, ^9 r- B0 j9 h& K
& D* n2 \9 D" {$ M( p
4 c7 n: l9 H, v, ~" M. @
. w7 |" j3 c1 e. K6 w
' G; c# {, o5 H六、升级后状态
9 }9 m9 I; h; v- \ext4的特征全激活了:): d- _6 k, O- P& F; N
#[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent
$ h% S1 h) @1 l0 ~- s' h引用
" @: F0 K; l/ B9 C- ?$ M" `/ E
5 e- i8 s9 U: f3 {0 {4 n! }Filesystem 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) d. V$ g8 O4 d" t$ x' l+ Z2 k
0 b ^% O' C! d/ l; ~
0 |! W- o0 g9 \( Z
) i( R' ]4 Z% H[root@USER-SERVER ~]# df -T% b! q/ e# p- w
引用
3 H; |9 G# [8 Z3 E: c: d# W. E2 l0 J+ [! H( j
Filesystem Type 1K-blocks Used Available Use% Mounted on$ z' U7 a" E& R5 ^+ p
/dev/sda2 ext3 20315844 2310764 16956440 12% /
! V& C: p& Y7 g7 C7 h6 Q, P# i/dev/sda1 ext3 194442 20563 163840 12% /boot% o. s G3 K) B! b4 m
tmpfs tmpfs 1029672 0 1029672 0% /dev/shm
- E. a# X* `2 T' O1 Y" y& N. L/dev/sda5 ext4 129863460 192192 122968152 1% /www
1 V Z0 \1 Y/ E( N* I, g+ J) E; ]7 r
7 O% C4 Q1 C p+ g! N2 Z# ^$ U
|
|