Linux badblocks命令教程:如何检测磁盘驱动器上的坏区(附案例详解和注意事项)

ops/2025/2/22 23:34:10/

Linux badblocks命令介绍

badblocks(坏区检测)命令用于在设备(通常是磁盘分区)上搜索坏区。坏区是指已经损坏并且不再可靠使用的内存块。

Linux badblocks命令适用的Linux版本

badblocks命令在大多数Linux发行版中都可以使用,包括Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora和Raspbian。如果在某些版本的Linux中没有预装badblocks命令,可以通过安装相应的包来获取。

Linux badblocks命令的基本语法

badblocks命令的基本语法如下:

[linux@bashcommandnotfound.cn ~]$ badblocks [-b block_size] [-i input_file] [-o output_file] [-svwnf] [-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks] [-p num_passes] [-t test_pattern [-t test_pattern [...]]] device [last_block [first_block]]

这里,device是要检查的设备,last_block是要检查的最后一个块,first_block是要检查的第一个块。

Linux badblocks命令的常用选项或参数说明

badblocks命令的选项较多,主要有以下几个:

选项说明
-b block_size指定块的大小(以字节为单位)。默认值是1024
-c blocks_at_once指定一次测试的块数。默认值是64
-d delay_factor_between_reads如果读取操作没有遇到错误,badblocks会在读取之间延迟;延迟将作为读取操作所花费时间的百分比来计算
-e max_bad_blocks指定在中止测试之前的最大坏块数。默认值是0,这意味着测试将一直进行,直到达到测试范围的末尾
-i input_file读取已知存在的坏块列表。badblocks将跳过这些已知的坏块,因为它们已知是坏的
-o output_file将坏块列表写入文件,而不是标准输出
-p num_passes执行的测试次数
-s显示测试的当前进度,通过显示已扫描的块的百分比
-v详细模式
-w执行读写测试,通过在每个块上写入一些模式并进行比较
-n执行非破坏性的读写测试
-f强制在设备上运行测试,即使设备已挂载
-t test_pattern使用的测试模式

Linux badblocks命令实例详解

下面是一些badblocks命令的使用实例。

实例1:基本的badblocks使用

[linux@bashcommandnotfound.cn ~]$ badblocks -v /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,并显示详细的输出。

实例2:将坏块列表写入文件

[linux@bashcommandnotfound.cn ~]$ badblocks -o badblocks.txt /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,并将坏块列表写入badblocks.txt文件。

实例3:执行非破坏性的读写测试

[linux@bashcommandnotfound.cn ~]$ badblocks -n /dev/sda1

这个命令会在/dev/sda1设备上执行非破坏性的读写测试。

实例4:执行读写测试

[linux@bashcommandnotfound.cn ~]$ badblocks -w /dev/sda1

这个命令会在/dev/sda1设备上执行读写测试。请注意,这是一个破坏性的测试,因为它会覆盖设备上的所有数据。

实例5:指定块的大小

[linux@bashcommandnotfound.cn ~]$ badblocks -b 4096 /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,同时指定块的大小为4096字节。

实例6:指定一次测试的块数

[linux@bashcommandnotfound.cn ~]$ badblocks -c 128 /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,同时指定一次测试的块数为128。

实例7:在中止测试之前的最大坏块数

[linux@bashcommandnotfound.cn ~]$ badblocks -e 10 /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,同时指定在中止测试之前的最大坏块数为10。

实例8:读取已知存在的坏块列表

[linux@bashcommandnotfound.cn ~]$ badblocks -i known-bad-blocks.txt /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,同时读取已知存在的坏块列表。

实例9:执行的测试次数

[linux@bashcommandnotfound.cn ~]$ badblocks -p 3 /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,同时指定执行的测试次数为3。

实例10:使用的测试模式

[linux@bashcommandnotfound.cn ~]$ badblocks -t random /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,同时指定使用的测试模式为随机。

实例11:强制在设备上运行测试

[linux@bashcommandnotfound.cn ~]$ badblocks -f /dev/sda1

这个命令会在/dev/sda1设备上搜索坏区,同时强制在设备上运行测试,即使设备已挂载。

