我有一个基于Linux的软件RAID 5arrays。 SMART刚刚开始给我发电子邮件,抱怨5个磁盘中有一个磁盘的当前扇区数为9,同时也是9个离线无法纠正的数字。我做了大量的谷歌search,似乎如果我用零写扇区,磁盘会重新映射,一切都会好的。
我确实想跟踪哪些文件受到了影响,但是我在映射时遇到了困难,因为我有5块RAID 5的磁盘,顶部有LUKSencryption,最后是LVM。 我所做的研究都没有帮助我解决这个问题。
最后,我的计划是简单地使驱动器失效,并重新添加它,使arrays重新构build。
在我这样做之前,我在数组中的另一个磁盘上做了很长时间的testing。 除了重新分配部门总数为82,82,36,764人之外,所有人都是完美的。
所以5个驱动器中有2个有问题。
在这一点上,对于尝试清除这些错误的最好方法,如果完全可能的话,我有点困惑。
有人有build议吗? 我很高兴能够在必要时replace发生故障的驱动器,但是希望能够首先获取数据。
这将是一般的过程。 如果您还不知道这些命令,请参阅mdraid
手册页和您自己的本地configuration以了解要使用的确切命令。
祈祷。
确认您的备份是最新的。 必要时手动运行。 如果你没有备份, 现在就做一个备份。
使挂起扇区和脱机不可纠正的扇区失效。 另一个带有重新分配扇区的驱动器将寿命更长一点,希望能够完成这个过程,但是这个驱动器正处于可能会导致整个arrays死亡的地步。
更换驱动器。 在硬件上。 将新驱动器分区并将其添加到mdraidarrays。
重buildarrays并等待重build完成。 在较新版本的mdraid中,重build将自动开始。
用第二个驱动器重复这个过程。
您可以使用命令强制检查和修复arrays(以root身份)。 修改您的需求(插入您的数组名称):
echo repair > /sys/block/md0/md/sync_action
当然,在开始之前,您确实需要创build数据的备份。 你应该考虑更换一个新的损坏的硬盘。
您可以使用类似命令将分区模式从磁盘复制到磁盘
sfdisk -d /dev/sda | sfdisk /dev/sdb
当然,在执行之前请仔细检查磁盘的名称。 您不想擦除磁盘上的分区。
将分区/磁盘添加到数组在mdadm
手册中进行了介绍。 祝你好运。