庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>新手入门>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

在2.4内核上使用ext3文件系统

 作者:本站收集   日期:2005-4-11
字号选择〖 〗/ 双击滚屏 单击停止   

简介


本文简要叙述了如何在2.4版内核上安装并运行ext3日志文件系统。

ext3是由 Stephen C. Tweedie 博士为2.2版内核编写的。

这一文件系统由 Peter Braam Andreas Dilger Andrew Morton Stephen Tweedie 迁移到2.4版内核上。 Ted Ts'o 维护着极为重要的e2fsprogs工具,并为ext3功能设计与实现提供了宝贵建议。 Alexander Viro 贡献了ext3目录搜索部分代码。

对本文的任何评注,请电邮至 Andrew Morton

如对本软件有怀疑、问题或者bug报告,请电邮至 ext3用户邮件列表
该邮件列表订阅指南参见 https://listman.redhat.com/mailman/listinfo/ext3-users/


现状


到七月末,ext3开发有些减缓,因为我们正为发布1.0版而努力。
对2.4.7内核而言,ext3补丁已经相当稳定、性能优越。在x86体系SMP环境下的测试已经完成。其它系统结构的测试报告(不论成功还是失败),请发送到 ext3用户 列表。

一个比较突出的问题是磁盘限额。在2.4.7内核的磁盘限额代码中,有一些已知的因素会引起死锁,ext3又增加了新的不稳定因素。这与在-ac内核中的磁盘限额代码有很大不同,一旦这部分并入Linus的内核中,我们会继续开发并测试ext3的磁盘限额代码。这并不是说ext3加上磁盘限额一定会引起崩溃--但如果你长时间大负荷使用文件系统,代码将会引起锁死,你必须重启才能恢复受影响的文件系统操作。我们只对-ac内核进行了磁盘限额代码测试--在这种情况下工作完全正常。


安装





  1. http://www.zip.com.au/~akpm/linux/ext3/ 下载最新的内核补丁


  2. cd /usr/src/linux


  3. gunzip < ~/ext3-2.4-0.x.y.patch.gz | patch -p1

    注:原文如此,但实际需要用cat命令代替gunzip命令。


  4. make menuconfig


    在filesystems菜单中选取ext3。请同时勾选“JBD debugging support”,因为如果出了什么错,这可以给出有用的诊断信息。通常不用选取“Buffer head tracing”--它将耗用大量内存。然而如果你遇到ext3的‘声明失败'错,请在提出bug报告前,设置为允许“缓冲跟踪”,看看能否重复产生这个问题--那会产生大量有用信息。

    ext3文件系统支持可以编译进内核,也可以编译成可挂载模块。编进内核的好处在于,如果出现错误,可以简化诊断信息的收集工作。



  5. 编译并安装内核。



其它软件


你需要从 http://www.kernel.org/pub/linux/utils/util-linux/
下载最新的 util-linux 包。
其中 mount 命令的改进如后文所述。

你需要从 http://e2fsprogs.sourceforge.net/ 下载e2fsprogs 1.25或更新的版本。


从ext2文件系统转换


ext2文件系统可以通过创建一个日志文件转换成ext3。新建日志文件,只要在目标文件系统(可以是已挂载的)上运行
tune2fs -j /dev/hdXX 命令。文件系统现在就成为ext3了。换句话说,只要简单的卸载/重挂载它(当然要在相应修改/etc/fstab之后),你就可以把这个区作为ext3格式使用了。要用ext3格式挂载根分区,最简单的方法是重启。


建立新的ext3文件系统


只要运行 mke2fs -j /dev/hdXX 命令在该设备上建立新的ext3文件系统。


在ext2和ext3间切换


在正常卸载的情况下,ext3文件系统可以被当作ext2来挂载。未正常关机的ext3文件系统不能作为ext2被挂载,因为日志中仍有ext2无法处置的临时数据

e2fsprogs提供的e2fsck程序可以进行日志回溯,因此在已经破坏的ext3文件系统上运行 e2fsck -fy /dev/hdXX 就可以修复它,并允许以ext2格式挂载。

ext3软件将拒绝挂载ext2文件系统--目前文件系统上一定要有日志文件才可以。



根文件系统的LILO选项


如果你的根文件系统是ext3,缺省情况下,支持ext3的内核将用ext3格式挂载根分区。你可以通过下述LILO选项取代缺省操作:
LILO: linux rootfstype=ext2
你还可以通过LILO的 rootflags 向根文件系统提供挂载选项。例如:
LILO: linux rootflags=data=journal


非LILO引导管理器


引导管理器LILO跟文件系统无关--它用预先定义好的块表来定位和加载操作系统映像到内存中。
然而其它(更聪明的?)引导管理器例如SILO(SPARC上用的)和Open Firmware(PowerPC上用的)自带文件系统驱动,它们可以直接打开和装载ext2文件系统上的文件。