Linux badblocks命令的注意事项

  • 如果在使用badblocks命令时遇到bash: badblocks: command not found错误,那么可能是系统中没有安装相应的包。可以按照上面的方法进行安装。

Linux badblocks相关命令

badblocks 是用于扫描存储设备中损坏的区块的命令,以下是与 badblocks 相关的一些命令,以及一些其他常用命令:

badblocks 命令:检查设备上的坏道
fsck 命令:检查和修复文件系统
e2fsck 命令:检查 ext2/ext3/ext4 文件系统
mke2fs 命令:创建 ext2/ext3/ext4 文件系统
resize2fs 命令:调整 ext2/ext3/ext4 文件系统的大小
dumpe2fs 命令:打印 ext2/ext3/ext4 文件系统信息
tune2fs 命令:调整 ext2/ext3/ext4 文件系统的参数
df 命令:显示文件系统的磁盘使用情况
mount 命令:挂载文件系统
umount 命令:卸载已挂载的文件系统
dd 命令:复制文件并在进程中转换和格式化数据
blkid 命令:显示块设备的 UUID 和文件系统类型
lsblk 命令:列出所有可用块设备的信息
partprobe 命令:通知操作系统内核重新读取分区表
hdparm 命令:显示和设置硬盘参数
fstab 文件:存储挂载点和相关选项的静态文件系统信息
gparted 命令:图形化的分区编辑工具
parted 命令:磁盘分区和分区大小调整工具
fdisk 命令:磁盘分区表操作工具
cfdisk 命令:基于文本的磁盘分区表编辑器
ls 命令:列出文件和目录
cp 命令:复制文件和目录
rm 命令:删除文件或目录
mkdir 命令:创建新目录
mv 命令:移动或重命名文件和目录
top 命令:显示正在运行的进程
chmod 命令:改变文件或目录的权限
chown 命令:改变文件或目录的所有者和所属组


http://www.ppmy.cn/ops/37176.html

相关文章

算法精讲:选择排序

基本思想 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在待排序的数列的最前端,直到所有元素排完。 排序过程 初始关键字:【3 1 5 4 2】 第一趟排序后:1【3 5 4 2】 第二趟排序后&am…

Android 系统启动流程源码分析

一、Init进程启动 是一个由内核启动的用户级进程。内核自行启动之后,就通过启动一个用户级程序init的方式,完成引导进程。 启动的代码init.c中的main函数执行过程:system\core\init.c中: 主要下面两个重要的过程: 1…

解决VScode -正在本地下载 VS Code 服务器

不知道怎么回事再次连接服务器的时候一直卡在这里了,查看输出信息发现一直卡在下载处,报错信息如图1,输出信息如图2。 1.报错信息 图1 报错信息 图2 输出信息 2.尝试 【已解决】设置SSH主机:VS Code-正在本地下载 VS Code 服务器…

C++ Primer 第五版 第七章 类

类的基本思想是数据抽象(data abstraction)和封装(encapsulation)。数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程(以及设计)技术。…

Day63|单调栈part02:84.柱状图中最大的矩形

84.柱状图中最大的矩形 本题和接雨水使用单调栈的解法类似,只不过接雨水找的是42. 接雨水 (opens new window)是找每个柱子左右两边第一个大于该柱子高度的柱子,而本题是找每个柱子左右两边第一个小于该柱子的柱子。 class Solution {int largestRecta…

华为热题总结(1)

200,924,739,179,1,20,93 200. 岛屿数量 中等 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围&a…

第五章 Linux部署YUM仓库及NFS共享服务

一、YUM仓库服务 1、YUM概述 基于RPM包构建的软件更新机制可以自动解决依赖关系所有软件包由集中的YUM软件仓库提供 2、准备安装源 (1)yum软件仓库的常用类型 本地源仓库:baseurl:file://在线源仓库:ba…

市场营销的酒店营销策略研究意义

在市场经济条件下,市场营销策略已成为企业经营管理中最重要的组成部分,其在企业管理中的地位日益显现出来。 然而,由于酒店营销环境的特殊性,酒店营销策略研究一直是咱们从业者研究的热点之一。 对于酒店营销策略的研究&#xf…