虚拟硬盘VHD或VHDX的应用

2024-03-09 12:59
文章标签 应用 虚拟 硬盘 vhdx vhd

本文主要是介绍虚拟硬盘VHD或VHDX的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、操作系统限制

Windows7不能使用VHDX的虚拟磁盘格式,只能使用VHD格式的虚拟磁盘。适用于 Windows 10 或更高版本的本机启动要求使用vhdx 格式,而不是vhd 格式。

二、VHD(X)的创建

(一)windows的磁盘管理器可以创建VHD(X)的虚拟磁盘,挂载、分离。

(二)bootICE、WinntSetup、Diskgenius(仅vhd)等软件工具也可用来创建VHD(X)格式的虚拟磁盘。

三、VHD(X)的应用
(一)物理磁盘或分区转换为VHD(X)格式的虚拟磁盘,用于系统引导。
1.Disk2vhd

若要使用 Disk2vhd 生成的 VHD,请创建具有所需特征的 VM,并将 VHD 作为 IDE 磁盘添加到 VM 的配置中。如果计划从它们启动,请不要附加到创建它们的同一系统上的 VHD。 如果这样做,Windows将为 VHD 分配一个新磁盘签名,以避免与 VHD 源磁盘的签名冲突。 Windows通过磁盘签名引用启动配置数据库中 (BCD) 的磁盘,因此启动Windows时将无法找到启动磁盘。

计算机A转换后的虚拟磁盘可以挂载在计算机B上,通过修改BCD引导项,可以将计算机A的软件系统迁移到计算机B上。

修改VHD磁盘上windows系统的注册表2种方法

(1)使用VHD启动到系统后, 打开”运行”, 输入”regedit”(不包括双引号)命令打开注册表, 定位到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\FsDepends\Parameters 项, 修改 VirtualDiskExpandOnMount 的16进制数值为4, 重启电脑后生效。

(2)使用PE或其他windows系统启动后,挂载虚拟磁盘到盘符(如M:)打开regedit,选中hkey_local_machine,文件-加载配置单元,选择M:\Windows\System32\config下的system文件,输入项名称(如win10vhd),hkey_local_machine下增加一个名称为win10vhd项,CurrentControlSet(n)\services\FsDepends\Parameters,修改 VirtualDiskExpandOnMount 的16进制数值为4。

2StarWind

使用此工具可以实现P2V、V2V的迁移,也可以用来创建VHD(X)格式的虚拟磁盘。

3Bootice1.3.4添加VHD引导项

打开Bootice,BCD编辑-当前系统的BCD-智能编辑模式,点击“添加”选择“新建VHD启动项”,在“启动磁盘”选择VHD文件所在的磁盘,“启动分区”选择VHD文件所在的分区,“设备文件”,格式“\xxx.vhd(x)”,修改“菜单标题”,点击“保存当前系统设置”、“保存全局设置”。

注意:“检测硬件抽象层”不要选中

(二)将本机物理磁盘上windows转为VHDX的虚拟磁盘并挂在本机上启动。
1使用dism++

使用此软件将windows“系统备份”为wim文件,新建一个VHDx的磁盘挂载后将wim文件通过“系统还原”到vhdx的磁盘上,再用bootice修改启动项,可以实现在本机上启动。

2. 使用diskgenius

新建一个VHDx的磁盘并挂载后,使用diskgenius磁盘管理软件“clone partition”功能将本机物理磁盘分区windows克隆到vhdx虚拟磁盘上,再修改vhdx虚拟磁盘上windows系统的注册表,通过在regedit中加载配置单元后,删除添加项名称下的mounteddevice下的全部键值。然后通过BOOTice修改启动项,实现vhdx虚拟磁盘的引导。

3.使用disk2vhd及diskgenius

使用disk2vhd将将本机物理磁盘分区windows系统转换为vhdx虚拟磁盘,使用diskgenius磁盘管理软件的菜单disk中的“modify MBR signature ”修改磁盘标签,generate GUID。通过在regedit中加载配置单元后,修改VirtualDiskExpandOnMount值为4,删除添加项名称下的mounteddevice下的全部键值。然后通过BOOTice修改启动项,实现vhdx虚拟磁盘的引导(HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices)。

