Linux badblocks下令教程:如何检测和处理Linux磁盘的坏块(附案例详解和注 ...

打印 上一主题 下一主题

主题 972|帖子 972|积分 2918

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Linux badblocks下令介绍

badblocks是一个在Linux中用于搜索设备上坏块的下令。它通常用于搜索磁盘分区上的坏块。默认情况下,它以非破坏性只读模式运行。
Linux badblocks下令适用的Linux版本

badblocks下令在大多数Linux发行版中都可以使用,包括Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian等。如果在某些Linux发行版中无法使用,通常可以通过包管理器(如apt、yum、dnf或pacman等)来安装。例如,在Debian或Ubuntu上,可以使用以下下令来安装:
  1. [linux@bashcommandnotfound.cn ~]$ sudo apt-get install e2fsprogs
复制代码
在RedHat/CentOS 7上,可以使用以下下令来安装:
  1. [linux@bashcommandnotfound.cn ~]$ sudo yum install e2fsprogs
复制代码
在RedHat/CentOS 8或Fedora上,可以使用以下下令来安装:
  1. [linux@bashcommandnotfound.cn ~]$ sudo dnf install e2fsprogs
复制代码
在Arch Linux上,可以使用以下下令来安装:
  1. [linux@bashcommandnotfound.cn ~]$ sudo pacman -S e2fsprogs
复制代码
Linux badblocks下令的基本语法

badblocks下令的基本语法如下:
  1. 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是对应设备的特殊文件(例如/dev/hdc1)。
Linux badblocks下令的常用选项或参数说明

以下是badblocks下令的一些常用选项:
选项说明-b block_size指定以字节为单位的块大小(默认为1024字节)-c blocks_at_once指定一次测试的块数(默认为64块)-d delay_factor_between_reads如果在读取操纵中没有遇到错误,将在读取之间耽误-e max_bad_blocks指定在中断测试之前的最大坏块数-i input_file提供一个输入文件,该文件包罗设备中已知的坏块列表-o output_file将坏块列表写入文件,而不是标准输出-p num_passes指定要执行的传递次数-s表现测试的当进步度,表现已扫描的块的百分比-v详细模式-w在设备上执行读写测试-n在设备上执行非破坏性的读写测试-f强制在设备上执行测试,纵然设备已挂载 Linux badblocks下令实例详解

以下是一些badblocks下令的使用实例:
实例1:使用badblocks下令扫描设备

在这个例子中,我们将使用badblocks下令扫描设备/dev/sda1:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks /dev/sda1
复制代码
这将扫描/dev/sda1设备上的坏块,并将找到的任何坏块打印到标准输出。
实例2:使用badblocks下令以详细模式扫描设备

在这个例子中,我们将使用-v选项以详细模式运行badblocks下令:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks -v /dev/sda1
复制代码
这将以详细模式扫描/dev/sda1设备上的坏块。详细模式将打印正在进行的操纵的详细信息。
实例3:使用badblocks下令并将结果写入文件

在这个例子中,我们将使用-o选项将badblocks下令的结果写入文件:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks -o badblocks.txt /dev/sda1
复制代码
这将扫描/dev/sda1设备上的坏块,并将找到的坏块写入badblocks.txt文件。
实例4:使用badblocks下令以只读模式扫描设备

在这个例子中,我们将使用-n选项以只读模式运行badblocks下令:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks -n /dev/sda1
复制代码
这将以只读模式扫描/dev/sda1设备上的坏块。只读模式将不会改变设备上的数据。
实例5:使用badblocks下令并表现进度

在这个例子中,我们将使用-s选项表现badblocks下令的进度:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks -s /dev/sda1
复制代码
这将扫描/dev/sda1设备上的坏块,并表现已扫描的块的百分比。
实例6:使用badblocks下令并指定块大小

在这个例子中,我们将使用-b选项指定块大小:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks -b 2048 /dev/sda1
复制代码
这将以2048字节为单位的块大小扫描/dev/sda1设备上的坏块。
实例7:使用badblocks下令并指定一次测试的块数

在这个例子中,我们将使用-c选项指定一次测试的块数:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks -c 128 /dev/sda1
复制代码
这将一次测试128个块扫描/dev/sda1设备上的坏块。
实例8:使用badblocks下令并指定在中断测试之前的最大坏块数

在这个例子中,我们将使用-e选项指定在中断测试之前的最大坏块数:
  1. [linux@bashcommandnotfound.cn ~]$ sudo badblocks -e 10 /dev/sda1
复制代码
这将扫描/dev/sda1设备上的坏块,如果找到的坏块数达到10个,将中断测试。
Linux badblocks下令的注意事项



  • badblocks下令默认情况下以非破坏性只读模式运行。
  • 如果要在设备上执行读写测试,可以使用-w选项,但请注意,这将擦除设备上的数据。
  • 如果设备已挂载,badblocks下令通常不会在设备上执行读写测试或非破坏性读写测试。可以使用-f选项强制执行测试,但这可能会导致系统崩溃和/或破坏文件系统。
  • 如果出现bash: badblocks: command not found错误,可能是由于e2fsprogs包没有安装。可以按照上面的指示安装此包。
Linux badblocks相干下令

以下是一些与badblocks下令相干的下令:


  • fsck下令:用于查抄和修复文件系统
  • e2fsck下令:用于查抄ext2/ext3/ext4文件系统
  • mkfs下令:用于创建文件系统
  • dd下令:用于复制和转换文件
  • fdisk下令:用于操纵磁盘分区表
  • parted下令:用于磁盘分区和管理
  • df下令:用于表现磁盘空间使用情况
  • du下令:用于估计和表现文件和目录的磁盘使用情况
  • smartctl下令:用于控制和监视存储系统
  • hdparm下令:用于获取和设置SATA/IDE设备参数

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

拉不拉稀肚拉稀

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表