Linux 中的 dosfsck 命令示例
dosfsck 代表DOS 文件系统一致性检查。它是类 Unix 操作系统中 dosfstools 包的一个组件。为了使用 dosfsck,需要安装 dosfstools 包。 dosfsck命令诊断 MS-DOS 文件系统的问题并尝试修复它们。在运行 dosfsck 之前总是卸载文件系统以避免任何损坏问题。
句法:
dosfsck [-aAflrtvVwy] [-d path -d ...] [-u path -u ...] device
dosfsck命令可用于纠正下面提到的一些问题:
- 如果 FAT 包含无效的簇号,则簇将更改为 EOF。
- 如果文件的簇链包含循环,则循环被破坏。
- 坏簇被标记并从占用它们的文件或目录中删除。这是一项可选检查。
- 可以删除包含大量错误或损坏条目的目录。
- 文件。和..是非目录,可以删除或重命名。
- 目录。和..在根目录中。它们被丢弃。
- 坏文件名,可以重命名。
- 可以重命名或删除重复的目录。
- 具有非零大小字段的目录设置为零。
- 如果目录.不指向父目录则调整起始指针。
- 如果目录..不指向父目录的父目录,则调整起始指针。
- 如果文件的起始簇号无效,则该文件将被截断。
- 包含坏簇或空闲簇的文件被截断。
- 如果文件的簇链比大小字段指示的长,则文件将被截断。
- 如果文件的簇链比大小字段指示的短,则文件将被截断。
- 如果簇被标记为已使用但未被文件占用,则它们被标记为空闲。
如果出现以下情况,也可以检测到这些文件系统问题,但dosfsck命令无法修复这些问题:
- 在引导扇区中检测到无效参数。
- .和..在非根目录中找不到条目。
选项:
- -a :自动修复文件系统。
- -A :切换 MS-DOS 文件系统的 Atari 变体。
- -b :进行只读引导扇区检查。
- -d :删除指定文件。
- -f :将未使用的集群链回收到文件中。默认情况下,除自动模式 (-a) 外,未使用的集群会添加到可用磁盘空间中。
- -l :列出正在处理的文件的路径名。
- -n :它是无操作模式,非交互地执行检查并对文件系统进行更改。
- -p :类似于 -a,用于与其他 fsck 兼容。
- -r :检查以交互方式执行。每当有不止一种修复方法时,都会询问用户。
- -t :将不可读的簇标记为坏簇。
- -u :尝试取消删除指定的文件。
- -v :详细模式。提供正在进行的维修的其他详细信息。
- -V :执行验证通过。
- -w :一旦它们(错误)被修复,就将更改写入磁盘。
- -y :类似于 -a 以兼容其他 fsck 工具。
dosfsck 的退出代码:
0 : No recoverable errors were detected.
1 : Recoverable errors or internal inconsistency was detected.
2 : Usage or Syntax error.
例子:
- 自动修复文件系统。
sudo dosfsck -a /dev/sdb1
- 进行只读引导扇区检查
sudo dosfsck -b /dev/sdb1
- 列出正在处理的文件的路径名。
sudo dosfsck -l /dev/sdb1
- 以非交互方式检查和修复文件系统的详细方法。 -t 用于将不可读的集群标记为坏的,这将使它们无法用于新文件和目录。
sudo -v -a -t /dev/sdb1
- 执行验证通过
sudo -V /dev/sdb1