badblocks 的手册页似乎没有特别提到输出中的三个数字的含义:
通过完成,发现 7 个坏块(7/0/0 错误)
通过完成,发现 120 个坏块(0/0/120 错误)
我猜是“读/写/比较时出错”。有人可以启发我吗?
我需要在新驱动器上进行破坏性 (rw) 测试,并在从 RAID 阵列中脱落的驱动器上进行只读测试。我想看看它是否发现问题以及它进行了多远。
我正在运行 badblocks 来检查外部驱动器上的坏段,并且已经过了大约一个小时还没有完成。现在,我需要去考虑取消。这有什么风险吗?我应该避免这种情况吗?
显然,我需要从头开始;我只想知道中途中止是否有风险。
tl; dr:我将如何修复 RAID1 阵列中 1 个磁盘上的坏块?
但是请阅读整篇文章,了解我已经尝试过的内容以及我的方法中可能存在的错误。我已经尝试尽可能详细,我真的希望得到一些反馈
这是我的情况:我在 RAID1 阵列中设置了两个 2TB 磁盘(相同型号)mdadm。大约 6 个月前,当 SMART 报告它时,我注意到了第一个坏块。今天我注意到了更多,现在正在尝试修复它。
这个 HOWTO 页面似乎是每个人都链接到的一篇文章来修复 SMART 报告的坏块。这是一个很棒的页面,充满了信息,但是它已经过时了并且没有解决我的特定设置。这是我的配置的不同之处:
所以,让我们开始吧。这是我所做的,但是它似乎不起作用。请随时仔细检查我的计算和方法是否有错误。磁盘报告错误是/dev/sda:
# smartctl -l selftest /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-3.4.4-2-ARCH] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: …Run Code Online (Sandbox Code Playgroud) 当您使用 ext4 时,您可以使用命令检查坏块e2fsck -c /dev/sda1 # or whatever。这将通过将它们添加到坏块 inode 来“黑名单”这些块。
LVM2 物理卷的等效项是什么?它的文件系统是 ext4,但据推测,当底层 LVM 设置在物理磁盘上移动数据时,检测到的坏块将变得无效。
换句话说,如何检查 LVM 中不使用的坏块?
我的 Ubuntu 13.10 系统在过去一天左右的时间里表现非常糟糕。查看内核日志,似乎小于 1 年的 3TB SATA 磁盘的特定扇区存在问题:
Nov 4 20:54:04 mediaserver kernel: [10893.039180] ata4.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Nov 4 20:54:04 mediaserver kernel: [10893.039187] ata4.01: BMDMA stat 0x65
Nov 4 20:54:04 mediaserver kernel: [10893.039193] ata4.01: failed command: READ DMA EXT
Nov 4 20:54:04 mediaserver kernel: [10893.039202] ata4.01: cmd 25/00:08:f8:3f:83/00:00:af:00:00/f0 tag 0 dma 4096 in
Nov 4 20:54:04 mediaserver kernel: [10893.039202] res 51/40:00:f8:3f:83/40:00:af:00:00/10 Emask 0x9 (media error)
Nov 4 20:54:04 mediaserver kernel: [10893.039207] ata4.01: …Run Code Online (Sandbox Code Playgroud) 我有一个我不完全信任的硬盘,但仍然想使用(burstcoin 挖掘,如果我在文件中得到一个坏块,我只会损失几美分)。
我如何告诉 btrfs 将某些块标记为坏的(例如来自badblocks输出)?
如果我不能将块预先标记为坏块btrfs scrub,那么如果使用它们的文件被删除,将来是否会避免任何由 识别出的坏块?
如何减少 IO 等待时间和重试时间,以便操作系统不会不断尝试写入故障驱动器?
我有一个系统,用于制作演示内容的副本,这些副本可以借给客户使用到常规 SATA 台式机硬盘上。我们通过 SAS 一次连接多个驱动器,并使用脚本将内容复制到它们。
因为驱动器被借出,偶尔有些会损坏,但我不知道它们已损坏,所以下次在复制操作中重新使用该驱动器时,它会减慢其他驱动器的速度,因为系统会重试对该驱动器的 IO。有时可能需要几个小时才能注意到坏驱动器并将其删除。移除驱动器后,其余驱动器开始以正常速度写入。
我不在乎恢复坏驱动器。我只需要清除它们,这样它们就不会减慢其他一切。
我也在研究坏块和 smartmontools,并考虑在我开始编写之前对驱动器进行预检查。
操作系统:Ubuntu Linux (12.04 lts)
我有一个新驱动器,如果smartctl检测到坏扇区,我很困惑。短自检和扩展自检completed without error。但是Error Log指示Uncorrectable error in data为96 sectors。
这是smartctl输出:
smartctl 5.41 2011-06-09 r3365 [i686-linux-3.2.0-52-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: Hitachi Deskstar T7K500
Device Model: Hitachi HDT725025VLA380
Serial Number: VFL104R73X993Z
LU WWN Device Id: 5 000cca 316f723ca
Firmware Version: V5DOA73A
User Capacity: 250,059,350,016 bytes [250 GB]
Sector Size: 512 bytes logical/physical
Device is: In smartctl database [for …Run Code Online (Sandbox Code Playgroud) 我找不到任何关于坏块实际上认为坏块的信息。我已阅读手册页并查看了此处的一堆问题,但找不到具体内容。另外,坏块有多好?我应该相信它的结果吗?我的公司历来在 Hirens Boot CD 上使用 Victoria 来测试硬盘,但这在较新的计算机上并不总是一个好的选择。