找回密码
 注册
查看: 4380|回复: 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步骤供大家参考。
  ]  y- J7 a( u* ^( ^+ n0 Z8 C  F7 o. q) W% b
一、升级前状态9 P8 l/ o3 K: j8 }! V
引用; c/ F2 ?9 l" `5 T6 l

; ?8 N- q1 ~: m% X# X[root@USER-SERVER ~]# df
) D- I8 f# Y" w1 R5 y- a0 ~Filesystem           1K-blocks      Used Available Use% Mounted on' c' F7 ~3 N& e; M/ w  ~
/dev/sda2             20315844   2342008  16925196  13% /, U: u- C7 F: f3 u
/dev/sda5            129863460    192192 122968152   1% /www$ C. {0 w; G) ?/ t8 n$ N
/dev/sda1               194442     17798    166605  10% /boot
6 E* a. l; e/ \8 htmpfs                  1029680         0   1029680   0% /dev/shm+ w: g2 h1 S* J+ x5 j0 T

2 W# h9 T- X% E4 @9 j) k1 W+ _

! J. |: W' T" n& P9 Y# E2 Q! v! h4 g/ [
无任何信息返回,说明/dev/sda5的ext4特征没有激活7 g# t; s) {6 A4 W8 Y
引用" J8 P9 |  R; [% ~5 m# H: M
4 m; `% d% J  g7 L$ }
[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent" P8 f  c! T* A% Z& D3 g! I
[root@USER-SERVER ~]# & p7 u4 [9 {, y) o2 F
" S$ K- I  m. W
' `! S2 _$ h0 u5 `1 p3 z

0 U# k& m9 H* _  `安装所需包3 I4 N3 Q- S/ ]' j% F+ v6 r
源码安装:
1 J0 C4 Q! f- I5 z引用3 T8 ]" u6 \7 w' J' F

  s+ K) @5 x/ _1 `- @wget http://ftp.kernel.org/pub/linux/ ... rogs-1.41.12.tar.gz: H, O8 H) N) s/ L7 i
tar zxvf e2fsprogs-1.41.12.tar.gz; cd e2fsprogs-1.41.12, G+ v$ t. b% U
./configure- v0 ~! o9 o* D! d$ m" n
make;make install; r, y8 Y, Z1 E% c) q

' n/ h2 v3 X6 Z# k$ D2 n
, h6 n* p+ x8 ]

5 y6 Q6 o) Y; n* L) {RPM安装:
+ s( `. f8 \& t& n9 V1 o引用2 }! r) u# v' \- t4 R- p

