centos 5.4无痛之ext3升ext4

    技术2022-05-20  54

    一台文件存储服务器单目录下子目录已经突破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步骤供大家参考。

    一、升级前状态

    [root@USER-SERVER ~]# dfFilesystem           1K-blocks      Used Available Use% Mounted on/dev/sda2             20315844   2342008  16925196  13% //dev/sda5            129863460    192192 122968152   1% /www/dev/sda1               194442     17798    166605  10% /boottmpfs                  1029680         0   1029680   0% /dev/shm

     

    无任何信息返回,说明/dev/sda5的ext4特征没有激活

     

    [root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent[root@USER-SERVER ~]# 

     

    安装所需包源码安装:

    wget http://ftp.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/e2fsprogs-1.41.14.tar.gztar zxvf e2fsprogs-1.41.14.tar.gz; cd e2fsprogs-1.41.14./configuremake;make install

     

    二、制作引导镜像查找并加载相应的模块,如只需ext4支持,可将--with=ext3去掉

     

    [root@USER-SERVER boot]# mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old[root@USER-SERVER boot]# mkinitrd -v --with=ext4 --with=ext3 /boot/initrd-`uname -r`.img `uname -r`Creating initramfsLooking for deps of module ehci-hcdLooking for deps of module ohci-hcdLooking for deps of module uhci-hcdLooking for deps of module ext3: jbd Looking for deps of module jbdFound root device sda2 for LABEL=/Looking for driver for device sda2Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix Looking for deps of module scsi_modLooking for deps of module sd_mod: scsi_mod Looking for deps of module libata: scsi_mod Looking for deps of module ata_piix: scsi_mod libata Looking for driver for device sda3Looking for deps of module pci:v00008086d00002680sv000017AAsd00006B7Cbc01sc01i8f: scsi_mod libata ata_piix Looking for deps of module usb-storage: scsi_mod Looking for deps of module ide-diskLooking for deps of module dm-mem-cacheLooking for deps of module dm-region_hash: dm-mod dm-log Looking for deps of module dm-modLooking for deps of module dm-log: dm-mod Looking for deps of module dm-messageLooking for deps of module dm-raid45: dm-message dm-mod dm-mem-cache dm-log dm-region_hash Looking for deps of module ext4: crc16 jbd2 Looking for deps of module crc16Looking for deps of module jbd2Using 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/sbin/nash -> /tmp/initrd.qO3680/bin/nash/sbin/insmod.static -> /tmp/initrd.qO3680/bin/insmodcopy 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]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]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]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]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]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]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]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]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]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]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]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]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]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]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]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]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]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]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]/sbin/dmraid.static -> /tmp/initrd.qO3680/bin/dmraid/sbin/kpartx.static -> /tmp/initrd.qO3680/bin/kpartxAdding module ehci-hcdAdding module ohci-hcdAdding module uhci-hcdAdding module jbdAdding module ext3Adding module scsi_modAdding module sd_modAdding module libataAdding module ata_piixAdding module usb-storageAdding module dm-mem-cacheAdding module dm-modAdding module dm-logAdding module dm-region_hashAdding module dm-messageAdding module dm-raid45Adding module crc16Adding module jbd2Adding module ext4

     

    重启[root@USER-SERVER ~]# reboot三、格式转换[root@USER-SERVER ~]# umount  /dev/sda5[root@USER-SERVER ~]# tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/sda5

     

    tune2fs 1.41.12 (17-May-2010)Please run e2fsck on the filesystem.

     

    四、修改转换文件系统错误并挂载[root@USER-SERVER ~]# e2fsck -fDC0 /dev/sda5 -y[root@USER-SERVER ~]# mount -t ext4 /dev/sda5 /www五、修改文件系统信息(重要!否则重启后会还原为ext3)将LABEL=/www              /www                    ext3    defaults        1 2修改为LABEL=/www              /www                    ext4    defaults        1 2[root@USER-SERVER ~]# vi /etc/fstab

     

    root@USER-SERVER ~]# vi /etc/fstabLABEL=/                 /                       ext3    defaults        1 1LABEL=/www              /www                    ext4    defaults        1 2LABEL=/boot             /boot                   ext3    defaults        1 2tmpfs                   /dev/shm                tmpfs   defaults        0 0devpts                  /dev/pts                devpts  gid=5,mode=620  0 0sysfs                   /sys                    sysfs   defaults        0 0proc                    /proc                   proc    defaults        0 0LABEL=SWAP-sda3         swap                    swap    defaults        0 0

     

    六、升级后状态ext4的特征全激活了:)#[root@USER-SERVER ~]# tune2fs -l /dev/sda5 | grep extent

     

    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

     

    [root@USER-SERVER ~]# df -T

    Filesystem    Type   1K-blocks      Used Available Use% Mounted on/dev/sda2     ext3    20315844   2310764  16956440  12% //dev/sda1     ext3      194442     20563    163840  12% /boottmpfs        tmpfs     1029672         0   1029672   0% /dev/shm/dev/sda5     ext4   129863460    192192 122968152   1% /www

     

    参考文献http://fedorasolved.org/Members/rasker/converting-an-ext3-root-partition-to-ext4-in-fedora-10http://kernelnewbies.org/Ext4#head-3891522e0601162aab24c73c1f148a1e28c6a9d4

     

     

    转载:http://blog.liuts.com/post/211/


    最新回复(0)