裸盘安装vhd系统方法探讨
致谢:jpi000致谢主题:裸机安装win7原生vhd启动及差分磁盘的设置(无需第三方软件)实现秒恢复https://bbs.pcbeta.com/viewthread-788581-1-1.html
致谢内容:diskpart命令引用
说明:如果对vhd没概念,那么简单说一句:vhd是一个文件,代表虚拟盘,可以在上面安装完整的win7系统或者win8系统,其表现在实体硬盘上的形式是一个文件,对vhd系统的所有操作就是基于一个文件操作,对这个文件外的其他任何都没有影响;如果对vmware或者vbox有过体验,那么对vhd应该较明确;如果以上内容还是不明白,那么表示的对vhd概念基本陌生,下面的文字可以不看,google后再看;
一下内容适用:
1、针对win7或者以及和win8的系统,对xp没研究,启动模式不一样,无从谈起;
2、一个没有任何系统安装或者甚至没有任何分区的硬盘。
3、如果在已有系统的基础上增添vhd文件,更为简单,往后跳阅览;
准备
1、一个软件:vhd_onekey2011.exe,
获取方法:新浪里面有,搜索。
用途:创建纯粹的vhd文件。
2、一个win7的恢复盘,个人推荐U盘,当然要是喜欢光盘也可以,前提是这个盘需要时启动盘。里面内容其实就两个文件夹和一个文件,文件夹一boot,文件夹二sources(内含一个文件BOOT.WIM)这个也是硬盘安装win7的最经典的方法。
获取的方法:到网上去搜索对应的iso文件,刻盘或者写入U盘就可以。
用途:bcdedit操作以及硬盘的启动管理;
3、得有一个系统的install.wim文件
获取途径:win7或者win8系统的ISO文件解压开就可以了。里面有个sources目录里面,就有install.wim文件(巨大,2G以上)
用途:灌装vhd文件;
第一节:挂载并安装windows7 VHD系统到硬盘
推荐方法:
之所以是推荐方法,是尽量减少cmd模式下的命令输入,能偷一点懒就偷一点懒;
开始操作:
1、在任意一个windows系统下面(我是在win7与win8下面均可以操作,xp未测试),采用vhd_onekey2011.exe灌装生成两个vhd,一个是W7X86.VHD文件,另一个是W8X86.VHD文件,两个大小均改为动态模式,每个容量大小为40G。当然,你用diskpart也一样操作,但是我觉得这个软件更方便,而且可以直接把install.wim文件直接灌装其中;
2、开始操作新盘,假设这个硬盘未分区。采用winPE对硬盘进行分区。
分区推荐:活动分区,200M(网上有100M与150MOEM的方式,个人以为按照M单位的空间多点不在乎,200M还不如一个U盘),格式化,设为活动;分配盘符C;
3、把剩下的空间分区格式化(做主分区也好,逻辑扩展分区也好,随便),分配盘符D
4、想办法(移动硬盘,大容量U盘)把刚才做好的两个vhd文件拷贝到D分区中,根目录也行,任意目录也行,此处假设在D:\VHDOS目录中;
5、用win7的恢复盘启动系统,进入命令行修复模式。
5.1、运行diskpart命令,主要是挂载vhd文件和导入启动内容;
进入命令行模式,输入diskpart,进入diskpart界面;一共四个个命令:
diskpart> select vdisk file=d:\osvhd\w7x86.vhd 【解释:该命令选择vhd文件,类似于选择磁盘或者分区一样,vhd文件名是上面已经做好的并且发那个到硬盘D盘里面的W7X86.VHD文件】
diskpart> attachvdisk【解释:该命令为挂载vhd文件,输入该命令后会提示100%挂载结束】
diskpart> list volume 【解释:该命令为查看虚拟磁盘挂载后的分区号,这个分区号需要自己看,比如说我这个上面是G盘】
diskpart> exit【解释:推出diskpart】
5.2、前面挂载了vhd并且加入在G盘挂载成功;
现在开始导入启动文件,因为到现在为止,新硬盘上面除了两个分区和两个vhd文件之外,没有任何启动信息,这里就需要对该硬盘进行启动信息加入,如果对bcdedit命令熟悉,这时候如果你输入bcdedit命令,会提示没有任何启动的存储内容;
启动信息是利用vhd系统里面的启动系统,导入到200M的活动分区C盘里面;这样就可以实现C盘启动;
还是在命令行修复模式下面,一个命令bcdboot。
X:\> BCDBOOT G:\WINDOWS /S C: 【简单解释,bcdboot是导入启动信息的程序;G:\WINDOWS就是刚才挂载成功的vhd,这里你可以把它看成是一个完好的系统,/s是导入启动信息参数,C:是我们要把启动信息导入的分区】
5.3、至此如果你重启动系统,从硬盘启动,就可以启动了,但是还不能启动windows系统,因为bcd里面没有任何启动哪个系统的信息,这时候需要用到bcdeit命令增加系统引导信息;
还是在命令行修复模式,一个命令bcdeit
X:\>BCDEDIT
这时候会显示硬盘的启动信息,里面可能会有一个标识符,后面是{一堆数字}【备注:假如该数字为{230230231-sfdasgdqw-23q1231h}之类)的内容,这表示一个启动分支,这个分支是我们刚才导入的G盘的windows的启动信息,开始操作,一共三个命令:
x:\>bcdedit /copy {230230231-sfdasgdqw-23q1231h} /d "Windows 7.vhd"【简单解释:/copy是复制该启动项目的标识符到一个新的启动项目,{230230231-sfdasgdqw-23q1231h},/d为复制参数,"win7.vhd"是新启动项目的启动菜单显示名称,这个也是我们准备启动的内容,这个名称随便定义】,该命令执行后,会提示生成一个新的提示符号,假如为:{sdwewqewiduw-sdf8ur0923-7YRQUW}
x:\>bcdedit /set {sdwewqewiduw-sdf8ur0923-7YRQUW} device vhd=\osvhd\w7x86.vhd 【简单解释,该命令是设置新启动项目的启动内容device,设置为我们前面生成并且拷贝到D盘OSVHD目录下面的w7x86.vhd文件】
x:\>bcdedit /set {sdwewqewiduw-sdf8ur0923-7YRQUW} osdevice vhd=\osvhd\w7x86.vhd 【简单解释,该命令是设置新启动项目的启动内容osdevice,与上个命令的唯一区别就是device换成了osdevice】
6、至此,添加vhd启动到新硬盘结束,这时候的硬盘状态是:C盘200M分区,含有启动信息,D盘剩余的分区,包含w7x86.VHD文件和W8.vhd两个文件,没有任何的实盘安装系统;
重新启动后,会出现win7的启动菜单,其中就会有Windows7.vhd菜单项【该菜单项名称是我们前面设定的】,进入后就是开始安装windows7的界面,后面的就跟实模式的硬盘安装过程完全一致,直至安装结束,正常使用;
第二节:挂载多个系统
比如我们前面说的同时还生成了另外一个windows的vhd系统,文件名为w8x86.VHD文件
在windows安装结束并且正常使用后,进入cmd界面(必须要采用管理员模式)
还是采用bcdedit命令,三个命令:
x:\>bcdedit /copy {current} /d "Windows 8.vhd"【简单解释,这时候系统为win的vhd系统,所以bcdedit里面应该可以看到有current标识符,表示当前系统,也就是windows7.VHD系统,我们复制一个,并且命名为window8.vhd菜单名称】,该命令执行后,会提示生成一个新的标识符,比如说:{2139124-24e8y234r-sdfhasdf}。
x:\>bcdedit /set {2139124-24e8y234r-sdfhasdf} device vhd=\osvhd\w8x86.vhd
x:\>bcdedit /set {2139124-24e8y234r-sdfhasdf} device vhd=\osvhd\w8x86.vhd
至此就完成了挂载第二个vhd系统的启动,如果这时候重新启动系统,会发现多了一个windows8.VHD菜单,进入后,就是开始安装windows8系统,剩余的雷同;
第三节、创建差分系统以及快速还原
差分系统和快速还原的含义就不解释了,方法两个,个人推荐第一个:
1、采用onekey_VHD2011.EXE文件来生成;优点是图形化操作,缺点是文件名称软件内定(当然你要修改的话同时修改bcd内容也是一样)
2、采用diskpart命令来操作,命令如下:
diskpart> create vdisk file=D:\W7X86_C.vhd parent=D:\W7X86.vhd【简单解释:设置父盘子差分系统,看看文件名称就大概知道意思了吧,生成的差分系统文件很小,一般只有100多K,备份是很容易的】
退出diskpart,进入到提示符界面:
C:\> copy w7x86_c.vhd W7X86_c.bak【简单解释:备份,用以快速还原。纯粹的一个文件复制过程,这个过程你同样可以在explorer里面完成】
3、提示:不能对当前的vhd系统进行差分备份,比如你现在是w7x86的vhd系统,那么不能进行差分和备份,至少第一个方法不行,建议切换到另一个系统进行;
4、差分系统创建好之后,就可以同样利用第二节的方法增添差分系统到启动菜单;
5、还原简单:第一是利用winpe进入后,将bak文件复制为_C.VHD文件;第二是切换到另一系统,将bak文件复制为_C.VHD文件
第四节:修复老是进入metro选择后重启才能进入的毛病
网上有关于关闭快速启动的方法,我尝试后无效,分析可能是vhd本身就不具备休眠功能导致。
有效的方法:
1、采用windows7的修复光盘;
2、进入命令行修复模式
3、采用diskpart挂在windows7的vhd文件(不能挂载windows8的vhd文件)
4、退出diskpart,采用bcdboot将挂载的windows7的vhd系统引导文件重新注入c;
5、如果能启动windows7而不能启动windows8,可能需要复制windows8的boot.mgr文件替换C盘分区下面的bootmgr文件(该文件为windows7系统的)
第五节:其他
vhd系统的性能与实盘的windows系统性能,相差基本无几;
优点:vhd单文件格式,使用过vmware或者vbox的应该都了解其优点;
缺点:不能休眠;
自己居然没办法编辑自己的帖子??什么情况?
前面的致谢似乎有些错位,重新再发一次:
致谢:jpi000
致谢主题:裸机安装win7原生vhd启动及差分磁盘的设置(无需第三方软件)实现秒恢复
主题地址:https://bbs.pcbeta.com/viewthread-788581-1-1.html
致谢内容:diskpart命令引用 这么好的文章怎么没人顶 谢谢,确实是好文章。想问的是,必须得有个200M的放引导的分区吗?直接把引导和系统的vhd放在C盘不行吗? jjjian 发表于 2014-10-10 22:02 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
谢谢,确实是好文章。想问的是,必须得有个200M的放引导的分区吗?直接把引导和系统的vhd放在C盘不行吗?
放200M的引导分区是为了独立用一个分区来放引导(个人习惯),当然如果你整个硬盘做一个分区来做也是一样的。只不过vhd加载以后你的这个分区是变成了D盘,因为C盘符号被vhd占据了。
这个时候D盘根目录下面应该有关于boot启动的一些文件,我比较洁癖,所以就没这样做。
意见供参考。(这个还是win7时候写的心得,win8开始就没用过vhd,因为vhd是不能实现win8的快速启动的,而win7是没有这个功能。) 没有实现过! 感谢楼主分享经验
谢谢分享! 感谢楼主分享,收藏备用{:5_294:} 感谢楼主分享,是否有方法让裸金属部署的VHDX文件能和Hyper-V通用呢? win10的vhdx是否可以操作 谢谢,确实是好文章。 感谢分享,非常棒
页:
[1]