===============================================
2017/4/17_第1次修改 ccb_warlock
===============================================
工作中需要使用virtual box和VMware在本地搭虚拟环境,最近遇到了安装失败的问题,找了半天网上的解决方案都不能明确快速解决问题,故我自己解决之后把我的解决方案提供给需要帮助的人。
起因是公司的机械硬盘磁头出问题(应该是运行时间较长),导致经常出现寻道错误导致任务管理器卡死的现象,发现问题之后申请换了一块新的机械。
由于公司机器采用SSD+HDD的方式,故系统没有重装,但是当安装到virtual box时出现了"Invalid Drive:F:"(如图1-1,原先程序安装在F盘目录下,但是重新分区后没有F盘了)。
图1-1 安装报"Invalid Drive:F:"
原本想法是插上原来的硬盘通过这个目录的校验,可是那块硬盘读写已经存在严重问题,故在网上找到了解决该问题的思路:安装程序找了注册表中原安装路径,但是由于新的分区没有F盘,所以导致安装程序报错(VMware也有该问题,但是不知道这个解决方案是不是也能解决)。
按照这个思路,只要将原先注册表记录删掉,安装程序找不到该记录,那么默认以为是新安装。
接着就是根据图1-2来删注册表记录了(注册表打开方式:快捷键win+R打开运行,输入regedit回车;
查询弹窗打开方式:“编辑”-“查找”)。
图1-2 注册表查询
结果发现注册表中相关记录实在太多了,但是没办法网上大部分教程都不起作用,只好硬着头皮删(这也是促使我写这篇文章的原因)。
终于,苦劳换来了回报,当删到"HKEY_LOCAL_MACHINE - SOFTWARE - Oracle"中的"VirtualBox"(图1-3),再次安装就不报错了。
图1-3 要删的virtual box的注册表记录
总结:当原先的安装盘不存在时,要解决安装虚拟机报"Invalid Drive:F:"(具体盘符根据实际情况,我这原路径F盘重新分区后不存在了),可以尝试删除注册表路径"HKEY_LOCAL_MACHINE - SOFTWARE - Oracle"里的 " VirtualBox"。
思考:可能是出于技术考虑安装程序需要获取原路径覆盖安装,但是安装程序设计时应该要考虑这种会导致安装死锁的情况,这个问题在以后制作安装程序时对我很有警示作用。