最近把系统换成win 7 x64,突然想起n久之前曾经看过的,可以直接用vhd启动系统,特地找出文章来,照着体验了一把。
主要参考了以下文章:
- http://blogs.technet.com/b/fyu/archive/tags/vhd+boot/
- http://veware.wordpress.com/2010/09/08/%E6%B5%85%E6%9E%90win7%E7%9A%84%E8%99%9A%E6%8B%9F%E7%A1%AC%E7%9B%98%E5%90%AF%E5%8A%A8native-vhd-boot/ (有墙)
- http://goxia.maytide.net 里面关于native boot的
注:native boot的系统(装在vhd中的系统)只支持windows 7 professional以上版本、server 2008 r2,主系统windows 2000以上应该都可以(只测试过xp、2003pe,7)
安装系统到vhd
这里只安装windows 7,主要分成以下步骤:
- 在磁盘管理里面创建虚拟磁盘(即vhd文件)
- 在管理界面选中虚拟磁盘并右键选择初始化它
- 在虚拟磁盘的未分配处右键创建简单卷,格式化成ntfs,分配盘符如V:
- 把windows 7的镜像或光盘中的souces目录下的install.wim提取出来
- 下载GImageX(http://www.autoitscript.com/gimagex/),打开它并切换到Apply标签,souce点Browse选择提取出来的install.wim,destinaton点Browse选择刚刚挂载的虚拟磁盘V:\,Image点Select选择windows 7的版本
- 点击Apply注入到vhd,直到完成
- 在磁盘管理里卸载分离虚拟磁盘
到这里系统就安装完成了,假如不需要再定制一些软件的话就可以直接使用了。
加入启动菜单
- 下载EasyBCD(http://neosmart.net/dl.php?id=1),当前版本为2.0.2
- 切换到Add New Entry标签,在右侧下方切换到Virtual Disk,输入Name即开机启动时显示的名称如Win7VHD,Path选择刚才创建的vhd文件
- 点Add Entry加入到启动菜单
- 切换到Advanced Settings标签,在出现的界面中Select an OS下拉框中选择刚才添加的Win7VHD,然后在下方Basic标签中设置好Locale即启动的语言
- Save Settings完成
完成以上步骤以后就可以直接重启。
在重启后,选择刚才创建的启动项Win7VHD,会进入系统的首次安装配置,中间会重启2次,等这些完成后进入vhd系统,可以直接使用了。
定制系统
如果要直接使用这个vhd系统,就不需要以下操作。
对系统进行一些软件的安装等操作(不要安装驱动),定制完成之后,打开命令提示符:
- 切换到sysprep目录:cd/d \windows\system32\sysprep
- 输入运行sysprep.exe
- 在出现的对话框中选中OOBE,勾上Generalize以清除硬件信息
- 完成
完成以上操作之后,重启
在2003PE做为主系统的环境中native boot windows 7 vhd
我另外一台机器只装了一个2003PE做为主系统,把刚才定制的vhd系统复制到2003PE这台机器上,由于不能在PE上运行EasyBCD,试过用bcdedit编辑没成功,所以修改启动项还是要花费一番手脚的。
- 把windows 7 镜像或光盘中的bootmgr,boot目录复制到C盘根目录
- 在C盘创建sources文件夹,并把windows 7 镜像或光盘sources目录中的boot.wim复制到c:\sources
- 打开命令提示符,输入c:\boot\bootsect /nt60 c:
- 重启,选择windows 7安装,出现安装界面,等到出现语言选择的时候,按shift+f10打开命令提示符
- 这一步操作可以省略,主要用于删除windows7安装的启动项
- 输入运行diskpart
- 选择vhd文件:select vdisk file="d:\win7.vhd",这里文件位置为d:\win7.vhd
- 附加vhd文件为虚拟磁盘:attach vdisk
- 选中主分区:select partition 1
- 激活分区:active
- 分配盘符:assign letter=V
- 输入exit退出diskpart
- 输入cd/d x:\windows\system32
- 输入bcdboot V:\windows /s C: 用于把刚刚附加的虚拟磁盘V:加入启动项
- 输入bootsect /nt60 SYS
- 结束
rd /s /q boot #删除boot目录
rd /s /q source #删除source目录
del bootmgr #删除文件
bootsect /nt52 c: #还原原系统的启动项
执行完以上步骤之后,就成功把vhd系统加入到pe为主系统的启动项中了。
如果主系统为xp的话,可以直接使用EasyBCD,或者运行以下命令用于还原xp启动项:
bcdedit /store bcd /create {ntldr} /d "Windows XP"
bcdedit /store bcd /set {ntldr} device partition=C:
bcdedit /store bcd /set {ntldr} path \NTLDR
bcdedit /store bcd /bootsequence {default} {ntldr}
bcdedit /store bcd /displayorder {default} {ntldr}
bcdedit /store bcd /timeout 30
结束
在进入虚拟系统之后,主系统的盘符有台机器是删掉了,有一台是没有删掉的,删掉貌似为了隐藏主系统。而且盘符跟主系统中变的不一样,所以又得手动把盘符调成跟主系统一样,要不然某些软件用起来很麻烦~~
经试验证明,使用多核且支持虚拟化的CPU比单核且不支持虚拟化的CPU要快非常多。
另外,vhd系统一开机网络初始化那个慢啊,而且因为用的是虚拟磁盘,所以不能使用windows 7评分……
over