三分薄地,认真耕耘

导航

 

e2fsck、fsck、xfs_repair命令都是用于文件系统检查和修复的工具。区别是:

  • fsck是为检查各种不同的文件系统提供一个统一的用户界面。(不支持xfs文件系统)
  • e2fsck是fsck的一个子集,专门用于检查和修复ext文件系统的问题。因此,e2fsck提供了更多的功能和选项来处理ext文件系统的特定问题。在大多数情况下,用户应该使用e2fsck来检查和修复ext2、ext3、ext4文件系统
  • xfs_repair用于检查和修复xfs文件系统

下面对各命令详细介绍如下:

1、fsck命令

用法:

fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]

说明 : 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 文件系统

参数:

  • filesys:device名称(eg./dev/sda1),mount点(eg. /mnt或/usr)
  • -t:给定文件系统的类型,若在/etc/fstab中已有定义或kenel本身支持的则不需要加上此参数
  • -s:依序一个一个的执行fsck指令来检查
  • -A:对/etc/fstab中所列出来的partition做检查
  • -C:显示完整的检查进度
  • -d:列印e2fsck的debug结果
  • -p:同时有-A选项时,同时有多个fsck的检查一起执行
  • -R:同时有-A选项时,省略/不检查
  • -V:详细显示模式
  • -y:预先设定所有检查时的问题均回答【是】
  • -a:如果检查有错则自动修复
  • -r:如果检查有错则由使用者回答是否修复

例子:

检查ext4文件系统的/dev/sda3是否正常,如有异常就自动修复:
fsck -t ext4 -a /dev/sda3

2、e2fsck命令

使用方式:

e2fsck [-pacnydfvFV] [-b superblock] [-B blocksize] [-lL bad_blocks_file] [-C fd] device

参数:

  • device : 预备检查的硬盘 partition,例如:/dev/sda1
  • -a : 对 partition 做检查,若有问题便自动修复,等同 -p 的功能
  • -b : 设定存放 superblock 的位置
  • -B : 设定单位 block 的大小
  • -c : 检查该partition 是否有坏轨
  • -C file : 将检查的结果存到 file 中以便查看
  • -d : 列印 e2fsck 的 debug 结果
  • -f : 强制检查
  • -F : 在开始检查前,将device 的 buffer cache 清空,避免有错误发生
  • -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
  • -L bad_blocks_file : 设定坏轨的block资料存到 bad_blocks_file 里面,若无该档则自动产生
  • -n : 将档案系统以只读方式开启
  • -p : 对 partition 做检查,若有问题便自动修复
  • -v : 详细显示模式
  • -V : 显示出目前 e2fsck 的版本
  • -y : 预先设定所有检查时的问题均回答【是】

使用示例:

检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是:

e2fsck -a -y /dev/hda5

注意 :

大部份使用 e2fsck 来检查硬盘 partition 的情况时,通常都是情形特殊,因此最好先将该 partition umount,然后再执行 e2fsck 来做检查,若是要非要检查 / 时,则请进入 singal user mode 再执行。

3、xfs_repair命令

xfs_repair用于修复xfs文件系统的修复程序,执行xfs_repair命令修复时,必须umount取消当前挂载。

使用方法:

xfs_repair [options] device

参数:

  • -f:指定要修复的文件系统
  • -L:强制日志归零,可以理解为强制进行修复,可能会造成文件丢失,正常修复不了的情况下在用。如强制修复/dev/sda2:xfs_repair -L /dev/sda2
  • -l logdev:指定外部日志所在设备
  • -m maxmem:要使用的最大内存,注意:内存限制只是相近值,可能会超过限定的值
  • -n:无修改模式,仅检查文件系统是否有损坏。例:检查/dev/sda2:xfs_repair -n /dev/sda2
  • -P:禁用inode和目录块的预读取
  • -r rtdev:指定文件系统所在的设备
  • -v:详细输出
  • -c subopts:更改文件系统参数
  • -o subopts:覆盖行为,有多个子选项值,如bhash、ag_stride、force_geometry等
  • -t interval:以秒为单位的间隔
  • -d:通常在单用户模式下使用,很危险,不要轻易使用
  • -V:打印xfs_repair版本号

4 扩展---其它xfs常用命令

  • xfs_admin: 调整 xfs 文件系统的各种参数
  • xfs_copy: 拷贝 xfs 文件系统的内容到一个或多个目标系统(并行方式)
  • xfs_db: 调试或检测 xfs 文件系统(查看文件系统碎片等)
  • xfs_check: 检测 xfs 文件系统的完整性
  • xfs_bmap: 查看一个文件的块映射
  • xfs_repair: 尝试修复受损的 xfs 文件系统
  • xfs_fsr: 碎片整理
  • xfs_quota: 管理 xfs 文件系统的磁盘配额
  • xfs_metadump: 将 xfs 文件系统的元数据 (metadata) 拷贝到一个文件中
  • xfs_mdrestore: 从一个文件中将元数据 (metadata) 恢复到 xfs 文件系统
  • xfs_growfs: 调整一个 xfs 文件系统大小(只能扩展)
  • xfs_logprint: print the log of an XFS filesystem
  • xfs_mkfile: create an XFS file
  • xfs_info: expand an XFS filesystem
  • xfs_ncheck: generate pathnames from i-numbers for XFS
  • xfs_rtcp: XFS realtime copy command
  • xfs_freeze: suspend access to an XFS filesystem
  • xfs_io: debug the I/O path of an XFS filesystem

4.1 具体应用

查看文件块状况: xfs_bmap -v sarubackup.tar.bz2

查看磁盘碎片状况: xfs_db -c frag -r /dev/sda1

文件碎片整理: xfs_fsr sarubackup.tar.bz2

磁盘碎片整理: xfs_fsr /dev/sda1

posted on 2025-05-20 23:06  平复心态  阅读(275)  评论(0)    收藏  举报