如何读取磁盘的当前坏块列表?

23W*_*23W 6 disk 16.04

命令如下:

sudo badblocks -sv /dev/sda1 > bads.txt
sudo e2fsck -l bads.tst /dev/sda1
Run Code Online (Sandbox Code Playgroud)

或者

sudo e2fsck -ckvt /dev/sda1
Run Code Online (Sandbox Code Playgroud)

可以扫描磁盘/dev/sda1是否有坏块并将它们标记为不可用。但是如何读取当前的坏块列表/dev/sda1呢?

Ale*_*exP 11

回答问题:如果/dev/sda1已经格式化ext3/ext4那么

dumpe2fs -b /dev/sda1
Run Code Online (Sandbox Code Playgroud)

将列出在创建文件系统时保留为“坏”的块。

磁盘本身不会向主机报告坏块,除非它已经用尽了重新分配它们的能力。

现代硬盘,即过去二十年制造的硬盘,将在内部管理坏块列表。当他们从工厂出来时,他们有许多备用块;当检测到坏块时,会使用备用块代替。重新分配的块数在 SMART 参数中报告。如果现代硬盘向主机报告坏块,这意味着可用的备用块已用完,硬盘已到了最后的阶段