第27卷 第10期2003年10月 信 息 技 术I NFORMATI ON TECH NO LOGYVO L.27 NO.10Oct.2003从ext2到ext3文件系统转换的实现王文娟,王传昌(湛江师范学院计算机系,湛江524048)摘 要:日志文件系统ext3具有ext2所不具备的特点和优势,顺利完成从ext2到ext3的转换,是实现ext3文件系统优势之必须。
关键词:ext2;ext3;日志文件系统;转换中图分类号:TP316.81 文献标识码:B 文章编号:1009-2552(2003)10-0067-03Migration from ext2to ext3file systemWANG Wen2juan,WANG Chuan2chang(The Dep artment of Computer and Science,Zh anjiang T eachers’College,Zh anjiang524048,China) Abstract:Ext3is a journal file system for Linux and has s ome advantages that ext2has not.In order to mi2 grate from ext2to ext3file system success fully,this paper introduces s ome methods.K ey w ords:ext2;ext3;journal file system;migration0 引言ext3文件系统是ext2文件系统的更高一级版本,它有一个其它同类日志文件系统所不具备的独特优势———完全兼容ext2文件。
ext3能充分利用ext2中已有的操作和应用,而且比ext2更有效,更易用。
其在ext2的基础上加入了记录元数据的日志功能,是一个支持异步的日志。
Red Hat7.2和SuSE 7.3已率先发行了包含ext3文件系统的Linux,通过使用Linux最新安装版本和e2fsprogs Linux公用程序,可将ext3文件系统编译到系统的内核中。
这里介绍的是ext2到ext3系统转换的一些基本方法,并据此为用户提供修正的参考建议。
1 ext3日志文件系统1.1 日志文件系统日志文件系统的设计思想是跟踪文件系统的变化,而不是文件系统的内容。
它用独立的日志文件跟踪磁盘内容的变化,就像关系型数据库(RDBMS),因而比传统的文件系统安全。
日志文件系统可以用事务处理的方式,提交或撤消文件系统的变化。
当系统非正常关闭,处于写入磁盘的过程中的文件系统即被非正常卸载,文件系统就会处于不一致的状态。
为了尽量减少文件系统的不一致性,缩短操作系统的启动时间,文件系统需追踪引起系统改变的记录,这些记录存放在与文件系统相分离的地方,通常我们称为“日志”。
一旦这些日志记录被安全地写入,日志文件系统就可以将它们应用到文件系统中,清除引起系统发生改变的记录,并将它们组成一个引起文件系统改变的集。
日志文件的主要作用就是可以最大程度地保证文件系统的一致性。
通常文件系统存放日志记录,当重新引导计算机启动时,安装程序为保证文件系统的一致性会检测日志记录,并将它安全地、完整地应用到文件系统中。
在大多数情况下,一般操作系统并不检测文件系统的一致性,使用日志文件系统的计算机则会在系统引导后,立即使用日志检测,降低数据丢失的可能性。
1.2 ext3ext3文件系统是日志文件,且100%地兼容ext2收稿日期:2003-04-07资助项目:湛江师范学院重点科研项目资助(项目编号L0206)。
作者简介:王文娟(1962-),讲师,硕士,主要研究方向为操作系统及网络管理。
—76—文件系统,其与ext2文件系统的主要区别是它的快速更新文件存储。
计算机开始从磁盘上读取或写入数据就必须保证文件系统中文件与目录的一致性,所有日志文件中的数据均以数据块的形式存放在存储设备中,当磁盘分区时文件系统即被创建,按照文件形式、目录形式支持存储数据,组织数据的使用。
ext3和ext2是由来自多家厂商的开发人员联合开发的,它的开发不依赖于任何个人或组织。
它提供并使用了一个通用日志层generic journaling layer (jbd),该层可以在其它环境中使用,既可在文件系统中使用,还能够应用到其它设备中,目前Linux开始支持的NVRAM设备ext3就能够支持。
当由于软件或硬件错误导致文件系统崩溃时,文件修复程序e2fsck在修复数据方面是非常成功的,ext3使用了和e2fsck相同的代码来修复崩溃的文件系统,因此在出现数据崩溃时,ext3具有和ext2同样的防止数据丢失的优点。
值得指出的是,上述这些优点不是ext3所独有的,其中的大部分别的文件系统也具有,但只有ext3才尽数具备,这也正是ext3的综合优势。
ext3称得上是目前最能满足用户需要的日志文件系统。
2 从ext2到ext3的转换2.1 转换从ext2文件系统到ext3文件系统的转换,一般的方法是通过在已有的ext2文件系统上添加日志文件。
假设要把原Πback(ΠdevΠhda5)从ext2文件系统转换成ext3文件系统,通常具体步骤如下(建议在转换系统以前,最好备份文件系统):3卸载Πback目录执行命令:um ountΠback3转换所使用的命令格式如下:ΠsbinΠtune2fs-j<partition-name>例1:要将分区ΠdevΠhda5的ext2系统转换成ext3文件系统,所使用的命令如下:ΠsbinΠtune2fs-jΠdevΠhda5其中tune2fs是转换命令,-j选项表示是在已存在的ext2文件系统上建立的ext3日志。
3安装Πback目录执行命令:m ount-text3ΠdevΠhda5Πback执行命令后系统将创建一个日志文件,如果文件系统在转换的过程已经被装载(m ount),那么在根目录下会出现“.journal”文件,否则是没有这个日志文件的。
3修改ΠetcΠfstab文件例2:在将ext2日志文件系统转换成ext3日志文件系统之后,立即更新ΠetcΠfstab引导记录,可以使用“auto”选项来进行。
转换前情况:ΠdevΠhda5Πopt ext2defaults12转换后情况:ΠdevΠhda5Πopt ext3defaults10其中Linux的最后一个字段ΠetcΠfstab是为引导系统而设置的,并由“fsck(file system check)”程序检验文件系统的一致性,同时把ΠetcΠfstab文件中的ext2修改为ext3。
当使用ext3文件系统时,能将这个字段设定为“0”,意味着fsck程序将不检查文件系统的一致性,文件系统的一致性将由后面的日志提供保证。
如果要转换的是引导系统,必须使用initrd 启动系统,可运行mkinitrd并参照其手册描述步骤,同时确认LI LO或G RUB配置中是否装载了initrd。
如果转换ext3没有成功,系统仍然能启动,但是引导系统会以ext2形式装载,而不是ext3,可以使用命令catΠprocΠm ount来确认这一点。
命令:m ount显示:ΠdevΠhda5onΠtesttypeext3(rw)表示系统成功地从ext2转换到ext3。
2.2 新建升级一个已有的ext2,使用tune2fs即可,对于需要创建新ext3文件系统的情况下,要使用安装的e2fsprogs软件包中的mke2fs命令加-f参数就可以创建新的ext3文件系统,假设打算把ΠdevΠhda5创建为ext3文件系统,具体步骤如下:3创建执行命令:mke2fs-jΠdevΠhda53安装Πback目录执行命令:m ount-text3ΠdevΠhda5Πback3修改ΠetcΠfstab文件新的e2fsprogs中的e2fsck支持ext3,当一个ext3文件系统被破坏时,先卸载该设备,再用e2fsck修复。
执行命令:um ountΠback e2fsck-fyΠdevΠhda5在系统重新启动时,一般都要用日志文件系统检查,这需要一定的时间,用ext3可以避免重启动时长时间的文件系统检查,如用下面的命令:tune2fs-i0-c0ΠdevΠhda4来关闭文件系统检查—86—如果你要从ext3返回ext2,方法也非常简单,即卸载ext3重新安装ext2,命令如下:m ount-text2ΠdevΠhda5Πtest在启动中安装ext2,要在etcΠfstab文件中重新设置才行。
2.3 修正ext3也有缺点,其中最大的缺点是没有现代文件系统所具有的能提高文件数据处理速度和解压的高性能。
Red Hat Linux8.0.94发行注记上也指出ext3的一些问题,如在Red Hat Linux新安装在新的ext3文件系统上启用了试验性的HT ree功能,这会导致偶尔的文件系统损坏,因此HT ree功能已被禁用。
如果在beta版本上创建了任何打算永久保留的文件系统,我们推荐从每个文件系统里删除HT ree索引功能的所有痕迹,方法是首先使用以下命令:tune2fs-O^dir-indexΠdevΠ<filesystemdevice>然后可以使用下面的命令来从目录中删除索引: e2fsck-fDΠdevΠ<filesystemdevice>3 结束语Linux操作系统是操作系统家族中最优秀成员,是近年来用户数量增长最快的系统软件,ext2文件系统作为所有Linux发行版本的基本文件系统,负责将对文件的管理、存取、共享和保护等手段提供给操作系统和用户,不仅方便安全,还有效地提高了系统资源的利用率。
在RedHatLinux7.2中,RedHat首次采用支持日志文件系统ext3,ext3作为第一个正式支持的日志文件系统,无疑是全面兼容ext2的最新高性能文件系统,其兼容性包括在ext2文件系统上使用的所有其他应用,从ext2到ext3的升级简便,而且它改进了Linux系统的性能,解决系统中存在的不一致性的问题。
ext3文件系统是一个优秀的,极具发展前景文件系统。
参考文献:[1] Journaling File Systems Linux M agazine[J]San Francisco October2002.[2] Bill Ball,Red Hat Linux8Unleashed Publisher:Sams2002.12.[3] M ichael K.Johns on,Red Hat’s ext3white paper http:ΠΠw w w.zip.com.auΠ~akpmΠlinuxΠext3Π.[4] Rajesh F owkar,EXT3File Systemm ini-HOWT O,http:ΠΠw w w.sy2m Π~rajeshΠhowtoΠext3Πtoc.htm l.[5] 郭学理,韦智,潘松.Linux的Ext2文件系统[J].计算机应用研究,2001,(5).[6] 孙玉芳.Linux是windowsxx的克星吗[J]?.计算机科学,2002,29(6).[7] 你宁磊,周卫.Linux网络与安全管理[M].人民邮电出版社,2001.责任编辑:张棣—96—。