当前位置: 首页 > news >正文

Windows 7中从VHD文件启动计算机

Windows 7中从VHD文件启动计算机

Windows 7对VHD文件的内建支持,VHD文件的地位得到了提升:-) ,它可以被操作系统认为是一块物理的硬盘进行管理和读写。

  我们知道,现在启动系统的方式多种多样,可以从光盘、硬盘、软盘、U盘、网络等等不同的渠道来完成。既然VHD可以被Windows 7认为是一块独立的物理硬盘,那么我们是否可以从VHD启动操作系统呢?

  答案是肯定的。Windows 7的引导程序也同样包含了对VHD文件的读写驱动,因此在装有Windows 7引导程序(Boot Loader)的上,可以通过配置BCDEdit的方式,把VHD上的操作系统加入到启动时显示的多系统选择菜单。

  下面我们来看一下具体的步骤:

  注意,我们不能在物理计算机上通过光盘把系统安装到VHD文件。首先我们需要一个已经安装了操作系统的VHD文件,这可以通过几种方式来完成:

  1. 在Virtual PC或者Hyper-V中完成安装,并且运行sysprep,然后关机,这VHD文件可以被Windows 7的Boot Loader启动。

  2. 使用ImageX工具,把之前备份的操作系统镜像文件(ImageX格式)恢复到VHD中。

  Adding the VHD Entry in Boot Menu and then Boot from VHD

  当成功的创建VHD文件并且在VHD系统之上部署了操作系统之后,我们需要使用Windows 7的BCDEdit工具来配置系统的多启动菜单:

  C:>bcdedit /copy {current} /d "My New VHD Description"

  Note: This will Return the GUID of the Loader Object that you will use to replace below

  C:>bcdedit /set device vhd=[driveletter:]\

  C:>bcdedit /set osdevice vhd=[driverletter:]\

  Note: vhd=[driveletter:]\ is the new syntax supported for BCDEdit.exe to locate VHD File and Bootmgr will locate the partition containing the VHD File to boot from.

  C:>bcdedit /set detecthal on

  Note:

  Following is the attached screenshot of the my machine. In this case I have Windows 7 as the default OS and I have added the VHD File in the Boot Entry.

  Windows 7中从VHD文件启动计算机

Well just after that run the following command to test if your boot entry is successfully created using C:>bcdedit /v

Windows 7中从VHD文件启动计算机

Similarly, if you want to add multiple VHDs into Boot entry you can use the following lines to the command prompt

  C:>bcdedit /copy {current} /d "New VHD Description"

  C:>bcdedit /set device vhd=[driveletter:]\

  C:>bcdedit /set osdevice vhd=[driverletter:]\

  C:>bcdedit /set detecthal on

  Note: detecthal is used to force windows to auto detect the Hardware Abstraction Layer.

  If you want to delete any existing VHD entry from the Boot Menu you can always use the command C:>bcdedit /delete /cleanup This deletes the specified operating system entry from the store and removes the entry from the display order.

  Well, we are ready to Boot from VHD. Once you restart the computer you will see additional entry in Boot Menu along with the default Windows 7 or Windows Server 7 OS.

  Here is the screenshot from newly booted Windows Server 2008 R2 Beta from VHD. I have installed Desktop Experience Pack and enabled Aero Glass.

Windows 7中从VHD文件启动计算机

看到这里,大家不免有一些问题:从VHD启动之后的系统,到底是运行在虚拟机上?还是直接运行在物理硬件之上?从VHD启动,还需要哪些必备的条件?是否会有性能的损失?下面我来回答这些问题:

  1. Windows 7的引导程序和Windows 7本身都包含了对VHD文件的读写驱动程序,因此我们可以在启动计算机的时候,访问VHD并且从其上启动;我们也可以在Windows 7中直接创建、加载和卸载VHD文件。这些都是VHD读写驱动的功劳,跟Virtual PC或者Hyper-V没有直接的关系。因此Windows 7不需要安装任何虚拟化软件。

  2. 从VHD启动之后,计算机的操作系统直接访问硬件,不是以虚拟化的方式运行。

  3. 这里面唯一的区别,就是对文件系统读写访问的时候,需要经过额外的一层VHD读写驱动的解析,这里面有一些微量的I/O性能开销,但是跟虚拟化的情况相比,性能基本上接近了真机。我查了一些测试资料,有一组直接读取硬盘和读写VHD的比较,性能差别微乎其微。如下图:  

Windows 7中从VHD文件启动计算机

4. 因为对VHD的支持仅包含在Windows 7中,因此我们不能在Windows 7中创建VHD后通过光盘给VHD安装任何操作系统。


相关VHD的文章

Windows 7支持VHD虚拟硬盘

Windows 7在虚拟磁盘(VHD)中的安装与启动

VHD(虚拟磁盘)系统在Windows 7中的加载

领略Windows7的VHD虚拟化文件


相关文章:

  • Javascript --扩展String实现替换字符串中index处字符
  • 算法练习之牛顿法求平方根
  • 去掉数组中的重复元素
  • 浅谈单例的三种实现--C#
  • OO 编程基本功--(1)
  • 移动设备管理(MDM)与OMA(OTA)DM协议向导(一)——从WiMAX讲起
  • OO编程基本功(2)--命名
  • [IE编程] 如何设置IE8的WebBrowser控件(MSHTML) 的渲染模式
  • OO编程基本功(3) 注释
  • WinDBG 技巧:分析程序漏洞是否可以被利用 (!exploitable 命令)
  • 编程基本功(4)
  • Agile实践日志一 -- Grooming Session
  • 获取SQL Server服务器的连接信息用脚本(在原邹建写的基础上作一点改进)
  • Agile实践日志(2)-- Daily Stand up 和 Retrospective Session
  • 一短查询SQL Server服务器阻塞和死锁信息用的脚本
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 08.Android之View事件问题
  • 230. Kth Smallest Element in a BST
  • CentOS 7 防火墙操作
  • Computed property XXX was assigned to but it has no setter
  • Electron入门介绍
  • java8-模拟hadoop
  • java多线程
  • JAVA多线程机制解析-volatilesynchronized
  • mysql 数据库四种事务隔离级别
  • React-flux杂记
  • spring boot下thymeleaf全局静态变量配置
  • TCP拥塞控制
  • windows下如何用phpstorm同步测试服务器
  • 复习Javascript专题(四):js中的深浅拷贝
  • 码农张的Bug人生 - 见面之礼
  • 排序(1):冒泡排序
  • 前端技术周刊 2019-02-11 Serverless
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 实习面试笔记
  • 数据可视化之 Sankey 桑基图的实现
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #### go map 底层结构 ####
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1)Android开发优化---------UI优化
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (四)c52学习之旅-流水LED灯
  • (四)库存超卖案例实战——优化redis分布式锁
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .apk 成为历史!
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记