发现Linux系统运行异常时,可用badblocks命令检测硬盘坏道。首先通过lsblk识别设备,再用sudo badblocks -v /dev/sdb > badblocks_output.txt进行只读扫描;对未挂载分区可执行sudo badblocks -vn /dev/sdb1进行非破坏性读写测试;检测到坏道后,使用sudo e2fsck -l /tmp/badblocks_list.txt /dev/sdb1标记坏块;最后,如需全面检测,可慎用sudo badblocks -wsv /dev/sdb1执行破坏性写入测试,但会清除所有数据。

如果您发现Linux系统运行变慢、文件读取失败或系统频繁崩溃,可能是硬盘出现了坏道。badblocks命令是Linux下用于检测磁盘坏道的实用工具,能够扫描指定设备并报告存在物理损坏的块。以下是使用该命令进行磁盘坏道检查的具体方法。
本文运行环境:Dell XPS 13,Ubuntu 22.04
在不修改磁盘数据的前提下,可以通过只读模式对磁盘进行坏道检测,适用于初步排查问题。
1、打开终端,输入以下命令以列出当前连接的存储设备:
lsblk
确认需要检测的目标磁盘(如 /dev/sdb)。
2、执行只读扫描命令:
sudo badblocks -v /dev/sdb > badblocks_output.txt
其中 -v 表示显示详细进度,结果将保存到当前目录下的 badblocks_output.txt 文件中。
通过非破坏性读写模式可以更准确地识别潜在坏道,但要求目标分区处于未挂载状态,避免影响正在使用的文件系统。
1、使用以下命令卸载目标分区:
sudo umount /dev/sdb1
2、运行非破坏性读写测试:
sudo badblocks -vn /dev/sdb1
-v 显示进度,-n 表示非破坏性写入测试,不会清除原有数据。
检测出坏道后,应将其信息传递给文件系统,以便将这些块标记为不可用,防止数据写入损坏区域。
1、先使用 badblocks 生成坏道列表:
sudo badblocks -v /dev/sdb1 > /tmp/badblocks_list.txt
2、将坏道列表传入 e2fsck 命令进行处理:
sudo e2fsck -l /tmp/badblocks_list.txt /dev/sdb1
-l 参数表示从文件读取坏道列表,并在文件系统中进行标记。
该模式会对磁盘执行写入操作以检测硬件稳定性,会清除所有数据,仅在磁盘准备重新格式化时使用。
1、确保磁盘上无重要数据,并卸载设备:
sudo umount /dev/sdb1
2、执行 destructive 模式扫描:
sudo badblocks -wsv /dev/sdb1 > /tmp/destructive_badblocks.log
-w 启用写入测试,会依次使用多种模式覆写数据,耗时较长但检测更彻底。
以上就是LINUX系统如何检查磁盘坏道_badblocks命令在LINUX下的使用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号