所以…长话短说我正在使用物理和虚拟GPT驱动器的系统上自动安装Windows Server 2012 R2。 我还没有把磁盘从楼梯上带回物理盒子,但是我的虚拟机没有工作。 这里是症状(所有虚拟机,没有物理):
当我尝试手动安装Windows 2012 R2时,它会通过升级过程而不是安装过程来运行。 它似乎认为,即使硬盘没有被分区或格式化,Windows以某种方式安装。 对我来说没有什么意义。 我已经在安装中进入控制台并确认C驱动器不存在。 磁盘0完全空闲,唯一存在的卷是D驱动器(DVD)。
当我尝试使用我的自动化方法进行安装时,我开始在运行我创build的C#程序的Windows PE环境中。 这需要一些input,并在Windows安装过程中读出一个unattend.xml文件。 该程序正在创build一个100 GB的硬盘。 有些文件被复制过来,但是在该驱动器上仍然有至less80GB的空闲空间。 磁盘上还有一个额外的40 GB(共140GB)。 在2012R2设置中,系统将显示进度屏幕,然后立即失败,指出存在硬盘问题。 当我查看日志时,系统似乎确信硬盘不够大,即使它看起来很好,显然足够大。
请注意,自动安装在MBR系统上工作。 我需要做的唯一的改变是让它回到MBR,而不是在DiskPart上运行GPT命令。 我也需要将机器从EUFI切换到BIOS,或者我假设。 这里是diskpart命令(可能稍微偏离我从代码转换,我可以确认,它确实创build一个运行时100GB的C驱动器):
SELECT DISK 0 CLEAN SELECT DISK 0 CONVERT GPT CREATE PARTITION PRIMARY SIZE=100000 SELECT PARTITION 0 ASSIGN LETTER=C ACTIVE EXIT
虚拟机为EUFI设置,有一个非分区的140 gb自动精简configuration驱动器,为Windows 2012 R2设置,如果它在BIOS中,并运行我的软件,MBR格式工作的版本就好了。
有任何想法吗? 我有点卡住了,这个问题很罗嗦,很难在互联网上search。
好的,我find了解决办法。 长话短说,如果你正在定义分区,而不是让Windows去做,那么在安装之前需要生成一个小的100MB分区。 这可能是一个独特的例子,因为这个程序背后的想法是尽量减less用户在安装过程中必须接触系统的时间,所以我们创build一个分区并在Windows安装之前复制文件,然后在Windows启动后运行软件安装,不需要运行安装程序的人来搅乱系统。 无论如何,变化如下:
SELECT DISK 0 CLEAN SELECT DISK 0 CONVERT GPT CREATE PARTITION EFI SIZE=100 CREATE PARTITION PRIMARY SIZE=100000 SELECT PARTITION 0 ASSIGN LETTER=C EXIT