注:操作有风险,请自行备份好数据,本教程仅供参考。
一. 简介/参考
从本机引导, 启动到虚拟硬盘(.vhdx)中的 Windows10 系统. 在没有任何其他父操作系统的情况下, 可以将本机引导 VHDX 用作指定硬件上运行的操作系统. 这不同于 VHDX 连接到具有父操作系统的计算机上的虚拟机的方案.
1. 官网-下载 Windows 10
2. 官网-doc-启动到虚拟硬盘:向启动菜单添加 VHDX 或 VHD
二. 操作流程
正常情况下, 安装 Windows 系统的流程为:
a.使用分区软件(例 DiskGenius )对未分区的硬盘进行分区, 首先需要创建分区表, 分区表目前分为两种格式( MBR/GUID ), 详情请自行百度, 旧电脑/老系统/硬盘容量小于2T优选MBR, 其它默认 GUID,
分区名称 | 分区全称 | 建议大小 |
---|---|---|
ESP分区 | EFI系统分区(EFI system partition) | >128M |
MBR分区 | 微软保留分区(Microsoft reserved partition) | ~16M |
b. 其次是进行分区, 系统盘最低要求为>20G, 推荐为80~120G, 文件系统类型为 NTFS,
c. 最后安装系统, 使用光驱(读取系统安装盘), 或者(下载系统ISO镜像文件)制作U盘启动器安装. 启动/重启电脑, 在主板刚上电自检的阶段, 快速点按(F2/F12/Delete)以进入主板BOIS, 找到并选中以光驱/U盘启动, 按 Windows 安装引导界面的指示操作即可.
使用虚拟机/虚拟硬盘启动 Windows:
a. 有时候, 我们会需要在本机使用其它系统, 在虚拟机/虚拟硬盘的支持下, 我们可以将系统盘以单个文件的方式存储于普通硬盘分区中, 并使用虚拟机安装及启动系统, 虚拟机的使用和正常系统使用基本没有区别, 当然, 除了少许性能损失,
b. 优点, 系统盘存储于单个文件内, 可以很方便的进行迁移/扩容, 且据部分评测显示, 在硬盘读写性能方面的损耗极小.
通过本机引导, 启动到虚拟硬盘:
接下来步入正题, 通过添加启动项, 从本机引导, 启动到虚拟硬盘(.vhdx)中的Windows10系统.
# 重建UEFI+BIOS引导(虚拟硬盘的系统分区->V, 物理硬盘的ESP分区->S)
bcdboot v:\windows /s S: /f ALL
>_>先这样, 以后再补, 其实到这里整个流程就已经完成了, 只是可能缺了一些细节, 对新手不太友好
三. 相关知识延伸 - WindowsPE
对 WindowsPE(原生) 感兴趣的可以参考以下文档/教程, 以及一些我尝试的操作命令:
官网-doc-Windows PE
教程-给winpe添加explorer
#1.创建WindowsPE,由Windows ADK & Windows PE add-on for the ADK
CD "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools"
#创建工作文件
copype amd64 C:\WinPE_amd64
#挂载
Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"
#列出 Windows PE 映像中的可选组件
Dism /Get-Packages /Image:"C:\WinPE_amd64\mount"
#添加自定义包
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-HTA.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-MDAC.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PPPoE.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Dot3Svc.cab"
#语言
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FontSupport-ZH-CN.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\lp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\WinPE-HTA_zh-cn.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\WinPE-MDAC_zh-cn.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\WinPE-Scripting_zh-cn.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\WinPE-WMI_zh-cn.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\WinPE-PPPoE_zh-cn.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-cn\WinPE-Dot3Svc_zh-cn.cab"
#设置
Dism /Set-AllIntl:zh-CN /Image:"C:\WinPE_amd64\mount"
Dism /set-timezone:”China Standard Time” /Image:"C:\WinPE_amd64\mount"
Dism /set-SKUIntlDefaults:zh-CN /Image:"C:\WinPE_amd64\mount"
Dism /Set-ScratchSpace:512 /Image:"C:\WinPE_amd64\mount"
#删除自定义包
Dism /Remove-Package /Image:"C:\WinPE_amd64\mount" /PackageName:Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~amd64~en-US~10.0.19041.1
#WinPE:优化和缩小图像
#清理镜像(此过程标记可以在导出过程中删除的文件)
Dism /Cleanup-Image /Image="C:\WinPE_amd64\mount" /StartComponentCleanup /ResetBase
#卸载镜像并保存更改
Dism /Unmount-Image /MountDir:"C:\WinPE_amd64\mount" /Commit
#卸载失败时
#先查看现在仍在使用的目录
Dism /Get-MountedImageInfo
#尝试重新安装
Dism /Remount-Image /MountDir:"C:\WinPE_amd64\mount"
#尝试卸载并放弃更改
Dism /Unmount-Image /MountDir:"C:\WinPE_amd64\mount" /discard
#尝试清理与挂载映像关联的资源
Dism /Cleanup-Mountpoints
#导出/替换镜像
Dism /Export-Image /SourceImageFile:"c:\winpe_amd64\media\sources\boot.wim" /SourceIndex:1 /DestinationImageFile:"c:\winpe_amd64\mount\boot2.wim"
Del "C:\WinPE_amd64\media\sources\boot.wim"
Copy "C:\WinPE_amd64\mount\boot2.wim" "c:\winpe_amd64\media\sources\boot.wim"
#创建可启动的 WinPE USB 驱动器
MakeWinPEMedia /UFD C:\WinPE_amd64 P:
#创建 WinPE ISO、DVD 或 CD
MakeWinPEMedia /ISO C:\WinPE_amd64 C:\WinPE_amd64\WinPE_amd64.iso
#2.添加Windows桌面环境
#提取Win10原始版本文件(->Windows21H1.iso,放至C:\WinPE_amd64)
CD "C:\WinPE_amd64"
#显示安装 esd 文件中的可用镜像
Dism /Get-WimInfo /WimFile:install.esd
#根据索引号,将映像导出到 WIM 文件
Dism /Export-Image /SourceImageFile:install.esd /SourceIndex:4 /DestinationImageFile:install.wim /Compress:max /CheckIntegrity
#3.磁盘操作
#打开Diskpart 命令行工具
diskpart
#列出你磁盘的所有分区
list volume
#选中卷0
select volume 0
#添加卷属性: 隐藏 默认无盘符
attributes volume set hidden nodefaultdriveletter
#删除的驱动器号D:
remove letter=d