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
浙公网安备 33010602011771号