远程系统的文件系统在“mdadm –grow 2 / dev / md0”后消失了?

昨天,我又给系统增加了一个500GB的硬盘。 这个系统安装成只有一个驱动器的RAID-1系统,因为我没有另一个驱动器。

在最后添加第二个磁盘之后,我运行“sfdisk -d / dev / sda | sfdisk –force / dev / sdb”,就像我经常做的那样。

然后运行“mdadm –add / dev / md0 / dev / sdb1”,RAID开始同步。

完成后,原来新分区被添加为备用,而不是作为主动设备。 这似乎发生了,因为RAID 1设备认为它只有一个活动设备的空间,因为我做了奇怪的安装。

所以,今天我运行了“mdadm –grow –raid-devices 2 / dev / md0”(注意我没有在'2'之前加'=')。

立即,我的整个文件系统消失了!

我仍然login到ssh会话,但是我仅限于bash的内置命令,这是相当痛苦的。

我编了一个bash-builtin-cat命令,仍然可以捕捉一些文件。 / proc / mdstat看起来很好,并且显示,新驱动器现在实际上是活动的。

/ var / log / messages(奇怪的是,即使所有其他文件都不可访问,仍然可以访问)给了我成千上万个:

尝试访问超出设备md0:rw = 0,希望= 868055984,限制= 4结束

('想要'之后的数字是变化的)。 这些消息都在运行mdadm –grow之后的几秒钟内生成,然后停止。

如上所述,这是一个远程机器。

  • 这里发生了什么?
  • 无论如何,无论如何是撤消 – 是否成立?
  • 我可以从RAID设备中删除新磁盘,只是回显隐藏/ proc文件(因为没有findmdadm)?
  • 我应该触发SysRq重新启动,并希望最好的?

那么,硬重启确实解决了这个问题,很奇怪。

重新启动后,计算机正常启动,现在又重新构buildRAID 1arrays,并将附加驱动器再次标记为备用。

所以看起来增长命令立即使文件系统和磁盘访问消失 – 很快,即使增长命令的效果也没有写入磁盘。

奇怪。

编辑:原来的驱动器上的数据有坏扇区,所以第一次初始同步失败,并且mdadm把新的(不完全同步)驱动器在'备用'模式。 我的临时解决scheme是使用hdparm(谷歌“hdparm写入坏扇区”)将零写入坏扇区(这是你不应该这样做的!)。 出于某种奇怪的原因,这个工作(即使有一点数据丢失),arrays设法完成其初始同步。 现在,我可以拉动坏的驱动器,并将新驱动器同步到更新的驱动器。