1 F% j* o7 i+ syum -y install e2fsprogs
2 {  ]$ x) r4 f+ h9 s& x$ x1 s' b+ X! v- ]) F" w9 H
4 I1 N: i% N3 p# M! Q2 [7 E* a& s8 ?
; a& }, J+ x8 e2 w2 O
- ~1 E5 U1 x% p4 V3 g0 U. b& X* m( h
二、制作引导镜像
+ f3 ^# b& d8 \' ^: w/ `3 W4 w查找并加载相应的模块,如只需ext4支持,可将--with=ext3去掉% ]# {' L  T  E! Q  u2 I
引用
9 r6 }' u: m( y5 J! P6 y+ F2 U9 ~; h) M4 G, \" ~
[root@USER-SERVER boot]# mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old  ]4 ~! Q+ x- Y9 L, D
[root@USER-SERVER boot]# mkinitrd -v --with=ext4 --with=ext3 /boot/initrd-`uname -r`.img `uname -r`
2 V5 I" v6 o# PCreating initramfs
1 O. Y7 a' J; V% ?1 ~$ F, t6 wLooking for deps of module ehci-hcd
0 j8 h9 L: `9 _+ x) n, S7 FLooking for deps of module ohci-hcd5 |* F% Z, R" u! {2 `' D
Looking for deps of module uhci-hcd. X5 a) W$ U  T
Looking for deps of module ext3: jbd % }+ }+ r& i# T$ {! s
Looking for deps of module jbd: Y0 ~3 }! ?* a9 x
Found root device sda2 for LABEL=/
# j+ l/ [2 z- _. YLooking for driver for device sda27 g! z; Z9 q! @( e+ u7 \
Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix
0 z* @" P  l# ^0 |- nLooking for deps of module scsi_mod4 c! c9 L' s/ d* F8 l# c
Looking for deps of module sd_mod: scsi_mod ) f. W& A& r9 S4 h, l( F1 k
Looking for deps of module libata: scsi_mod ) E% A4 U5 ~1 q* D; \5 p
Looking for deps of module ata_piix: scsi_mod libata
# M. z2 E; [. v) Z9 S9 mLooking for driver for device sda3
3 ?' B3 F+ f7 f3 j* B2 }* j7 A+ l  ALooking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix
' _9 _4 Y3 o3 h# eLooking for deps of module usb-storage: scsi_mod ( e( {, B7 |1 R$ x' D  \
Looking for deps of module ide-disk
: g0 T( f! Q4 D. [: G. C1 Z- ^Looking for deps of module dm-mem-cache) t* u* C+ \, M5 n! i4 @
Looking for deps of module dm-region_hash: dm-mod dm-log % s5 G" R- f' j% D; S5 a2 i
Looking for deps of module dm-mod2 }  n2 f. I4 [) i* _5 P
Looking for deps of module dm-log: dm-mod
% {& O. w7 B/ nLooking for deps of module dm-message! a; o) |2 t9 f% [- [, m5 t
Looking for deps of module dm-raid45: dm-message dm-mod dm-mem-cache dm-log dm-region_hash
+ e: v" ^! A, o7 DLooking for deps of module ext4: crc16 jbd2
- j# B1 k8 N( zLooking for deps of module crc16% L8 g8 V6 _3 R; E; Q" T
Looking for deps of module jbd27 d7 h6 N! c* u* G
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
0 d& c! r, B! g9 i# e4 d4 l/sbin/nash -> /tmp/initrd.qO3680/bin/nash! V( c& o0 ~& A: d9 v8 |
/sbin/insmod.static -> /tmp/initrd.qO3680/bin/insmod
0 f9 Y0 `( F# i6 L9 p( o; ]; Ycopy 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]
7 D* ], ^4 W9 {& G% Z( z2 F) g8 jcopy 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]6 ?0 b4 A7 `; o2 m* u0 S" 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]  s) w. B: h& \, n
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]5 X3 K3 h5 C9 X  P8 b
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]  o2 y: F# \- p/ |
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]
8 V  d. K: ~/ l* jcopy 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]
% T6 X4 Y+ P, u$ Ucopy 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]( T$ T0 V9 ?# j/ K" U* u
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]2 ]9 I1 q- J. d7 |* I, r/ }6 J
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]& k5 {( W, J7 O* X, q) b* r) P
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]
& @1 k) s1 t! L. f. mcopy 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]
) v- Y* b6 _9 F! wcopy 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]
! W+ S7 Q  B/ f- N6 A; I, p9 tcopy 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]* _9 q4 p( |2 H  t5 D6 X, k# Y0 `) |
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]
$ p2 a* o1 [1 l. B* f$ T* O: Ncopy 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]
" k) q% V5 d1 ^8 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]. {2 U; U7 J9 ?- f5 o$ |8 Z+ t( [
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]4 j8 T7 l% ^7 [8 k: T
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]
0 Y8 d7 J  y% q& G9 S/sbin/dmraid.static -> /tmp/initrd.qO3680/bin/dmraid  Q4 ~, M* w% Q* |: r7 i: D. b7 n
/sbin/kpartx.static -> /tmp/initrd.qO3680/bin/kpartx
# x  g# h" w' |# cAdding module ehci-hcd
0 }- B$ u; N" k$ ^' ^9 bAdding module ohci-hcd7 q  a5 O1 h7 S" E! W
Adding module uhci-hcd7 P8 @9 p6 T  q( x7 p+ A
Adding module jbd
5 l/ a$ E, A# I) s# rAdding module ext3( S5 ]3 S( l3 s$ V: f
Adding module scsi_mod6 N6 \! ?6 d1 y- [3 H3 s
Adding module sd_mod- U1 L+ z. c9 i: C: }& z
Adding module libata3 W; R7 R, n  F* c4 D. B4 a4 s' H
Adding module ata_piix6 l, n% h3 e- M. o4 k" T
Adding module usb-storage
' b4 p2 b6 n) M2 g' q4 B& z0 o, `Adding module dm-mem-cache; O* C9 V; ?% x- D% g% `
Adding module dm-mod0 q! S/ P8 w' @& Y6 O/ I, T
Adding module dm-log
* [5 C1 ?2 q% \( y6 WAdding module dm-region_hash% X4 q/ X6 r" y# O
Adding module dm-message
( P  X; b' [, [7 `& VAdding module dm-raid456 B: `6 f1 E; ]. _- |, f% h
Adding module crc16! s; Z+ ]- W6 J5 F  \
Adding module jbd2' O7 f) \2 ~3 g& S7 s6 v0 g1 h
Adding module ext4
2 k) @- R& q9 D1 n" @# L9 ]4 N
3 R7 I, N0 P/ l- F! }
* I  F1 f  L4 _$ O

8 c! i  W& E0 g, J4 I: x* p
3 Z% O6 E- p$ y; ?! H1 T重启
& b$ |! Q/ K. }3 |3 I[root@USER-SERVER ~]# reboot  U! Y& v- ^' ^( J' Y

