应用/部署/恢复映像时,bcdedit 在 Windows PE 中不起作用?

应用/部署/恢复映像时,bcdedit 在 Windows PE 中不起作用?

我捕获了一个图像,并尝试在不使用 Sysprep 的情况下将其还原到不同的 VM,因为我正在积极使用我想要克隆的 VM 服务器,并且我不想再次设置它,我可以但这会浪费时间:

从 WinPE ISO 启动原始 VM,并调出 cmd 提示符:

捕获 共享读/写:\DESKTOP-O8ESL65\wsus_img

start /w wpeinit

连接到共享

net use i: \\DESKTOP-O8ESL65\wsus_img /user:someuser /password

使用以下命令捕获图像:

dism /capture-image /ImageFile:i:\install.wim /CaptureDir:C:\ /Name:"winserver_wsus2016"


不使用 Sysprep 进行还原

创建一个新的虚拟机并使用 WinPE 启动它,然后在其上创建 GPT 分区:

start /w wpeinit
net use f: \\DESKTOP-O8ESL65\wsus_img
diskpart

Microsoft DiskPart version 10.0.14393.0Copyright (C) 1999-2013 Microsoft Corporation.On computer: MININT-TJ84J7UDISKPART> select disk 0
Disk 0 is now the selected disk.
DISKPART> list vol  
Volume ###  Ltr  Label        Fs     Type        Size     Status     Info  
----------  ---  -----------  -----  ----------  -------  ---------  --------  
Volume 0     D   DVD_ROM      UDF    DVD-ROM      6649 MB Healthy  
Volume 1                      RAW    Partition    126 GB  Healthy      
Volume 2     C   Recovery     NTFS   Partition    450 MB  Healthy    Hidden  
Volume 3     E                FAT32  Partition    100 MB  Healthy    HiddenDISKPART> select volume 1
DISKPART> format fs="ntfs" quick label="data"
DISKPART> assign letter=g
DISKPART> list vol

Volume ###  Ltr  Label        Fs     Type        Size     Status     Info  
----------  ---  -----------  -----  ----------  -------  ---------  --------  
Volume 0     D   DVD_ROM      UDF    DVD-ROM      6649 MB Healthy  
Volume 1     G   data         NTFS   Partition    126 GB  Healthy      
Volume 2     C   Recovery     NTFS   Partition    450 MB  Healthy    Hidden  
Volume 3     E                FAT32  Partition    100 MB  Healthy    Hidden
    
DISKPART> exit

然后我运行这个程序来应用图像,但随后新的虚拟机无法启动:

dism /apply-image /Imagefile:f:\install.wim /index:1 /applydir:g:\

之后我无法从驱动器启动机器,因此我重复了上述步骤,然后在我读到以下命令可以替代 sysprep 后添加了此步骤:

bcdedit /set {default} device partition=c:
The boot configuration data store could not be opened.
The system cannot find the file specified.

bcdedit /set {default} osdevice partition=c:
The boot configuration data store could not be opened.
The system cannot find the file specified.

bcdedit /set {bootmgr} device partition=c:
The boot configuration data store could not be opened.
The system cannot find the file specified.

但这些命令在 WinPE 中不起作用。我甚至尝试从 G:\Windows\System32\bcdedit.exe 执行该命令,但仍然收到相同的消息。

我想设置 Windows 引导加载程序,以便虚拟机可以启动,我可以创建第二个 WSUS 服务器。我当时想也许我需要执行 runas,但由于我在 WinPE 中,我应该以哪个用户身份运行该命令?另外我找到一些关于 bcdedit.exe 的文档但我对 GPT 分区和 UEFI 还不熟悉,所以有点不知道如何继续。

答案1

好的,我可以让事情再次正常运转,但必须遵循微软网站上的手册。

我开始阅读捕获并应用 Windows .wim 文件,它链接到另一个文档(创建分区-UEFI.txt)关于 GPT 分区结构以及如何使用diskpart和脚本(名为CreatePartions-UEFI.txt)创建它,当我再次返回到原始文件说明书指出我们要运行diskpart /s CreatePartitions-UEFI.txt,然后应用映像,最后将一些文件复制到 GPT 分区;如下所示:

1.创建分区:

因此,我首先需要连接所有 UNC 驱动器来从中提取图像,这是我首先做的。

说明如下,它们首先创建启动 WindowsPE 后要使用的脚本来创建分区:

rem == CreatePartitions-UEFI.txt ==
rem == These commands are used with DiskPart to
rem     create four partitions
rem     for a UEFI/GPT-based PC.
rem     Adjust the partition sizes to fill the drive
rem     as necessary. ==
select disk 0
clean 
convert gpt
rem == 1. System partition ==============
create partition efi size=100
rem     ** NOTE: For Advanced Format 4Kn drives, 
rem            change this value to size = 260 **
format quick fs=fat32 label="System"
assign letter="S"
rem == 2. Microsoft Reserved (MSR) partition ==============
rem == 3. Windows partition ==============
rem ==     a. Create the Windows partition ==============
rem ==     b. Create space for the recovery tools ===
rem           ** Update this size to match the size of 
rem               the recovery tools (winre.wim)
rem               plus some free space.
shrink minimum=650
rem ===     c. Prepare the Windows partition ==============
format quick fs=ntfs label="Windows"
assign letter="W"
rem === 4. Recovery tools partition ==============
create partition primary
format quick fs=ntfs label="Recovery Tools"
assign letter="R"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
list volume
exit

创建分区-UEFI.txt

接下来我们必须使用 Windows PE 启动 PC,并从 cmd 提示符窗口运行以下命令来创建分区:

DiskPart /s F:\CreatePartitions-UEFI.txt

2.更改电源方案

因此,在图像恢复时它不会进入睡眠状态......

call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

3.应用图像:

然后我从外部 UNC 共享应用了我之前捕获的图像dism(其中 F:\ 是 UNC 共享):

dism /apply-image /Imagefile:F:\images\install.wim /index:1 /applydir:W:\

5. 使用引导文件设置分区:

W:\Windows\System32\bcdboot W:\Windows /s S:

6.使用 Windows 恢复环境设置分区:

6.1 从???添加 Windows 恢复环境

尝试安装 Windows 恢复映像,文档说它应该在里面W:\Windows\System32\Recovery\Winre.wim但它不在那里,所以我从旧的 Windows 10 安装中挽救了它并通过我的 UNC 共享复制了它(但我仍然不知道在哪里可以正式获得它,或者这是微软改变了他们的做法,并且从未更新文档...如果您知道这个问题的答案,请告诉我...)

md R:\Recovery\WindowsRE
xcopy /h W:\Windows\System32\Recovery\Winre.wim R:\Recovery\WindowsRE

6.2 恢复工具的注册位置

我还注册了 Windows 恢复工具的位置,并且它起作用了:

W:\Windows\System32\Reagentc /Setreimage /Path R:\Recovery\WindowsRE /Target W:\Windows

6.3 验证镜像的配置

W:\Windows\System32\Regentc /Into /Target W:\Windows

7.重新启动进入 Windows Server 2016 并执行 sysprep 所要执行的操作?

我将虚拟机重新启动到 Windows Server,片刻之后就可以无需 sysprep 即可通用化机器至少这里是这么说的,我在重启后运行了以下命令:

bcdedit /set {default} device partition=c:
bcdedit /set {default} osdevice partition=c:
bcdedit /set {bootmgr} device partition=c:

概括

一切都解决了,但我仍然有点困惑,如果我没有从旧的 Windows 10 安装中检索到 winre.wim 文件,它会来自哪里,有人知道吗?

相关内容