找回密码
 注册
查看: 4382|回复: 1

ext3升ext4

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2017-1-3 17:12:40 | 显示全部楼层 |阅读模式
  一台文件存储服务器单目录下子目录已经突破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* L
5 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 y
3 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

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2017-1-12 22:50:32 | 显示全部楼层
Force fsck on boot using
4 M0 W" G3 o4 L8 [
( ^7 `3 z( _4 l( A3 M# [/forcefsckBy creating
4 V6 B5 _3 |$ A9 L
& C, B6 H# f3 N) l" \/ n /forcefsck file you will force the Linux system (or rc scripts) to perform a full file system
6 ]6 Y% S% p! B
  l: ]) \' O9 U8 ~3 `/ j check. First, login as the root user:$ su -OR6 W. m% N7 g+ x9 Y, C4 C

3 h8 v3 J% y4 m$ N" X# J: y$ sudo -s0 `7 s+ O3 t3 Y/ V' _
. j' @! |8 L9 K6 U$ B1 ]/ {
Change directory to root (/) 9 W  h! D/ z3 p; v
$ d: d8 P% F- `0 {1 a
directory [optional]:6 h! @5 v9 I, @+ M6 `
9 K$ d1 D7 \4 u& E1 [' D# e
# cd /
1 d! }( c! |  s# e
. ]  M% P6 }# Q& T  ?Create a file called forcefsck:
# C- c' u) y( \& G' Q1 v
- C' L7 L0 S' f3 v0 B# touch /forcefsck
" G0 a# }$ i8 ~/ x& M" e$ @+ m( F4 c+ H6 X2 `  H9 |0 t$ }
Now, reboot the system:7 X: M: `. A% S% z5 i
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 04:23 , Processed in 0.024591 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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