& V  |& `, N& ^: O  ~/ B" F三、格式转换3 c: R# Y! J0 g2 K
[root@USER-SERVER ~]# umount  /dev/sda5* Q1 b3 t9 `- B
[root@USER-SERVER ~]# tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sda5
+ Q0 d  B0 b& ~! U引用, k: q3 s. O0 {% ^: C

( W, M3 r+ \1 g0 K5 E; @tune2fs 1.41.12 (17-May-2010)7 X& S) s' c; u' N; b" E* w
Please run e2fsck on the filesystem.
2 o9 ~, r; `6 I: \6 `& F& B9 W, c3 }* O- g
! }* D; H) R: |# G7 @
! S, ?* `! i- ]4 L! L- M

% ^9 b7 j0 A0 i四、修改转换文件系统错误并挂载, `3 m4 x0 [9 k6 L( I
[root@USER-SERVER ~]# e2fsck -fDC0 /dev/sda5 -y! S8 O2 V' U8 I# _4 s: L$ T$ H& m
[root@USER-SERVER ~]# mount -t ext4 /dev/sda5 /www
2 E) J* a" c( y$ Z4 u/ V/ a9 j# l- [9 @' }# t7 |' D
五、修改文件系统信息(重要!否则重启后会还原为ext3)
; z/ ?# K" [1 Z. u2 P! X; N" L, q* B5 \  I! N4 L
LABEL=/www              /www                    ext3    defaults        1 24 X) ^* |( |% r7 F1 L, |) T
修改为
" v9 m- k, L8 P7 a$ v; [LABEL=/www              /www                    ext4    defaults        1 2
3 j+ E9 _9 _* N7 I[root@USER-SERVER ~]# vi /etc/fstab8 g- N# A' ?; I
引用
. K' v7 N2 Z# _: w5 C  P3 K
: l' U  [* h3 E2 T( u3 C' E3 Z" R: Hoot@USER-SERVER ~]# vi /etc/fstab
5 L' k& r2 z$ ^) [/ I, LLABEL=/                 /                       ext3    defaults        1 1  A3 \& ]2 O$ C$ g: c$ `, E
LABEL=/www              /www                    ext4    defaults        1 2
4 r* D9 x+ a& b: L- F/ j! nLABEL=/boot             /boot                   ext3    defaults        1 2
  {9 b, T$ d* A" D6 _tmpfs                   /dev/shm                tmpfs   defaults        0 0
, g4 r. f$ Y, Ldevpts                  /dev/pts                devpts  gid=5,mode=620  0 0
: ~  A/ A' U$ _, i  E! f3 Z% vsysfs                   /sys                    sysfs   defaults        0 0
7 r. o3 l8 x" L- ^& u% s; uproc                    /proc                   proc    defaults        0 09 p# f" ?) x5 U) u+ V" v
LABEL=SWAP-sda3         swap                    swap    defaults        0 0. s" a1 Q/ B; r; H& r
1 h7 Z, V4 `. ], m8 w

9 i, F8 z1 q% ?" H
* S$ @7 Y9 _. k' _- D
3 T% p; I3 \; l$ J六、升级后状态
  Q, t  D7 a! [& I- ^ext4的特征全激活了:)( b  l8 K7 K$ g8 ]+ I
#[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent
  U1 h( q' w, W, ~0 r( V5 m. |! f) U; Q引用# y" @; f. m4 M/ R; Z
4 Q0 _2 j* X8 S4 Y
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& @$ n/ u5 p5 A2 J

  j9 K/ ]7 b2 Z+ e3 M" l+ E

) L# u) v9 i. l. e1 S; W+ x( A+ E, J" f' v3 C4 B. N1 W
[root@USER-SERVER ~]# df -T2 ]) c% ]* Q$ j& c
引用
/ C) Y7 q9 K9 D/ \& O0 r$ i
1 ^# C$ C# n% B# {" c8 dFilesystem    Type   1K-blocks      Used Available Use% Mounted on
/ I+ T7 F& d) p$ ?& b* Z/dev/sda2     ext3    20315844   2310764  16956440  12% /
% p: F  ]: M+ e; p! Z% U( D4 ^- o5 H/dev/sda1     ext3      194442     20563    163840  12% /boot2 B% \  x) L: t% v& _% Y! ?
tmpfs        tmpfs     1029672         0   1029672   0% /dev/shm
/ U2 k1 ]7 z7 H+ Y; {+ V  p- X/dev/sda5     ext4   129863460    192192 122968152   1% /www
7 @, s7 [& l/ C% i& l. {# W) d

$ V* a; Z1 L8 U/ h$ Y. S# {! h% q# C9 e" @4 P' v# A

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2017-1-12 22:50:32 | 显示全部楼层
Force fsck on boot using
7 P0 x5 M5 g% U% S( _; ?2 E. O# M/ a0 p: G; r# D
/forcefsckBy creating
& h! N5 x, I( f# A
9 g- M+ _7 Z$ _/ A3 G' E1 X /forcefsck file you will force the Linux system (or rc scripts) to perform a full file system9 P( Z) _8 Z: U, V9 G) R2 B
  Y" L$ Q# n, a& O) {: I9 K! J
check. First, login as the root user:$ su -OR
& i; I7 k7 p9 V/ F6 ^% Q3 U: `% Z* Z! y: ^; I2 J( {
$ sudo -s
7 G( y. R# {$ c$ U/ @/ v+ q3 Q" P0 J, A: C: K" Q
Change directory to root (/)
' {8 H' J* Z2 V
" x, T2 [3 c0 b) b! o2 _# ]directory [optional]:4 [0 Z9 T7 F$ P4 o+ @

6 {2 A+ Z2 W- l$ d# cd /
: n+ h8 f) U: ^( }$ I- _: r- U: J2 O% j* `
Create a file called forcefsck:
) L. w- Y( b& ~! w$ Z/ o* H) p* J; o: w# L
# touch /forcefsck: n/ I, l# r% }, V" j! }

% }; Q# `7 Q- E4 q0 gNow, reboot the system:
% w" h2 A1 \) Q% _! x# O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:26 , Processed in 2.116054 second(s), 25 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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