这在根文件系统是ext3,并且未正常关机的情况下会引起问题。处在这种状态下的ext3与ext2不兼容--需要首先执行恢复操作。这一不兼容性记录在文件系统的超级块中,完全兼容ext2的引导管理器 应该 给出错误提示,并拒绝打开这个文件系统上的文件。这就是我们不希望见到的,系统不能启动!

看来Open Firmware没做完整的超级块兼容性检查,所以它仍然会从需要修复的ext3文件系统载入文件。只能说万幸。

然而SILO 要进行 完整的兼容性检查,从需要修复的ext3文件系统引导会令SILO产生“too many symlinks”错误,或别的什么问题。要避免这类严重问题的发生,你需要确保引导区文件系统是ext2类型而不是ext3的(或打上补丁让SILO略过兼容性检查?)。


透明衔接文件系统


在只支持ext2和支持ext3的内核之间来回切换的问题之一是,需要告诉内核,用什么文件系统类型来挂载所有设备。通常这需要修改 /etc/fstab 。

最新版的 mount 能认识ext3并自动选择ext3文件系统类型。The version of fsck in e2fsprogs-1.23
and later can also do this if the fstype is auto . Here's
the state of play:



  • 如果 mount 命令没有指定目标分区的fstype,而它自动检测到了ext3,它将首先尝试用ext3挂载,如果失败,再尝试用ext2。


  • 如果 mount 命令带 auto 参数来指定fstype,它将首先检测ext3并尝试挂载,如果失败,再尝试用ext2。


  • 如果 fsck 命令带 auto 参数来指定fstype,它将自动检测文件系统类型,然后运行相应检查(对ext2和ext3而言都是fsck.ext2)。

建议使用最新的e2fsprogs稳定版本,并在 /etc/fstab 中用 auto 指定fstype。

注意 :要使fstype auto 能正常工作,你 必须 使用e2fsprogs-1.23或更高版本!

注意 :如果你使用的是最近的Red Hat发行版,并且从官方安装包自己编译util-linux,你可能会在挂载文件系统时遇到挂载失败问题。这是由于Red Hat在他们发行的版本中,给 mount 命令加上了“-O”参数。这一选项加在他们的 /etc/rc.d/rc.sysinit 里,这就使得标准的 mount 命令返回“unrecognised option -O”错误。

解决方法是,编辑 /etc/rc.d/rc.sysinit ,去掉任何“-O no_netdev”字符串。

注意 :使用“自动”来指定根文件系统类型将使 /bin/df 不正常,从而使根文件系统的信息不能输出。
解决方法:始终在 /etc/fstab 中指定根文件系统为ext3。



周期性文件系统检查


e2fsck的功能之一是对文件系统进行常规的强制检查,即使文件系统被标志为正常的。一般情况下,每二十次挂载或者每180天,两个条件之一满足就进行检查。

这一例行检查对ext3同样有效,很可能你不希望这样--我们选择ext3的目的之一就是减少由fsck引起的漫长的停机时间。

因此对于ext3来说,关闭这一功能比较好。用以下命令


tune2fs -i 0 -c 0 /dev/hdxx
来禁止检查。

注意:这意味着周期性的停机并手动检查磁盘是 你的 责任。多数Linux发行版中,通过建立 /forcefsck 文件然后重启,很容易做到。


外部日志


在0.9.5版上,ext3支持把日志放到另外的设备上。这个设备可以是磁盘或是一个NVRAM设备。NVRAM设备可以用Andrew Tridgell的trivial RAM disk( trd 驱动来模拟,该驱动在ext3的CVS库中。

你需要一个非常新的e2fsprogs,版本为1.23-WIP-0727或更高。

安装 trd
mknod /dev/trd b 240 0

insmod trd.o trd_size=50000(对一个50MB的设备)
建立一个外部日志
mke2fs -O journal_dev /dev/trd
在/dev/hda5上建立使用外部日志设备的ext3文件系统:
mke2fs -J device=/dev/trd /dev/hda5

mount /dev/hda5 /mnt/some/place -t ext3
注意!你须要指定文件系统类型(-t ext3),因为mount(8)中的自动检测文件系统类型不认识带外部日志的ext3。

当然,你可以使用真正硬盘上的分区作为外部日志设备--只要用 /dev/hdXX 替换上述 /dev/trd 。

注意:只能在测试中使用虚拟磁盘驱动器来模拟NVRAM设备。这样做会失去日志带来的恢复时间上的好处(你一定要用fsck完整检查文件系统),事实上在系统崩溃后,你将丢失数据并增大文件系统毁坏的几率。

上一篇:如何安装和使用wine    下一篇:文件传主输协议FTP命令不完全手册  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-11
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