linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 专题栏目 > LPI >
栏目导栏
  LPI
  cisco
资料搜索
热门文章
·LPI 101认证学习1-硬件和体系结
· LPI 101认证学习7-Linux安装与
·LPI 101认证学习26-X Window 系
·LPI 101认证学习8-Linux安装与
·LPI 101认证学习15-GNU和UNIX命
·LPI 101认证学习28-X Window 系
·LPI 101认证学习10-Linux安装与
·LPI 101认证学习11-GNU和UNIX命
·LPI 101&102 2007年考试大纲
·LPI 101认证学习18-设备、Linu
·LPI 101认证学习27-X Window 系
·LPI 101认证学习14-GNU和UNIX命
·LPI 101认证学习12-GNU和UNIX命
·LPI考试流程
· LPI 101认证学习9-Linux安装与
最新文章
·LPI 101&102 2007年考试大纲
·LPI 302中文考试大纲
·LPI 301中文考试大纲
·LPIC-3认证考试内容最终确定
·LPI 101认证学习28-X Window 系
·LPI 101认证学习27-X Window 系
·LPI 101认证学习26-X Window 系
·LPI 101认证学习25-设备、Linu
·LPI 101认证学习24-设备、Linu
·LPI 101 学习指南:一.安装网络
·LPI 101 学习指南:一.安装 本地
· 安装光盘介绍(The Installati
·LPI 101认证学习23-设备、Linu
·LinuxWorld上海开展 LPI与众多
·LPI 和 Canonical 联合发布Ubu
Google
 
LPI 101认证学习19-设备、Linux 文件系统与文件系统层次标准(FHS)之文件系统完整性
[ 作者:  加入时间:2006-12-01 11:38:56  来自:Linux联盟 ]
V6JLinux联盟
清单 22. 一些 fsck 程序

 

                                      

ian@pinguino:~$ ls /sbin/*fsck*

/sbin/dosfsck      /sbin/fsck.ext3   /sbin/fsck.reiser4   /sbin/jfs_fscklog

/sbin/e2fsck       /sbin/fsck.jfs    /sbin/fsck.reiserfs  /sbin/reiserfsck

/sbin/fsck         /sbin/fsck.minix  /sbin/fsck.vfat

/sbin/fsck.cramfs  /sbin/fsck.msdos  /sbin/fsck.xfs

/sbin/fsck.ext2    /sbin/fsck.nfs    /sbin/jfs_fsck

 

系统引导过程使用 fsck 检查根文件系统和 /etc/fstab 控制文件中指定的所有其他文件系统。如果文件系统没有干净地卸载,那么执行一致性检查。这受 /etc/fstab 项的 pass(或 passno)字段(第六个字段)控制。在引导时,不检查 pass 设置为零的文件系统。根文件系统的 pass 值是 1,它先被检查。其他文件系统的 pass 值常常是 2(或更大),这些值表示应该以什么次序检查它们。多个 fsck 操作可以同时运行,所以不同的文件系统可以具有相同的 pass 值,我们例子中的 /boot /home 文件系统就是这种情况。 

V6JLinux联盟
清单 23. fstab 项指定文件系统的引导检查

 

                                      

# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc            /proc           proc    defaults        0       0

/dev/hda6       /               reiserfs defaults       0       1

/dev/hda2       /boot           ext3    defaults        0       2

/dev/hda8       /dos            vfat    defaults        0       0

/dev/hda7       /home           xfs     defaults        0       2

 

注意,某些日志型文件系统(比如 ReiserFS xfs)的 pass 值可能是零,因为由日志代码(而不是 fsck)进行文件系统一致性检查和修复。

修复文件系统

如果文件系统的引导时自动检查无法恢复一致性,那么用户常常被转入一种单用户 shell,可以在这里用一些指令手工运行 fsck。对于非日志型的 ext2 文件系统,会向您提出一系列请求,请您确认建议的操作以修复文件系统上的特定块。一般应该回答 y(表示 yes),让 fsck 尝试修复问题。在系统重新启动时,检查任何丢失的数据或文件。 

如果怀疑文件系统损坏了,或者希望手工运行检查,大多数检查程序要求先卸载文件系统。因为不能卸载正在运行的系统上的根文件系统,最好进入单用户模式(使用 telinit 1),然后以只读模式重新挂载根文件系统,这时应该能够执行一致性检查。(下一节 挂载和卸载文件系统 讨论挂载文件系统。)检查文件系统的更好方式是引导一个恢复系统,比如 live CD USB 内存密钥,然后从那里检查未挂载的文件系统。

为什么要采用日志?

ext2 硬盘进行 fsck 扫描要花费相当长的时间,因为必须完整地扫描文件系统的内部数据结构(即元数据)。随着文件系统越来越大,尽管硬盘的速度快了,但是这个过程花的时间仍然越来越长,所以一次完整的检查可能要花一小时,甚至更长时间。 

这个问题导致了日志型(journaling 文件系统的出现。日志型文件系统维护着最近对文件系统元数据的修改的日志。在系统崩溃之后,文件系统驱动程序检查这个日志,判断文件系统最近修改的部分是否有错误。由于采用了这种设计,检查日志型文件系统的一致性通常只需几秒时间,无论文件系统有多大。而且,文件系统驱动程序常常在挂载时检查文件系统,所以外部的 fsck 检查一般是不需要的。实际上,对于 xfs 文件系统,fsck 不做任何事!

如果要运行文件系统手工检查,请查看适当 fsck 命令(fsck.ext3e2fsck reiserfsck 等等)的手册页以决定合适的参数。一些例子见清单 24,这里使用一个 Ubuntu live CD 映像运行 fsck 命令。 

V6JLinux联盟
清单 24. 手工运行 fsck

 

                                      

root@ubuntu:~# fsck -p /dev/hda6

fsck 1.38 (30-Jun-2005)

Reiserfs super block in block 16 on 0x306V6JLinux联盟
of format 3.6 with standard journal

Blocks (total/free): 5002224/4608416 by 4096 bytes

Filesystem is clean

Replaying journal..

Reiserfs journal '/dev/hda6' in blocks [18..8211]: 0V6JLinux联盟
transactions replayed

Checking internal tree..finished

root@ubuntu:~# fsck -p /dev/hda2

fsck 1.38 (30-Jun-2005)

BOOT: clean, 34/26208 files, 22488/104420 blocks

root@ubuntu:~# fsck -p /dev/hda7

fsck 1.38 (30-Jun-2005)

root@ubuntu:~# fsck -a /dev/hda8

fsck 1.38 (30-Jun-2005)

dosfsck 2.11, 12 Mar 2005, FAT32, LFN

/dev/hda8: 1 files, 2/501039 clusters

高级工具

有一些更高级的工具可以用来检查或修复文件系统。通过手册页了解正确的使用方法,并参考 Linux Documentation Project(参见 参考资料)中的 how-to 信息。这些工具几乎都要求先卸载文件系统,但是有些功能可以应用于以只读模式挂载的文件系统。下面描述了几个命令。 

在尝试进行任何恢复之前,应该对文件系统进行备份。

用于 ext2 ext3 文件系统的工具

tune2fs 

调整 ext2 ext3 文件系统上的参数。使用它将日志添加到 ext2 文件系统上,使它成为 ext3 系统,以及显示或设置实施检查之前进行挂载的最大次数。还可以分配标签,以及设置或禁用各种可选特性。 

dumpe2fs 

输出 ext2 ext3 文件系统的超级块和块组描述符信息。 

debugfs 

这是一个交互式的文件系统调试器。使用它检查或修改 ext2 ext3 文件系统的状态。 

用于 Reiserfs 文件系统的工具

reiserfstune 

显示和调整 ReiserFS 文件系统上的参数。 

debugreiserfs 

它对 ReiserFS 文件系统执行与 dumpe2fs debugfs 相似的功能。 

用于 XFS 文件系统的工具

xfs_info 

显示 XFS 文件系统信息。 

xfs_growfs 

扩展 XFS 文件系统(假设有另一个分区可用)。 

xfs_admin 

修改 XFS 文件系统的参数。 

xfs_repair 

当挂载检查不足以修复系统时,修复 XFS 文件系统。 

xfs_db 

检查或调试 XFS 文件系统。

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
分页:1 2 [3]
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·LPI 101认证学习20-设备、Linux 文件系统与文件系统层次标准(FHS)之挂载和卸载文件系统  (2006-12-04 12:01:33)
 ·LPI 101认证学习18-设备、Linux 文件系统与文件系统层次标准(FHS)之创建分区和文件系统  (2006-11-30 13:31:58)
 ·LPI 101认证学习17-GNU和UNIX命令之用正则表达式进行搜索  (2006-11-29 13:15:41)
 ·LPI 101认证学习16-GNU和UNIX命令之修改进程执行优先级  (2006-11-28 14:08:21)
 ·LPI 101认证学习15-GNU和UNIX命令之创建、监视和杀死进程  (2006-11-27 11:55:34)
 ·LPI 101认证学习14-GNU和UNIX命令之流、管道和重定向  (2006-11-24 11:51:52)
 ·LPI 101认证学习13-GNU和UNIX命令之执行基本的文件管理  (2006-11-23 12:11:21)
 ·LPI 101认证学习12-GNU和UNIX命令之文本流和过滤器  (2006-11-22 12:37:44)
 ·LPI 101认证学习11-GNU和UNIX命令之在命令行上进行操作  (2006-11-21 14:13:42)
 ·LPI 101认证学习10-Linux安装与包管理之RPM包管理  (2006-11-20 13:28:50)