找回密码
 注册
查看: 4381|回复: 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步骤供大家参考。
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

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2017-1-12 22:50:32 | 显示全部楼层
Force fsck on boot using ' O- G7 ~+ y9 A; d

8 ^5 ?3 d, {0 Z8 Z/forcefsckBy creating5 [' h  u% N  [
8 D& e! r' T* c4 \( {
/forcefsck file you will force the Linux system (or rc scripts) to perform a full file system! k7 ^) p' F8 b6 j/ J3 K

, S  q6 ~  U4 ]$ ? check. First, login as the root user:$ su -OR# e6 T. a* ~' U3 {. R- E6 n" j
5 O/ \! h' C2 j" [6 C8 }  `& k) W, d
$ sudo -s; [. K& l* d) L5 \" C, f
4 s( y. o0 _  }& ~; I
Change directory to root (/)
1 `; x, y, p# {9 K& @
( t$ Y5 z; V7 B3 D5 @! A( Odirectory [optional]:$ w& {) Z; j( I1 G/ @

6 \; V" l" p" Y8 K8 p$ y# cd /
* o/ q6 D8 D+ P. ?* x1 K5 z8 c! I2 p  R
Create a file called forcefsck:# W5 I( x3 x+ ^$ c
2 q: q& a% K8 ^8 b# T- u
# touch /forcefsck# e- ?8 ]0 o, B; z* R' W
. z2 _  ]/ M6 y& C. d
Now, reboot the system:
2 r; e4 k% f7 t) _4 C' U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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