我有一个 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
现在它只是显示为在线。这样够了吗?大概它可以解决一两个坏块的问题。有没有办法重新格式化失败的磁盘并从命令行重新将其与阵列同步。我是否必须立即更换它?
更新 - 修复后仍显示“失败路程”
因此,我使用备用电缆插入了一个全新的附加硬盘。显然,我应该保留现有设备,因为它无法修复缺少磁盘的阵列(我不知道为什么 - 这似乎是重点)。然后我做了以下操作来初始化它;
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
命令无法修复磁盘时,我将尝试将新硬盘物理地放置在故障磁盘的位置,并尝试通过这种方式使其联机。我似乎依稀记得上次做过类似的事情。
尽管如此,如果能得到关于这种情况的进一步建议,我将非常感激,即使只是提醒我更换物理磁盘的步骤。
答案1
RAID 阵列将附带自己的软件。大多数控制器都允许您在核心下运行软件。如果不行,您可以在 BIOS 下运行一些软件,也可以从 CD 中运行一些软件。使用 RAID 阵列时,您通常需要引入一个新硬盘作为热备用,然后它会将其添加到 RAID 本身并重新同步。对于 RAID 阵列而言,更换的硬盘现在是新硬盘。否则,您可能会丢失整个阵列。阅读有关 RAID 控制器的《精细手册》。
答案2
因此,根据我的经验,恢复过程似乎并不按照记录的方式进行。
我通过将故障磁盘克隆到全新磁盘,然后将其物理插入故障磁盘来解决这个问题。然后,我发出了 diskpartrecover
命令(我相信这是 的简写)repair
。
我设法在没有 ISO 启动恢复 CD 和外部硬件的情况下完成了此操作,如下所示;
1) 插入新磁盘(使用备用端口)。并记下磁盘 ID。确保它处于脱机状态。
2)彻底使 RAID 卷脱机;sel vol 0
REM Remove drive letter association - you may need to shut...
REM ...down any services using this
remove
offline vol
3) 找到导致故障的物理磁盘。detail vol
将告诉您卷中有哪些磁盘,list vol
将显示哪个磁盘 ID 有错误。我的所有磁盘都是相同型号,因此我物理地拔出 SATA 电缆,等待几秒钟,然后list disk
再次发出以查看缺少哪个磁盘 ID。并记下这一点。然后就我的情况而言;
sel disk 3
offline disk
4)为了充分克隆磁盘,使 Windows 误以为新磁盘只是修复后的旧磁盘,我怀疑它需要具有相同的磁盘“签名”,因此我需要一个低级扇区副本。
大多数使用 VSS 或复制文件的克隆工具都无法做到这一点,因此我发现了这个:http://hddguru.com/software/HDD-Raw-Copy-Tool/它非常棒,并且具有零安装 EXE,看起来它是设计为在 WinPE 下运行,因此从命令行启动时在 HyperV 服务器(因此大概也是 Server Core)下完美运行。
但是,我迫切需要知道哪些磁盘是源磁盘和目标磁盘,但是该工具显示的是磁盘型号和序列号而不是磁盘部件 ID,因此我使用相同的技巧,拔出我(现在已知的)HDD 上的物理电缆并重新启动 HDD Guru 工具,直到我写下我需要从中复制的两个磁盘的标识符。
然后我就运行了复制,即使出现读取错误,复制仍继续。我怀疑我只需要复制前几个扇区,但我还是让它运行完成(12 小时)。
5) 现在拔出两根 SATA 电缆,移除故障驱动器,并将新克隆的磁盘插回原位。恢复在线后,Windows 应该会在它认为故障磁盘所在的同一插槽中看到一个具有相同签名的驱动器。
6)然后只需重建阵列(再过 12 个小时)并使其重新上线;
sel disk 3
online disk
sel vol 0
online vol
recover
12小时后……
sel vol 0
assign letter=e
然后我重新启动了,因为这比重新启动我已停止的所有服务(即 Hyper-v)更容易;
c:\> shutdown /r /t 0
当我再次查看时,Hyper-V 已在运行,磁盘状况良好,我的虚拟机已恢复。看来 HyperV 不会在故障磁盘阵列上运行虚拟机。看来我的某个 VHD 上的驱动器可能已损坏,但那是另外一回事。
令人难以置信的是,RAID 恢复过程竟然没有更智能一些,但我注意到,多年来,即使是使用 Windows 备份产品(从 Windows 备份到 ISA 备份/恢复),它们似乎都假设您将恢复完全相同的硬件,即使该硬件有故障,这也使备份变得毫无意义。
现在我已经恢复正常了——我希望这份成绩单能够帮助到处于类似境地的其他人。