为了尽量减少我即将使用的一组 Windows VM 所占用的磁盘空间,我尝试创建一个基础映像,希望使用差异磁盘。我快完成了,但每次启动 VM 时 OOBE 都会继续运行,我必须配置语言和管理员密码。我如何才能停止在启动时运行 OOBE?
以下是我目前所做的:
- 创建一个具有 60GB 扩展磁盘的 VirtualBox VM。2GB RAM、1CPU。
- 安装 Windows Server 2008 R2 并使用 Windows 更新修补操作系统。
- 运行
sysprep
勾选通用选项并关闭操作系统。 - 从 VirtualBox Manager 中删除虚拟机但保留文件。
- 从#1 中创建的虚拟机连接虚拟磁盘(.vdi 文件)。
- 在虚拟媒体管理器中修改磁盘,将其设置为不可变。
- 创建一个新的虚拟机并选择#6 中的磁盘作为主硬盘。
- 从#7 启动新的虚拟机。
- OOBE 运行。设置语言、密码和其他首选项。
- 关闭虚拟机。
- 从 VirtualBox Manager 启动 VM。
- OOBE 再次运行。
使用不可变磁盘的每个虚拟机都会在其快照目录中获得一个 .vid 文件,并且对虚拟机所做的更改会在会话之间保留,也就是说,我安装的程序在重新启动后仍会安装,但每次都会运行 OOBE。我该如何停止它?
答案1
(我查看了 Vbox 文档,所以也许我作弊了……)
“6”. 在虚拟媒体管理器中修改磁盘,将其设置为不可变。
默认情况下,差异磁盘将始终自行重置,因此,除非您更改差异磁盘的标志,否则您将在重新启动时回到开始位置。
每个差异磁盘都有一个自动重置标志,默认情况下,该标志设置为开启。要将其设置为关闭,您必须使用 VBoxManage 命令:
$ VBoxManage 修改hd | \ --autoreset 关闭
您的差异磁盘将不会再“忘记”它记录的任何更改。
然而,您真正想要做的是使用多连接磁盘选择:
多连接模式下的映像可以同时连接到多台虚拟机,即使这些机器同时运行。对于此类映像所连接的每台虚拟机,都会创建一个差异映像。因此,一台机器写入此类虚拟磁盘的数据不会被该映像所连接的其他机器看到;每台机器都会创建自己的多连接映像写入历史记录。
从技术上讲,“多附件”图像的行为与“不可变”图像完全相同,只是每次机器启动时不会重置差异图像。
答案2
您应该使用无人值守文件将所需参数传递给新克隆的虚拟机。除非您明确提供每个屏幕的答案,否则 Sysprep 将显示 OOBE 屏幕。
有关详细信息,请参阅:http://technet.microsoft.com/en-us/library/dd744512(v=ws.10).aspx