介绍
在本实验中,我们将探索 Linux 的 badblocks
命令,这是一个用于扫描磁盘坏块的实用工具。badblocks
命令可以帮助识别并标记磁盘上的坏扇区,从而提高存储设备的可靠性。我们将学习如何对磁盘执行非破坏性的只读扫描以检测坏块,并在必要时修复它们。badblocks
命令是维护存储系统健康的有力工具。
在本实验中,我们将探索 Linux 的 badblocks
命令,这是一个用于扫描磁盘坏块的实用工具。badblocks
命令可以帮助识别并标记磁盘上的坏扇区,从而提高存储设备的可靠性。我们将学习如何对磁盘执行非破坏性的只读扫描以检测坏块,并在必要时修复它们。badblocks
命令是维护存储系统健康的有力工具。
在这一步中,我们将探索 badblocks
命令,这是一个用于扫描磁盘坏块的 Linux 实用工具。badblocks
命令可用于识别并标记磁盘上的坏扇区,从而帮助防止数据丢失并提高存储设备的可靠性。
首先,让我们检查系统中安装的 badblocks
命令版本:
badblocks --version
示例输出:
badblocks 1.46.2 (11-Nov-2022)
badblocks
命令提供了多个选项,允许你自定义扫描过程。一些最常用的选项包括:
-b
:指定块大小(以字节为单位,默认值为 1024 字节)-c
:指定每次检查的块数(默认值为 64)-s
:显示扫描进度状态-t
:指定测试类型(非破坏性读写、非破坏性只读或破坏性测试)-v
:启用详细输出要对磁盘执行非破坏性只读扫描,可以使用以下命令:
sudo badblocks -v /dev/sdb
该命令将扫描 /dev/sdb
磁盘上的坏块,并显示扫描进度。-v
选项启用详细输出,提供有关扫描的更多详细信息。
在这一步中,我们将学习如何对磁盘进行全面扫描以识别坏块。
首先,让我们确定要扫描的磁盘。你可以使用 lsblk
命令列出系统中的所有块设备:
sudo lsblk
示例输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
└─sda1 8:1 0 100G 0 part /
sdb 8:16 0 20G 0 disk
在这个示例中,我们要扫描的磁盘是 /dev/sdb
,这是一个 20GB 的磁盘。
要对磁盘执行非破坏性只读扫描,可以使用以下命令:
sudo badblocks -v /dev/sdb
该命令将扫描 /dev/sdb
磁盘上的坏块,并显示扫描进度。-v
选项启用详细输出,提供有关扫描的更多详细信息。
示例输出:
Checking blocks 0 to 41943039
Checking for bad blocks (read-only test)
Pass completed, 0 bad blocks found.
输出显示扫描未在 /dev/sdb
磁盘上发现任何坏块。
如果扫描发现坏块,你可以使用 -o
选项将坏块列表保存到文件中:
sudo badblocks -v -o badblocks.txt /dev/sdb
这将把坏块列表保存到当前目录下名为 badblocks.txt
的文件中。
在上一步中,我们学习了如何使用 badblocks
命令扫描磁盘坏块。在这一步中,我们将学习如何修复磁盘上的坏块。
要修复坏块,我们可以使用 e2fsck
命令,这是一个用于检查和修复 ext2、ext3 和 ext4 文件系统的工具。以下是使用它修复磁盘坏块的步骤:
确定要修复的磁盘的文件系统类型。你可以使用 lsblk
命令列出系统中的块设备并识别文件系统类型:
sudo lsblk -f
示例输出:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda1 ext4 c4a1d8d1-c3d3-4d4f-a6b0-e0c8c6a6d8d7 /
sdb
在这个示例中,磁盘 /dev/sdb
没有文件系统,因此我们无法使用 e2fsck
修复它。
如果磁盘具有 ext2、ext3 或 ext4 文件系统,你可以使用 e2fsck
命令修复坏块:
sudo e2fsck -c /dev/sdb
该命令将扫描 /dev/sdb
磁盘上的坏块并将其标记为不可用,防止它们用于数据存储。
示例输出:
e2fsck 1.46.2 (11-Nov-2022)
Pass 1: Checking inodes, blocks, and sizes
Checking for bad blocks (read-only test)
Pass completed, 0 bad blocks found.
输出显示 e2fsck
命令未在 /dev/sdb
磁盘上发现任何坏块。
如果 e2fsck
命令发现坏块,它会将其标记为不可用,并防止它们用于数据存储。你可以继续使用标记了坏块的磁盘,或者如果坏块数量过多,考虑更换磁盘。
在本实验中,我们学习了 Linux 的 badblocks
命令,该命令用于扫描磁盘坏块。我们首先探索了 badblocks
命令提供的不同选项,例如指定块大小、每次检查的块数以及执行的测试类型。接着,我们学习了如何对磁盘执行非破坏性只读扫描以识别坏块。最后,我们讨论了如何使用 badblocks
命令修复磁盘上的坏块。