修复链断裂的虚拟磁盘

by acdzh · 2020年2月29日16:0 · 113 WORDS  ·  ~ 1 mins reading time · 0  Visitors | 

这是一篇水文, 仅作记录之用

本文最后修改于 2020-03-01 03:48, 互联网日新月异, 请注意内容时效.

刚刚想在 tim 里搜索一个月前发过的一条消息, 结果搜索结果是空的. 去消息管理器中看了一眼, 发现从 2019 年 10 月份, 到 2 月 15 日左右的消息全都不见了. (具体时间未作记录, 不过也差不多.

回想了一下, 之前 tim 一直在 Hyper-v 虚拟机里, 2 月15 日左右, 我在物理机上装了 tim, 并打算把数据迁移出来. 虚拟机的 C 盘通过文件共享映射到了物理机的 Z 盘, 本来打算直接复制文件夹 Z:\Users\xxx\Documents\Tencent Files 至物理机下同样位置, 然后当时嫌这样太慢, 于是直接把虚拟机的虚拟磁盘挂载到物理机上了.

185153

问题就出在这里..当时一时糊涂, 直接把 WinLTSC.vhdx 直接挂上了..这个虚拟机有两个快照, WinLTSC.vhdx 中的文件实际上停留在了去年 10 月份....换句话说, 我迁移的文件实际上是去年 10 月份的版本...而在差异磁盘中的新版本被我忽视了...

185213

ok, 那就启动虚拟机, 把较新的文件迁移出来就 ok 了. 不过问题来了, 另两个差异虚拟磁盘文件连不上父虚拟磁盘了.....

启动虚拟机会有磁盘错误:

185230

当时没有截图, 此为网图

emmm.. 因为挂载, WinLTSC.vhdx 的id变掉了 (哪怕是仅读取也不行), 所以其子磁盘指向它的链断掉了....

遂去该文件夹尝试手动把链挂上:

sudo set-vhd -Path '.\WinLTSC_9512C134-2C43-4EFA-8EDF-D398DB4C34CE.avhdx' -ParentPath '.\WinLTSC.vhdx'

结果gg:

set-vhd : 无法为虚拟磁盘设置新的父磁盘。 在差异虚拟硬盘和父磁盘之间存在 ID 不匹配。

看来这是行不通了.

去 Hyper-v 虚拟机设置里, 对磁盘进行检查, 结果报错找不到磁盘

185321

网图

网上的解决方案大多都是让点击检查, 之后根据检测结果的提示, 进行重新连接....显然这么是行不通的......比如这个

Hyper-V初涉_虚拟磁盘链错误的解决方案 - 绝对零度0o - 博客园 ​ 实际上, 对磁盘进行检查是没有必要的..想要重新连接的话, 直接编辑就可以了, 没必要等检查的结果出来, 根据建议跳转到编辑选项卡.

但是一般情况下编辑是被禁止的 (这也是其他人的文章要求进行检查的原因):

185846

这时候点击浏览, 随便换一块磁盘, 之后再换回来, 编辑就为可用状态了.

185856

之后进行重新链接即可.

当然最重要的还是, 如果一块虚拟磁盘已经有了子差异磁盘, 就不要在虚拟机外对其进行操作了.

历史记录

VersionActionTime
1.0Init2020-03-01
1.0迁移至 blog2020-04-28 18:43
随便写写 © 2022 acdzh