mbadblocks命令介绍
mbadblocks命令是用于在MS-DOS文件系统上标记一些簇(cluster)为坏的(bad)。如果没有提供命令行选项,mbadblocks会通过尝试读取它们并在读取失败时将它们标记为坏的来扫描MS-DOS文件系统中的坏块。所有未使用的块都会被扫描,并且如果检测到坏的,就会在FAT(文件分配表)中标记为坏的。这个命令是在mformat之后使用的。它不是用来从坏磁盘中恢复数据的。
mbadblocks命令适用的Linux版本
mbadblocks命令是mtools软件包的一部分,mtools是一组用于访问MS-DOS磁盘的实用程序。mtools支持大多数Linux发行版,如Ubuntu, Debian, Fedora, CentOS等。要安装mtools,可以使用以下命令:
- Ubuntu或Debian:
sudo apt install mtools
- Fedora:
sudo dnf install mtools
- CentOS 7:
sudo yum install mtools
- CentOS 8:
sudo dnf install mtools
mbadblocks命令的基本语法
mbadblocks命令的基本语法如下:
mbadblocks [ -s sectorlist | -c clusterlist |-w] drive:
其中:
-s sectorlist
:使用一个坏扇区(sector)的列表,而不是自己扫描坏簇(cluster)。扇区是从文件系统的开始计数的。-c clusterlist
:使用一个坏簇的列表,而不是自己扫描坏簇。-w
:向每个簇写入一个随机模式,然后读回并在不匹配时将簇标记为坏的。只有空闲的簇会以这种方式被测试,所以任何文件数据都会被保留。drive:
:指定要检查的驱动器,如a:
,b:
,c:
等。
mbadblocks命令的常用选项说明
mbadblocks命令的选项不多,只有三个,分别是:
选项 | 说明 |
---|---|
-s sectorlist | 使用一个坏扇区的列表,而不是自己扫描坏簇 |
-c clusterlist | 使用一个坏簇的列表,而不是自己扫描坏簇 |
-w | 向每个簇写入一个随机模式,然后读回并在不匹配时将簇标记为坏的 |
mbadblocks命令的实例
mbadblocks命令的实例如下:
- 扫描a:驱动器上的坏簇,并将它们标记在FAT中:
[linux@bashcommandnotfound.cn ~]$ mbadblocks a:
- 使用一个坏扇区的列表来标记b:驱动器上的坏簇,假设列表文件名为badsectors.txt:
[linux@bashcommandnotfound.cn ~]$ mbadblocks -s badsectors.txt b:
- 使用一个坏簇的列表来标记c:驱动器上的坏簇,假设列表文件名为badclusters.txt:
[linux@bashcommandnotfound.cn ~]$ mbadblocks -c badclusters.txt c:
- 向d:驱动器上的每个空闲簇写入一个随机模式,然后读回并在不匹配时将簇标记为坏的:
[linux@bashcommandnotfound.cn ~]$ mbadblocks -w d:
mbadblocks命令的注意事项
- mbadblocks命令不是用来从坏磁盘中恢复数据的,它只是用来标记坏簇,以便在格式化后不使用它们。如果要恢复数据,可以使用其他工具,如ddrescue或testdisk。
- mbadblocks命令应该在mformat之后使用,因为mformat会清除FAT中的所有坏簇标记。如果在mformat之前使用mbadblocks,那么标记的坏簇会被覆盖。
- mbadblocks命令应该在使用mtools之前使用,因为mtools会忽略FAT中的坏簇标记,而直接访问磁盘。如果在使用mtools之后使用mbadblocks,那么可能会损坏已经写入的文件。
- 如果在执行mbadblocks命令时遇到
bash: mbadblocks: command not found
的错误,那么可能是没有安装mtools软件包。可以使用上面提到的命令来安装mtools,或者从官网下载源码并编译安装。
评论区