Linux: 检测磁盘坏块 你得会吧!

简介: Linux: 检测磁盘坏块 你得会吧!

引言

什么是坏扇区/坏块?它指的是磁盘驱动器或闪存上某个区域无法进行读写操作,通常是由于磁盘表面有永久性物理损伤或者闪存晶体管出现故障

坏扇区越来越多的话,会对存储设备的性能产生严重影响,还会减少存储容量,甚至可能导致硬件彻底损坏。

另外,一旦发现坏块,就应该考虑更换新的磁盘驱动器,或者把坏块标记为不可用。

所以,本文章会介绍一些方法,帮助你通过一些磁盘扫描工具来检查 Linux 磁盘驱动器或闪存上是否存在坏扇区。具体方法如下:

badblocks

  • 使用 badblocks 工具来检查坏扇区

badblocks 工具可以扫描硬盘或外部驱动器等存储设备,查找其中的坏扇区。设备通常以文件形式显示,比如 /dev/sdc 或 /dev/sda。

  1. 第一步:列出所有磁盘和分区 首先,使用带有超级用户权限的 fdisk 命令,查看所有磁盘驱动器或闪存以及它们的分区信息:
sudo fdisk -l

这将帮助您确定正确的设备名称进行扫描。

  1. 第二步:然后扫描您的Linux磁盘驱动器以检查不良扇区/块:
sudo badblocks -v /dev/sda10 > badsectors.txt

在刚才提到的命令里,badblocks 正在检查 /dev/sda10 这个设备(注意要换成你实际使用的设备名称),-v 参数可以让它显示操作过程中的详细信息。同时,操作结果会通过输出重定向保存到 badsectors.txt 文件里。

如果在磁盘驱动器中发现了坏扇区,需要先卸载磁盘,然后按照以下方法告诉操作系统不要对这些报告的扇区进行写入操作。

  1. 第三步:把坏扇区标记为不可用 你需要使用 e2fsck(针对 ext2/ext3/ext4 文件系统)或者 fsck 命令,结合 badsectors.txt 文件和设备文件,具体命令如下。
  • 针对 ext2/ext3/ext4 文件系统:
sudo e2fsck -l badsectors.txt /dev/sda10
  • 对于其他文件系统:
sudo fsck -l badsectors.txt /dev/sda10

Smartmontools

  • Smartmontools检查磁盘健康状况(推荐)

这种方法更适合现代磁盘(包括 ATA/SATA 和 SCSI/SAS 硬盘以及固态硬盘),因为这些磁盘都内置了 S.M.A.R.T(自监测、分析和报告技术)系统。该系统可以检测、报告并记录磁盘的健康状况,帮助你提前发现可能出现的硬件故障。

  1. 第一步:在 Linux 上安装 smartmontools可以通过运行以下命令来安装
sudo apt install smartmontools  #For Debian-based
sudo dnf install smartmontools  #For RHEL-based
  1. 第二步:用 smartctl 进行健康检查

安装完成后,就可以使用 smartctl 了,它用于控制磁盘内置的 S.M.A.R.T 系统。你可以查看它的手册页或帮助页,具体方法如下:

man smartctl
smartctl -h
  1. 第三步:运行基本健康测试

接下来,运行 smartctl 命令,并指定你要检查的特定设备。在命令中,使用 -H 或 --health 标志,可以显示 S.M.A.R.T 系统的总体健康自检测试结果。

sudo smartctl -H /dev/sda10

上面的结果显示,你的硬盘目前状态良好,暂时不会出现硬件故障。

总结

在本文中,我们介绍了如何通过 badblockssmartmontools 在 Linux 磁盘上检测和处理坏扇区。监控存储设备的健康状况非常重要,而这些工具让这一过程变得简单明了。

相关文章
|
9月前
|
Linux
在线对Linux进行磁盘扩容的技术指南。
综上所述,Linux磁盘扩容的过程,重要的不仅是技术,更是对每一步骤的深刻理解和投入的爱心。只要手握正确的工具,我们不仅能满足"孩子"的成长需求,还能享受其中的乐趣和成就。
573 10
|
10月前
|
监控 固态存储 Linux
如何判断Linux磁盘是SSD还是HDD?
总的来说,判断磁盘是SSD还是HDD并不复杂,只需要使用正确的命令和方法,就可以轻松得到结果。希望这些信息对你有所帮助,如果你还有其他问题,欢迎随时提问。
1144 15
|
11月前
|
Linux
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
1167 10
|
Ubuntu Linux 网络安全
Linux磁盘挂接教程
Linux磁盘挂接教程
258 14
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
Unix Linux 对象存储
Linux 磁盘管理
Linux 磁盘管理
173 1
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
224 0
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
214 0
|
5月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
627 1
二、Linux文本处理与文件操作核心命令
|
5月前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
403 137