Linux实现从Ext2到Ext3文件系统的转换
By admin
- One minute read - 126 words日志文档系统ext3具备ext2所不具备的特点和优势。顺利完成从ext2到ext3的转换,是实现ext3优势的必经之路。ext3文档系统是ext2文档系统的更高一级版本,他有一个其他同类日志文档系统所不具备的独特优势――完全兼容ext2文档系统,因而ext3能充分利用ext2中已有的操作和应用,而且比ext2更有效、更易用。他在ext2的基础上加入了记录元数据的日志功能,是个支持异步的日志。Red Hat 7.2和SuSE 7.3已率先发行了包含ext3文档系统的Linux。通过使用Linux最新安装版本和e2fsprogs Linux公用程式,可将ext3文档系统编译到系统的内核中。这里介绍的是ext2到ext3系统转换的一些基本方法,并为用户提供修正的参考建议。
ext3日志文档系统
1.日志文档系统
日志文档系统的设计思想是跟踪文档系统的变化而不是文档系统的内容。他用单独的日志文档跟踪磁盘内容的变化,就像关系型数据库(RDBMS),因而比传统的文档系统安全。日志文档系统能够用事务处理的方式,提交或撤消文档系统的变化。当系统非正常关闭,处于写入磁盘过程中的文档系统被非正常卸载,文档系统就会处于不一致的状态。为了尽量减少文档系统的不一致性,缩短操作系统的启动时间,文档系统需追踪引起系统改变的记录,这些记录存放在和文档系统相分离的地方,通常称为“日志”。一旦这些日志记录被安全地写入,日志文档系统就能够将他们应用到文档系统中,清除引起系统发生改变的记录,并将他们组成一个引起文档系统改变的集。
日志文档的主要作用就是能够最大程度地确保文档系统的一致性。通常文档系统存放日志记录,当重新引导电脑启动时,安装程式为确保文档系统的一致性会检测日志记录,并将他安全地、完整地应用到文档系统中。在大多数情况下,一般操作系统并不检测文档系统的一致性,使用日志文档系统的电脑则会在系统引导后,立即使用日志检测,降低数据丢失的可能性。
2.ext3
ext3文档系统是日志文档,且100%地兼容ext2文档系统,其和ext2文档系统的主要区分便是他的快速更新文档存储。电脑开始从磁盘上读取或写入数据就必须确保文档系统中文档和目录的一致性,任何日志文档中的数据均以数据块的形式存放在存储设备中。当磁盘分区时文档系统即被创建,按照文档形式、目录形式支持存储数据、组织数据的使用。
ext3和ext2相同是由来自多家厂商的研发人员联合研发的。他的研发不依赖于任何个人或组织,他提供并使用了一个通用日志层generic journaling layer (jbd)。该层能够在其他环境中使用,能在文档系统中使用,还能够应用到其他设备中。现在Linux开始支持的NVRAM设备,ext3就能够支持。当由于软件或硬件错误导致文档系统崩溃时,文档修复程式e2fsck在修复数据方面是很成功的,ext3使用了和e2fsck相同的代码来修复崩溃的文档系统,因此当出现数据崩溃时,ext3具备和ext2同样的防止数据丢失的长处。
值得指出的是,上述这些长处中的每一点都不是ext3所独有的,其中的大部分别的文档系统也具备,但只有ext3才尽数具备,这也正是ext3的综合优势。ext3称得上是现在最能满足用户需要的日志文档系统。
从ext2到ext3的转换
1.转换 从ext2文档系统到ext3文档系统的转换,一般的方法是通过在已有的ext2文档系统上添加日志文档。假设要把原/back (/dev/hda5)从ext2文档系统转换成ext3文档系统,通常具体步骤如下(建议在转换系统以前,最好备份文档系统):
(1)卸载/back目录
执行如下命令: umount /back
(2)转换
所使用的命令格式如下: /sbin/tune2fs -j
例如,要将分区/dev/hda5的ext2系统转换成ext3文档系统,所使用的命令如下:
/sbin/tune2fs -j /dev/hda5
其中tune2fs是转换命令,- j选项表示是在已存在的ext2文档系统上建立的ext3日志。
(3)安装/back目录
执行如下命令: mount -text3 /dev/hda5/back
执行命令后系统将创建一个日志文档,假如文档系统在转换的过程已被装载(Mount),那么在根目录下会出现“.journal”文档,否则是没有这个日志文档的。
(4)修改/etc/fstab文档
例如,在将ext2日志文档系统转换成ext3日志文档系统之后,立即更新/etc/fstab引导记录,能够使用“auto”选项来进行。
转换前情况: /dev/hda5 /opt ext2 defaults 1 2
转换后情况: /dev/hda5 /opt ext3 defaults 1 0
其中Linux的最后一个字段/etc/ fstab是为引导系统而配置的,并由“fsck(file system check)”程式检验文档系统的一致性,同时把/etc/fstab文档中的ext2修改为ext3。当使用ext3文档系统时,能将这个字段设定为“0”。这意味着fsck程式将不检查文档系统的一致性,文档系统的一致性将由后面的日志提供确保。假如要转换的是引导系统,必须使用initrd启动系统,可运行mkinitrd,并参照其手册描述步骤,同时确认LILO或Grub配置中是否装载了initrd。假如转换ext3没有成功,系统仍然能启动,但是引导系统会以ext2形式装载,而不是ext3。能够使用命令cat/proc/mount来确认这一点。
使用如下命令: mount
能够显示: /dev/hda5 on /test type ext3 (rw)
这时表示系统已成功地从ext2转换到ext3。
2.新建
升级一个已有的ext2,使用tune2fs就能够了。对于需要创建新ext3文档系统的情况,要使用安装的e2fsprogs软件包中的mke2fs命令加-f参数。这就能够创建新的ext3文档系统。假设打算把/dev/hda5创建为ext3文档系统,具体步骤如下:
(1)创建
执行如下命令: mke2fs -j /dev/hda5
(2)安装/back目录
执行如下命令: mount -t ext3 /dev/hda5 /back
(3)修改/etc/fstab文档
新的e2fsprogs中的e2fsck支持ext3,当一个ext3文档系统被破坏时,先卸载该设备,再用e2fsck修复。
执行如下命令: umount /back
e2fsck -fy /dev/hda5
当系统重新启动时,一般都要用日志文档系统进行检查,这需要一定的时间。用ext3能够避免重启动时长时间的文档系统检查,如使用下面的命令:
tune2fs -i 0 -c 0 /dev/hda4
能够关闭文档系统检查。
假如要从ext3返回ext2,方法也很简单,即卸载ext3重新安装ext2,命令如下:
mount -text2 /dev/hda5 /test
当然在启动中安装ext2,要在etc/fstab文档中重新配置才行。
3.修正
ext3也有缺点,其最大的缺点是没有现代文档系统所具备的能提高文档数据处理速度和解压的高性能。Red Hat Linux 8.0.94 发行注记上也指出ext3的一些问题。假如在beta版本上创建了打算永久保留的文档系统,我们推荐从每个文档系统里删除HTree索引功能的任何痕迹。方法是首先使用以下命令:
tune2fs -O ^dir_index /dev/
然后能够使用下面的命令从目录中删除索引:
e2fsck -fD /dev/
结束语
Linux操作系统是操作系统家族中的优秀成员,是近年来用户数量增长最快的系统软件。ext2文档系统作为任何Linux发行版本的基本文档系统,负责对文档的管理、存取、共享及保护等手段提供给操作系统和用户。他不但方便安全,更有效地提高了系统资源的利用率。在Red Hat Linux 7.2中,Red Hat首次采用支持日志文档系统ext3。他作为第一个正式支持的日志文档系统,无疑是全面兼容ext2的高性能文档系统,其兼容性包括在ext2文档系统上使用的任何其他应用。从ext2到ext3的升级简便,而且ext3改进了Linux系统的性能,解决系统中存在的不一致性的问题。ext3文档系统是个优秀的、极具发展前景的文档系统。