易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4376|回复: 1
收起左侧

ext3升ext4

[复制链接]
发表于 2017-1-3 17:12:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
  一台文件存储服务器单目录下子目录已经突破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步骤供大家参考。- D7 N- m: o) t5 y& s- q6 p

' B; ]3 F$ F8 E3 o1 x$ r一、升级前状态3 ^8 W, i/ @& K* f2 d! c' S5 G' |
引用. M! p& ?6 U* e( Y8 B2 b3 m4 z
- A4 z7 I5 v9 }6 ]% q2 a. \
[root@USER-SERVER ~]# df# D8 n* X1 d! V/ u+ _% Y
Filesystem           1K-blocks      Used Available Use% Mounted on
+ d! k% X" b, b, C8 b( u/dev/sda2             20315844   2342008  16925196  13% /" q8 A4 F1 Q3 o1 j- r  @- t- o
/dev/sda5            129863460    192192 122968152   1% /www
9 }& [; F  Z8 ^+ p/dev/sda1               194442     17798    166605  10% /boot
* W4 W% T  i& X7 E1 p% m% ctmpfs                  1029680         0   1029680   0% /dev/shm8 r" U% `& E# O6 t& _! O
- i( t% V+ O; ]

; L  B2 E& N/ e1 m
, X! r# W8 d) S8 a无任何信息返回,说明/dev/sda5的ext4特征没有激活3 O+ j1 l0 A- _3 }) C. F# c+ e
引用5 Y" P) w$ d. a  m
9 ~# _( G- K" V5 `- R1 M9 z
[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent5 e' h; H4 o0 W: F8 s7 j0 ~$ V. M
[root@USER-SERVER ~]#
8 B: }) j: o2 b& L- J0 G0 N% n6 \2 c0 t; [2 X2 K; ~
+ m3 O9 ?4 j" j  T
$ h6 A5 Z/ P7 m6 C" Z
安装所需包
" d& K4 {1 \: G+ X3 n9 V源码安装:. x# Y4 o; X; f$ w8 z* Y
引用& v' E9 P  X- |+ k2 |# D

+ q2 F/ O9 R2 r# @. t# e3 `- Lwget http://ftp.kernel.org/pub/linux/ ... rogs-1.41.12.tar.gz
( M# u* G/ u( B- q( Btar zxvf e2fsprogs-1.41.12.tar.gz; cd e2fsprogs-1.41.12
. |6 ~2 o) ]7 z0 C# s, A! w, E9 R./configure
7 V6 ^6 |6 R1 m! E% {$ X; Nmake;make install' t& M. u2 {; s; O3 u* o; L3 O
8 o0 N/ w. B  H0 Z

6 F8 E* a! |! ?9 J( m( P( l( j/ h/ u* F* t
RPM安装:
4 [3 |. ^- o5 Y( l1 A7 D) t/ F引用) y  n+ Q# ~% g9 ~
5 O9 D0 k* M) d( S9 {
yum -y install e2fsprogs7 r; i+ @. K  A9 W. O
; \9 z; C. b* T- e9 h4 I4 H

2 B/ Y. k9 z1 L" G  j6 i( _% I8 J3 r* i: @! T  p
1 \5 a3 }4 v5 F( B6 r
二、制作引导镜像
$ [& e* F% H: b$ c查找并加载相应的模块,如只需ext4支持,可将--with=ext3去掉
' t2 n8 e7 h! l1 ?2 X6 a: V引用
  K/ @( W8 }( P. B; h. N4 S* ?$ \+ M( D0 T  w9 V
[root@USER-SERVER boot]# mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old
/ S1 z; f7 }% w% r1 Z( n* E; P8 ][root@USER-SERVER boot]# mkinitrd -v --with=ext4 --with=ext3 /boot/initrd-`uname -r`.img `uname -r`5 i" [; h) L0 F3 b- P+ U9 W
Creating initramfs
; n" A2 V* m1 ?  a; OLooking for deps of module ehci-hcd
( o  W& V$ U! D. ?; l, |" a$ nLooking for deps of module ohci-hcd" @2 P. y, P/ [0 [; u3 N
Looking for deps of module uhci-hcd
5 t5 L  H+ x  N- rLooking for deps of module ext3: jbd
8 a7 L+ F9 h4 S/ [* T: Y. uLooking for deps of module jbd% }6 n/ M  B7 R9 p; _
Found root device sda2 for LABEL=/
7 W5 e1 U% s1 O2 P5 z: wLooking for driver for device sda2: S7 B$ N5 B; K  H  R4 o( }
Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix
6 @# Q  ]/ _! z  r. _% ^Looking for deps of module scsi_mod9 c6 R: b7 q; x% Z5 k
Looking for deps of module sd_mod: scsi_mod 2 R+ `. m6 [- w+ v- @9 A
Looking for deps of module libata: scsi_mod + m: U# m3 J8 u/ h
Looking for deps of module ata_piix: scsi_mod libata 5 z/ e3 r' n* C& y9 ?7 ~& k
Looking for driver for device sda3( C$ Z* j) q% x9 k. o" Q
Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix " c* ?  H8 F2 [8 H2 ?6 h
Looking for deps of module usb-storage: scsi_mod " ~& e5 ^  s" p) B
Looking for deps of module ide-disk
- {* |  a; \' O' q# u9 HLooking for deps of module dm-mem-cache2 m$ p% W5 Z( x# s
Looking for deps of module dm-region_hash: dm-mod dm-log
% S: b' C* [2 b0 r9 y+ S/ SLooking for deps of module dm-mod2 P8 [0 a. |' n6 \/ j9 ]1 t* W- J
Looking for deps of module dm-log: dm-mod . W' M; X4 Q! y3 s- c5 h
Looking for deps of module dm-message
* A/ ^/ z9 |. F1 b' |Looking for deps of module dm-raid45: dm-message dm-mod dm-mem-cache dm-log dm-region_hash
# b' T- v% _" c9 kLooking for deps of module ext4: crc16 jbd2 5 ?( }' X' [7 L2 [( c
Looking for deps of module crc166 j! n/ R- o' {+ U- \
Looking for deps of module jbd2
( \: S; {8 k6 b6 NUsing 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.ko4 p7 C1 c0 F* }+ a
/sbin/nash -> /tmp/initrd.qO3680/bin/nash1 V8 X+ g+ m; l5 `
/sbin/insmod.static -> /tmp/initrd.qO3680/bin/insmod
9 N& X& F. i2 Y) V6 I3 [" Tcopy 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]
% E$ @7 h! r+ ccopy 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]7 r7 @6 n, O" O( b" ^, O+ X! D
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]
, h( `7 r2 S2 d3 ]( n& Acopy 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]
  U) W" v" Z" c) Gcopy 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]% K! c1 X0 y7 m( B, G; C5 I
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]
, O6 ]7 \' u5 F) Vcopy 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]1 j$ P: x( w$ ^4 g$ T. k% q1 ]
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]
" j9 F) F0 ?5 N. s; Ncopy 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]3 C9 e& _) q7 U( _! q
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], O$ o8 W" {# V5 n* }8 T" ?" t$ j" H
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]% J  w% X  C% n6 f
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]: ?) {$ y$ j6 O
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]
, j9 @+ M/ u( ncopy 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 G: {( k- s) v# K# \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]' \, a/ j" v8 ?3 |
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]' p) P8 j% H' H5 [2 T8 C# g
copy 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]
/ A( y& Y4 i: O2 {9 m& ?3 acopy 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]
4 F5 o7 j: G7 `3 w8 ncopy 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]
% l! M( v1 S/ c, B6 o: Z8 A/sbin/dmraid.static -> /tmp/initrd.qO3680/bin/dmraid/ ~9 s2 w+ b+ b3 z+ R& q
/sbin/kpartx.static -> /tmp/initrd.qO3680/bin/kpartx5 T7 r6 w/ F, l( o1 _, s: `
Adding module ehci-hcd! p: C: o5 K, \$ e  u
Adding module ohci-hcd# U" @( q' U; D4 D
Adding module uhci-hcd% t1 o0 Y0 z+ _' M
Adding module jbd3 R; O  t& H4 \2 N% G# r8 ]
Adding module ext3
* V# O0 N9 Z9 r6 t6 a. e8 e* U2 GAdding module scsi_mod4 S( L2 x" v3 j$ S. `
Adding module sd_mod
2 k" |# I' C8 [' j# Y1 D( P6 H$ PAdding module libata
# S* B8 a. [3 q# c" QAdding module ata_piix+ _+ L- E6 W9 ?+ `$ N
Adding module usb-storage
) g! o2 }: O% m- x1 @Adding module dm-mem-cache
" r9 }6 I1 g% x2 a2 OAdding module dm-mod' c4 `) D# f) U/ O1 C) r
Adding module dm-log
  Q8 {: E( N! t0 b# I4 u$ s$ F" KAdding module dm-region_hash
" F1 k, R& _! x) m/ N% sAdding module dm-message
6 O; g9 Q: {4 F/ C, V! Y- LAdding module dm-raid45! W/ T- n& M$ p# E$ o% R7 e
Adding module crc16
# A, q6 r5 P3 OAdding module jbd2' Q! }/ z' M" D, l; F
Adding module ext4
) f  b$ S7 p+ q
% f3 a9 N! @9 s) S
3 C6 c6 n1 P2 r
, J7 _  P: l( K: ~6 X% L

5 K6 q* J4 M3 a& R9 `$ x重启# J$ s% y2 ^( N4 U
[root@USER-SERVER ~]# reboot( D9 P. `" T2 B

& Q  t- D- u1 C8 C. S三、格式转换7 N' I! o4 T0 ], C
[root@USER-SERVER ~]# umount  /dev/sda5, i: u# b: P" N% F& ?1 q
[root@USER-SERVER ~]# tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sda5
5 c$ N/ w2 h7 J0 E  s5 W: P8 _5 |引用2 t  I- s* T' J9 h' F. y' ?
. {# i% ]7 `# E. o& n
tune2fs 1.41.12 (17-May-2010), Q* E$ T6 l+ k* ~+ A. [' ~- \
Please run e2fsck on the filesystem.
4 j. Q- J, [0 l; C
- }( K7 C+ c5 R$ |5 B0 D
, _% B. z0 ], G& g1 r$ }) T! t
, S" d7 E8 Q$ L

/ e' T1 I& l4 [* k9 u/ l' {2 L四、修改转换文件系统错误并挂载
; f# C: E1 {3 w# E8 ~[root@USER-SERVER ~]# e2fsck -fDC0 /dev/sda5 -y
2 ~* D. a0 U) ]; |( p& k[root@USER-SERVER ~]# mount -t ext4 /dev/sda5 /www# C1 T; _! F; e1 z0 ~& `

# ~# c# H1 Q2 b& ]6 p五、修改文件系统信息(重要!否则重启后会还原为ext3)
  M) K, w5 X/ e4 H$ d; h1 s$ v: ?7 y$ ~/ {# z
LABEL=/www              /www                    ext3    defaults        1 2# L9 _' H0 }' h" U- @) q8 w
修改为. k- x. M+ P3 `
LABEL=/www              /www                    ext4    defaults        1 2
. s& \) c3 J; d2 {+ I[root@USER-SERVER ~]# vi /etc/fstab% m8 X( T& [% L) @
引用
6 [9 F8 U3 U& P( h, m
8 f+ G) f9 N3 k" u, `! Poot@USER-SERVER ~]# vi /etc/fstab1 ~6 H$ v! _# B) R6 l2 v/ `! ^, D
LABEL=/                 /                       ext3    defaults        1 18 e  _2 f- F' E4 r& A7 l
LABEL=/www              /www                    ext4    defaults        1 2/ g" u- v. k: k+ J8 y
LABEL=/boot             /boot                   ext3    defaults        1 2
% k0 o% i1 f+ @tmpfs                   /dev/shm                tmpfs   defaults        0 0/ h; o  B) I/ ?
devpts                  /dev/pts                devpts  gid=5,mode=620  0 03 c( L& O7 p+ M+ o" D4 y
sysfs                   /sys                    sysfs   defaults        0 0" r! Y# r# {1 o% V' `
proc                    /proc                   proc    defaults        0 01 E& v" @2 ?+ a
LABEL=SWAP-sda3         swap                    swap    defaults        0 0
: z4 i* w* `5 j# ^
6 P! u0 n% _/ e1 j

' Y5 {1 ~# q5 H$ R0 W  a2 B; e5 e% f* w. T) V  h- s
/ o2 ?$ _  L9 G( F7 B
六、升级后状态  E0 r7 e6 G1 s( w2 ^% m
ext4的特征全激活了:)
* t: X9 |/ ?5 E, H  u( Y#[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent, S+ P/ E' j+ _4 X
引用6 W" D& x3 Z" z! x* ]4 e! ~2 a* m  X
* I+ `+ P* E. T* d; z, f1 v
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
( x, v! j7 p5 y( T8 j+ ?* c4 f1 q9 Q) T
. H" e% T5 x  m% D9 w0 d9 p

+ v- b" n$ v% R1 k[root@USER-SERVER ~]# df -T2 s5 i  Y3 `' D2 H; }  n- l
引用1 y! J7 g6 V, J- z, S6 x

+ N  v, k5 q0 ^) b+ a8 B7 TFilesystem    Type   1K-blocks      Used Available Use% Mounted on
) U7 z) r1 _: h+ W6 L% u9 ^/dev/sda2     ext3    20315844   2310764  16956440  12% /( d( T/ \% N# Y$ A$ O0 O6 i6 A
/dev/sda1     ext3      194442     20563    163840  12% /boot( }- o! M; a( d& e% ~; x
tmpfs        tmpfs     1029672         0   1029672   0% /dev/shm
! a$ R9 V" n: G6 p. y* \/dev/sda5     ext4   129863460    192192 122968152   1% /www# y2 j: z& I, a# p  ~6 V9 A- ]2 \4 `

. U! D4 `/ v% b, B; n' D, ?( {( f+ s- X
 楼主| 发表于 2017-1-12 22:50:32 | 显示全部楼层
Force fsck on boot using
  I  O: |! |1 X# Y5 P5 j1 D
+ b( q7 H  I# L* a$ {" w# \/forcefsckBy creating) i  u; b: g! N: u7 k) w
6 n. G/ w7 o. `' d' q6 o) z
/forcefsck file you will force the Linux system (or rc scripts) to perform a full file system+ F/ {: w. L- ?
/ ]/ p& l9 N7 E2 _; \
check. First, login as the root user:$ su -OR+ i+ e3 L, P  y& C, N" v( a
& D5 q) m# D6 ]3 a8 A
$ sudo -s
0 w; S4 {5 a& S) v# r' C& j/ |' i/ X; ?2 U( b
Change directory to root (/) & m. @7 a1 z, V* u$ ^! }
7 k' f" s- `' w6 u5 m2 R
directory [optional]:# \! t# x4 B0 E0 ]
# \; `0 K3 ]! u/ b  D+ Y' T' m: C; Z
# cd /
! U) @; T/ d7 }" w" W. E' R5 l" e3 h% g' \' s( z  R
Create a file called forcefsck:
6 h( X, I$ L: B' F  d8 B! S
4 e' t. |, y+ s9 I8 S5 {# touch /forcefsck) t" |$ S) i# X! Q4 G6 j

' A. }& r' e5 B0 vNow, reboot the system:2 H9 _. Y" @# X' r: m. z3 F( ]
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:34 , Processed in 0.109183 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表