注意将当前的windows10系统使用disk2vhd转换为vhd格式后,直接挂载会导致当前系统崩溃,鼠标停止,蓝屏

四、使用vmware workstation的虚拟机引导vhd
(一)vhd(x)直接挂载VM

根据VHD文件的分区,建立虚拟机时选择bios或uefi.vmware workstation的虚拟机可以直接通过添加现有虚拟磁盘的方法,使用vhd格式的虚拟磁盘,不支持vhdx,但可以使用starwind将vhdx转换为vhd再进行挂载。

通过disk2vhd工具转换的VHD虚拟磁盘,首先可以使用pe系统中diskgenius修改磁盘签名(disk mbr signaure),重新generate GUID避免磁盘签名产生的引导问题。新创建一个VHD文件(同时产生新的磁盘签名),通过分区或磁盘克隆,实现系统迁移。

1.vm使用uefi

Vhd虚拟磁盘挂载vm后,出现引导问题,可使bootice工具挂载vhd中的esp分区,使用BCD编辑中选择“其他BCD文件”来检查引导问题。如何还不能启动,可以使用diskgenius的分区克隆其他同类系统的esp分区,然后重新编辑BCD。或者使用pe、dism++重建esp分区。

2.vm使用bios

Vhd虚拟磁盘挂载后,使用diskgenius工具将其转换为MBR分区格式。编辑虚拟机配置,将pe的iso文件挂载光驱,vm引导后修复引导问题,会在c:\boot目录创建bcd文件,使用bootice工具检查引导项。注意:此时不能使用uefi的物理主机上挂载pe或者直接修改vhd虚拟磁盘来处理引导问题。

五、vhd还原到物理分区

Vhd虚拟磁盘挂载后,使用diskgenius工具将vhd(X)虚拟磁盘分区克隆到物理分区,同时使用regedit加载配置单元的方法修改注册表,删除mounteddevice下的键值。

六、BIOS里的启动顺序与BCD启动项顺序

BIOS里的启动顺序,按F12键选择另外一块物理硬盘、u盘时,对uefi,选择的设备要有自己的esp分区;对于mbr,选择的设备主引导记录、有激活的主分区及boot引导文件。

BCD文件于首个启动设备中,通过本设备的系统引导文件,引导设备磁盘分区或者其他物理磁盘分区的操作系统。主要机制是由本设备的引导文件控制系统引导。

七、从vmware workstation虚拟机迁移至本机启动VHDX

vm虚拟机采用uefi+gpt的系统模型。本次迁移的系统为windows11,为避免重新安装,保持原有的系统内容,将其迁移至物理机的vhdx本机启动。

1.物理磁盘1至少建立2个分区,在物理机的磁盘上建立esp分区及存放vhdx文件的ntfs分区。

2.使用starwind将vm虚拟机的vmdk硬盘文件转化为vhdx文件。

3.使用diskgenius的分区克隆功能将vhdx虚拟硬盘中的esp分区克隆到物理机磁盘1的esp分区。

4.使用bootice工具编辑bcd文件,添加相应的引导项。注意“检测硬件抽象层”不要选中。

5.启动物理机,按F12选择disk1进行引导,系统启动后重新检测硬件,系统会再次自动启动,再按按F12选择disk1进行引导,使用360驱动大师更新驱动。

八、从USB的esp分区引导
(1)使用移动u盘实现引导固定物理磁盘上的系统

USBHDD在bios的启动顺序中优先启动,在USBHDD上建立ESP分区并确保能使用。使用bootice工具修改启动项,引导物理磁盘disk1分区上windows10,引导disk2上的windows11的vhdx文件,均正常引导。

(2)使用usb hdd本机启动vhdx失败原因

前提条件同(1),建立好ESP分区,新建ntfs分区,用于放置vhdx文件,无论从winntsetup部署Windows11到NTFS分区的vhdx中,还是从其他硬盘分区拷贝过来的windows11的VHDX文件,使用bootice修改引导项,native boot(即本机启动)均失败,报错vhd_boot_init**_failed。

Native boot(本机启动)仅支持物理机上的内置硬盘,不支持从移动介质上本机启动。

这篇关于虚拟硬盘VHD或VHDX的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/790757

相关文章

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys