我有一个 HyperV 盒子,它在其中一个磁盘上显示坏块。我从diskpart得到这个;
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 148 GB 4096 MB
Disk 1 Online 1863 GB 0 B *
Disk 2 Online 1863 GB 0 B *
Disk 3 Errors 1863 GB 0 B *
我打字;
sel disk 3
offline disk
online disk
现在它显示为在线。够了吗?大概它可以解决一两个坏块。有什么方法可以重新格式化失败并从命令行将其与数组重新同步。我必须立即更换吗?
更新 - 修复后仍显示“Failed Rd”
所以使用备用电缆,我插入了一个全新的附加硬盘。显然我应该将现有单元留在原处,因为它无法修复缺少磁盘的阵列(我不知道为什么 - 这似乎是重点)。然后我做了以下初始化它;
sel disk 4
convert dynamic
然后修复阵列;
sel vol 0
repair disk=4
据我了解,这应该是4
在没有故障磁盘的情况下使用新磁盘来修复阵列3
。正如预期的那样,我明白了;
DISKPART> list vol
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
* Volume 0 E E_RAID5_4TB NTFS RAID-5 3726 GB Rebuild
Volume 1 C C_BOOT(MIR) NTFS Partition 39 GB Healthy System
Volume 2 D D_DATA(MIR) NTFS Partition 52 GB Healthy
Volume 3 G G_IMAGES(MI NTFS Partition 52 GB Healthy Boot
然而,大约 12-24 小时后,阵列恢复到Failed Rd
新磁盘上的 1863 个可用空间。我现在已经尝试了两次,结果相同。我现在正在尝试更简单的recover
命令,但我期待相同的结果。
在过去十年左右的时间里,这一直是我对 RAID 的体验。对于驱动器故障频率相对较小(平均每 2-3 年一次)的个人服务器,我当然认为 Windows RAID 比任何在我之前似乎总是被弃用的硬件控制器更容易。需要用它来恢复。然而,我认为我从来没有成功地用硬件或软件轻松地恢复 RAID 阵列并按照承诺的方式实现梦想。
当(如我所料)recover
命令无法修复磁盘时,我将尝试将新的 HDD 物理放置在故障磁盘的位置并尝试以这种方式使其联机。我似乎隐约记得上次做过类似的事情。
不过,即使是为了提醒我更换物理磁盘的步骤,我也将不胜感激。
RAID 阵列将附带它自己的软件。大多数控制器将允许您在核心下运行软件。如果没有,您可以在 BIOS 下运行一些,而在 CD 上运行一些。对于 RAID 阵列,您通常需要引入一个新硬盘作为热备件,然后它会将其添加到 RAID 本身并重新同步。更改的硬盘驱动器现在是关于 RAID 阵列的新硬盘驱动器。否则,您可能会丢失整个阵列。阅读有关 RAID 控制器的 Fine Manual。
因此,按照我的经验,恢复过程似乎不适用于记录的方式。
我通过将故障磁盘克隆到一个全新的磁盘然后物理插入它来代替故障磁盘来解决它。然后,我发出了 diskpart
recover
命令(我相信它是repair
.我设法在没有 ISO 引导恢复 CD 和外部硬件的情况下做到这一点,如下所示;
1)插入新磁盘(使用备用端口)。并记下磁盘 ID。确保它处于离线状态。
2) 干净地使 RAID 卷脱机;选择卷 0
3) 找到造成故障的物理磁盘。
detail vol
将告诉您卷中有哪些磁盘,list vol
将显示哪个磁盘 ID 有错误。我所有的磁盘都是相同的型号,所以我将 SATA 电缆拔出,等了几秒钟,然后list disk
再次发出,看看哪个磁盘 ID 丢失了。并记下了这一点。然后在我的情况下;4)为了克隆磁盘足以让Windows误以为新磁盘只是修复过的旧磁盘,我怀疑它需要具有相同的磁盘“签名”,所以我需要一个低级扇区副本。
大多数使用 VSS 或复制文件的克隆工具都不会这样做,所以我发现了这个:http ://hddguru.com/software/HDD-Raw-Copy-Tool/它非常棒,并且有一个看起来像的零安装 EXE它被设计为在 WinPE 下运行,因此在从命令行启动时可以在 HyperV 服务器(所以大概是服务器核心)下完美运行。
然而,我再次迫切需要知道哪些磁盘是源磁盘和目标磁盘,但该工具显示磁盘型号和序列号而不是磁盘部件 ID,因此我使用了相同的技巧,即拔出我的(现在已知的)HDD 上的物理电缆并重新启动HDD Guru 工具,直到我写下我需要从中复制的两个磁盘的标识符。
然后我只运行了即使在读取错误后仍继续的副本。我怀疑我只需要复制前几个扇区,但无论如何我让它运行完成(12 小时)。
5) 现在拉出两条 SATA 电缆,移除故障驱动器,然后将新克隆的磁盘插回原来的位置。重新联机后,Windows 应该会在它认为故障磁盘所在的同一插槽中看到具有相同签名的驱动器。
6)然后只需重建阵列(另外12小时)并将其重新上线即可;
12小时后……
然后我重新启动,因为它比重新启动我停止的所有服务(即 Hyper-v)更容易;
当我再次查看时,Hyper-V 现在正在运行一个健康的磁盘,并且我的虚拟机已恢复。似乎 HyperV 不会在故障磁盘阵列上运行虚拟机。看起来我可能在其中一个 VHD 上损坏了驱动器,但这是另一回事。
令人难以置信的是,RAID 恢复过程并没有更智能,但我注意到,从 Windows 备份到 ISA 备份/恢复这些年来,即使使用 Windows 备份产品,它们似乎也假设您将恢复完全相同的硬件,即使该硬件有故障 - 这使得备份几乎毫无意义。
现在我已经恢复正常运行了——我希望这份成绩单可以帮助处于类似位置的其他人。