Hyper-V

應用/部署/恢復映像時,bcdedit 在 Windows PE 中不起作用?

  • September 22, 2020

我擷取了一個映像,我試圖在不使用 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 進行還原

創建一個新的 vm 並使用 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

然後我執行它來應用映像,但是之後新的 VM 將無法啟動:

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 引導載入程序,以便 vm 可以啟動並且我可以創建第二個 WSUS 伺服器。我在想也許我需要做一個 runas,但由於我在 WinPE 中,我會以什麼使用者身份執行命令?我還在 bcdedit.exe 上找到了一些文件,但我是 GPT 分區和 UEFI 的新手,所以我不知道如何繼續。

好的,所以我能夠讓事情重新開始,但只有在遵循微軟網站上的手冊之後。

首先,我開始閱讀Capture and Apply a Windows .wim file,它連結到另一個關於 GPT 分區結構以及如何使用腳本(命名)創建它的文件( CreatePartitions-UEFI.txt ) ,當我再次返回原始文件時記錄說明我們要執行的說明,然後應用映像,最後將一些文件複製到 GPT 分區;見下文:diskpart``CreatePartions-UEFI.txt``diskpart /s CreatePartitions-UEFI.txt

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

CreatePartitions-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:\
  1. 使用引導文件設置分區:

W:\Windows\System32\bcdboot W:\Windows /s S:
  1. 使用 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
  1. 重新啟動到 Windows Server 2016 並執行 sysprep 會執行的操作?

我將 vm 重新啟動到 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 文件的來源,我仍然有點困惑,有人知道嗎?

引用自:https://serverfault.com/questions/1034444