
网管小贾 / sysadm.cc
前面我写了一篇文章,介绍了一个超级简单的用U盘以 UEFI 方式来安装 Windows 7 的方法。
但是我在测试时总是遇到安装进程缺少驱动程序的情况。
如下图,通常使用 UEFI 方式安装就会跳出这个,让人看着很不爽。

好,我们这次就拿虚拟机来安装 Windows 7 测试一下,把这个问题都给搞清楚。
准备工作:
VMware Workstation 16 Player支持 UEFI 启动并包含 Windows 7 安装文件的 U 盘Windows 7 安装镜像(ISO)文件关于如何快速制作支持 UEFI 启动方式的U盘,请参考之前的文章。
《不用U盘制作工具,超简单方法让 Windows 7 通过 UEFI 方式启动并安装系统》
https://www.sysadm.cc/index.php/xitongyunwei/824-simple-way-usb-stick-install-windows-7-through-uefi-without-usb-making-tools
一、新建虚拟机并添加U盘的设定
新建一个虚拟机,设置就按一般默认就行,硬盘什么接口的不重要,但一定要有光驱(后面会说原因)。

除默认设置外,我们还要添加可以用U盘启动的一项硬件。
简单地说,就是添加以U盘为基础的虚拟硬盘。
按图示操作即可,添加硬件,选择硬盘。

虚拟磁盘类型默认即可,选择其他也可以,VMware 都支持。

这一步务必要注意了,由于我们是从U盘启动的,所以应该选择物理磁盘。

同上一步,此处应该选择实际的物理设备。
如果你只有一块本地硬盘加一个U盘这样的组合,那么通常你的U盘就应该是 PhysicalDrive1 。
PhysicalDrive 后面的数字是指物理磁盘的序号,第一块磁盘从 0 开始,记住是磁盘,不是分区哦。
要是不太确定的话,可以到磁盘管理器中查看,不要选错了哦。
此外不要选择 使用单个分区 ,应该选择 使用整个磁盘 。

这一步系统需要将U盘信息写入到一个文件,通过这个文件 VMware 才能正确识别和加载到U盘并顺利启动它。
这个文件一般来说不会很大,放到哪里都可以,由你决定。

添加U盘完成后的样子。

最后,默认设置的虚拟机并不能直接以 UEFI 方式启动,为了让虚拟机支持 UEFI 方式启动,我们还需要编辑一下虚拟机的 vmx 文件。
vmx 文件,如果是在 Windows 下,它通常可能在如下路径中。
C:\Users\用户名\Documents\Virtual Machines\虚拟机名称\虚拟机名称.vmx找到它后操作很简单,只要在这个 vmx 文件最后添加以下一行代码后保存即可。
firmware="efi"OK,前期工作就绪,我们开始安装 Windows 7 吧!
二、从U盘启动并开始安装 Windows 7
开启 VMware 虚拟机,并选择从U盘启动。
由于有两个硬盘(一块是本地硬盘,一块是U盘虚拟的硬盘),所以务必要注意启动顺序。
启动后依次输入以下命令,开启安装程序。
# fs后面的数字是指U盘所在分区,别忘了后面还有个冒号。# 如果你的硬盘没有任何分区,数字通常为0。# 如果你的硬盘有分区,那么数字可能是1,也可能是2、3、4等等,看你的现有硬盘分区有几个,可以多次尝试。shell:\> fs0:# 第一条命令执行后,用于查看是否已经切换到U盘,直到能看到bootmgfw.efi文件为止shell:\> ls# 启动引导安装程序shell:\> bootmgfw.efi安装界面开启后,下一步开始安装时,系统提示缺少驱动。
这就是文章开头我们提到的每次以 UEFI 安装 Windows 7 所遭遇到的尴尬窘境。

我曾经尝试过很多办法,都没有用。
我想通过传统镜像方式安装,看看能不能在已安装的系统中提取驱动再试试(当然如何提取驱动心里也没底)。
但当我无意中在光驱中加载镜像文件后,想结束当前的安装进程而点击了确定按钮,嘿,居然奇迹发生了,它顺利地识别了驱动,并进入了下一步硬盘分区的步骤。
如图也能看到,硬盘的确被正确识别了。

而后顺利地按 EFI 方式分区并格式化,很显然一切OK,下一步就可以开始安装 Windows 7 了。

安装完成后,查看磁盘管理中的硬盘分区情况,的确有 EFI 分区,大功告成了!

最后的思考
虽然成功以 UEFI 的方式安装上了 Windows 7 ,但期间的缺少驱动问题到底是什么原因呢?
以前多次遇到此问题,而查找网上的答案,很多都是指向了硬盘驱动或是U盘3.x驱动的缺失。
囿于思维限制,我也就被这些想法给左右而无法找到真正的答案。
直到这次成功后,我再回过头来仔细查看那段缺少驱动的错误提示,才发现上面写的居然是缺少所需的 CD/DVD 驱动设备驱动程序!
不信和话小伙伴们可以看本文的第一张图片。
没错,我猜测可能是 Windows 7 虽然对 UEFI 有支持但不完善,所以它无法直接识别从U盘启动的系统盘。
而加载光驱中的镜像后,安装程序识别出了系统文件,从而顺利进入下一步安装进程。
然而这一问题并不会影响到整个安装过程。
不知道我猜的对不对,于是我拿着同样的那个U盘,另外找了一台真实的电脑尝试安装。
结果也印证了我的猜测,同样弹出没有驱动的提示,同样放入安装光盘后就可以顺利安装了。
也就是说,本文中用U盘以 UEFI 方式安装 Windows 7 的方法同样在实体机上也可以成功实现!
在实体机上除缺少驱动问题之外还可能会有USB键盘、鼠标失效的问题,这多半是电脑太新,USB驱动不支持的缘故。
如果 BIOS 的 USB 设置项中有支持虚拟键盘鼠标的话,开启后应该是可以解决,不过最好是使用 PS2 接口的键盘鼠标。
小伙伴们,如果你有安装 Windows 7 的需求,不妨可以试试看。
如果你也成功了,或是有什么经验教训,欢迎评论区留言哦!
网管小贾 / sysadm.cc