Bare Metal Reset/Recovery: Enable Your Users to Create Media and to Recover Hard Drive Space
This walkthrough describes how to configure the Windows RE push-button reset features to fully recreate the partition structure of the hard drive. This procedure is also known as a bare-metal recovery. This procedure can be performed if a user needs to replace their hard drive or completely wipe it clean.
You can supply media with a recovery image instead of, or in addition to, including a recovery image on the PC.
You can also configure the PC to enable users to create their own recovery media. When properly configured, users can use this option to reclaim the hard drive space from the recovery image partition when needed.
In this topic:
Creating Configuration Files to Prepare Recovery Media
Enable Your Users to Create Media and to Recover Hard Drive Space
Creating Configuration Files to Prepare Recovery Media
You can use the same configuration files to:
Enable your users to create their own recovery media.
Create your own recovery media for inclusion on the PC.
To create a push-button reset configuration file
In Notepad, create a configuration file that points to your push-button reset partition script.
The following examples are based on the recommended partition configurations in the following topics:
UEFI: Sample: Configure UEFI/GPT-Based Hard Drive Partitions by Using Windows PE and DiskPart
BIOS: Sample: Configure BIOS/MBR-Based Hard Disk Partitions by Using Windows PE and DiskPart
For information about configuring this file, see ResetConfig XML Reference.
To customize your push-button reset, you can also add your extensibility script locations to this configuration file. For more information, see the Add a Script to Push-Button Reset Features topic.
UEFI:
<?xml version="1.0" encoding="utf-8"?> <!-- ResetConfig.xml for UEFI --> <Reset> <!-- May be combined with custom scripts – insert Run Phase elements here --> <SystemDisk> <DiskpartScriptPath>ResetPartitions-UEFI.txt</DiskpartScriptPath> <MinSize>75000</MinSize> <WindowsREPartition>1</WindowsREPartition> <WindowsREPath>Recovery\WindowsRE</WindowsREPath> <OSPartition>4</OSPartition> <RecoveryImagePartition>5</RecoveryImagePartition> <RecoveryImagePath>RecoveryImage</RecoveryImagePath> <RestoreFromIndex>1</RestoreFromIndex> <RecoveryImageIndex>1</RecoveryImageIndex> </SystemDisk> </Reset>
BIOS:
<?xml version="1.0" encoding="utf-8"?> <!-- ResetConfig.xml for BIOS --> <Reset> <!-- May be combined with custom scripts – insert Run Phase elements here --> <SystemDisk> <DiskpartScriptPath>ResetPartitions-BIOS.txt</DiskpartScriptPath> <MinSize>75000</MinSize> <WindowsREPartition>1</WindowsREPartition> <WindowsREPath>Recovery\WindowsRE</WindowsREPath> <OSPartition>2</OSPartition> <RecoveryImagePartition>3</RecoveryImagePartition> <RecoveryImagePath>RecoveryImage</RecoveryImagePath> <RestoreFromIndex>1</RestoreFromIndex> <RecoveryImageIndex>1</RecoveryImageIndex> </SystemDisk> </Reset>
Save the file using the UTF-8 file format:
Click File, and then click Save As. In the Encoding box, select UTF-8, and save this file as E:\Recovery\RecoveryImage\ResetConfig.xml.
To create a partition reset script
In Notepad, create a configuration file that repartitions the hard drive after the hard drive has been reset. This script should be the same as the script used to create partitions on the hard drive, with the following exceptions:
The script should not contain commands to select or clean the drive. The system drive is identified automatically by Windows RE. For more information, see Identifying the System Drive later in this topic.
The script should assign letters to the Windows RE tools partition (UEFI), the system partition, the Windows partition, and the recovery image partition.
The following examples are based on using the following sample Diskpart scripts, located in the associated topics:
UEFI: Sample: Configure UEFI/GPT-Based Hard Drive Partitions by Using Windows PE and DiskPart
BIOS: Sample: Configure BIOS/MBR-Based Hard Disk Partitions by Using Windows PE and DiskPart
UEFI:
rem == ResetPartitions-UEFI.txt == rem == These commands are used with DiskPart to rem reset the drive and recreate five partitions rem for a UEFI/GPT-based computer. rem Adjust the partition sizes to fill the drive rem as necessary. == rem == The differences between this file and rem CreatePartitions-UEFI.txt rem are noted in parenthesis. rem (NOT USED: select disk 0) rem (NOT USED: clean) convert gpt rem == 1. Windows RE tools partition =============== create partition primary size=300 format quick fs=ntfs label="Windows RE tools" assign letter="T" set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" gpt attributes=0x8000000000000001 rem == 2. 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 == 3. Microsoft Reserved (MSR) partition ======= create partition msr size=128 rem == 4. Windows partition ======================== rem == a. Create the Windows partition ========== create partition primary rem == b. Create space for the recovery image === shrink minimum=15000 rem == c. Prepare the Windows partition ========= format quick fs=ntfs label="Windows" assign letter="W" rem === 5. Recovery image partition ================ create partition primary format quick fs=ntfs label="Recovery image" assign letter="R" set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" gpt attributes=0x8000000000000001 list volume exit
BIOS:
rem == ResetPartitions-BIOS.txt == rem == These commands are used with DiskPart to rem reset the drive and create three partitions rem for a BIOS/MBR-based computer. rem Adjust the partition sizes to fill the drive rem as necessary. == rem == The differences between this file and rem CreatePartitions-BIOS.txt rem are noted in parenthesis. rem (NOT USED: select disk 0 ) rem (NOT USED: clean ) rem == 1. System partition ====================== create partition primary size=350 format quick fs=ntfs label="System" assign letter="S" active rem == 2. Windows partition ===================== rem == a. Create the Windows partition ======= create partition primary rem == b. Create space for the recovery image shrink minimum=15000 rem == c. Prepare the Windows partition ====== format quick fs=ntfs label="Windows" assign letter="W" rem == 3. Recovery image partition ============== create partition primary format quick fs=ntfs label="Recovery image" assign letter="R" set id=27 list volume exit
Save your completed file as either E:\Recovery\RecoveryImage\ResetPartitions-UEFI.txt or E:\Recovery\RecoveryImage\ResetPartitions-BIOS.txt, based on your firmware type.
To hide the recovery partition drive letters, or to reset your custom OEM partitions, you can add a custom script. For more information, see Add a Script to Push-Button Reset Features.
Enabling Your Users to Create Media and to Recover Hard Drive Space
Users can use this option to create recovery media, and to reclaim the hard drive space from the recovery image partition when needed.
Step 1: Design your partitions so hard drive space can be recovered into the Windows partition
When designing your PC, configure the last partition on the drive to be the recovery partition. This enables push-button reset to be able to remove this partition when space is needed for other tasks. For more information, see the following topics:
Step 2: Add the configuration files to the destination computer
On your destination computer, insert the USB flash drive with the configuration files.
Copy the configuration files to the destination computer:
Copy E:\Recovery\RecoveryImage\* R:\RecoveryImage\*
where E is the drive letter of the USB flash drive and R is the drive letter of the recovery image partition.
Step 3: Test that Windows can create external media and reclaim hard drive space
Restart the destination computer, and complete Out-Of-Box Experience (OOBE).
Open File Explorer. Right-click Computer, and select Manage. Click Disk Management.
Confirm that the recovery partition exists. Leave the Disk Management window open.
Click Start, type create a recovery drive, select the Settings search scope, and then select Create a recovery drive.
Insert a USB flash drive.
Select Copy the contents from the recovery partition to the recovery drive > Next > Next > Create.
After the USB flash drive is created, select Delete the recovery partition. Windows removes the recovery partition, and reclaims the hard drive space into the Windows partition.
Restore the Disk Management window. Click Action > Refresh. Confirm that the recovery partition no longer exists, and that the drive space has been reclaimed into the Windows partition.
Confirm that the USB drive is successfully created. Optionally, verify that any customizations are present and that they function as intended.
Step 4: Test the recovery media
On a computer that has no operating system, insert your recovery media.
Start the computer, press a key to open the firmware boot menus, and then select the appropriate boot device.
At the Windows RE Tools menus, select a keyboard layout, for example, US.
Click Troubleshoot > Reset your PC > Next.
Note
If you are testing on the same computer, and you have not cleaned the hard drive, you may be prompted to select a drive. Select Windows 8.
Select **Yes, repartition the drives** \> **Just remove my files** \> **Reset**.
Important
Troubleshooting:
- Make sure that ResetConfig.xml is saved as a UTF-8 file.
- Make sure that the filename listed in the <DiskpartScriptPath>ResetPartitions-BIOS.txt</DiskpartScriptPath> element of the ResetConfig.xml file matches the filename in the Diskpart script.
- Make sure that the Diskpart script doesn't include commands to select the drive or clean the drive (
select disk 0
,clean
).
- Optionally, verify that your customizations exist and function as intended.
Identifying the System Drive
Windows identifies the system drive using the following methods:
BIOS-based computers: the BIOS-reported system drive is used.
UEFI-based computers: When Windows RE is enabled by using the reagentc /setreimage
command, Windows writes the adaptor location path and GUID of the system disk to a UEFI variable. This step is only performed when both the system and OS partitions are on the system drive. The variable is updated if necessary when Windows RE gets disabled and then re-enabled.
If multiple local drives are detected, Windows identifies the system drive by searching in the following order:
Windows searches for a drive with a GUID matching the value stored in firmware.
Windows searches for a drive with a location path matching the value stored in firmware.
Windows searches for a drive with an existing ESP.
If multiple drives with ESP are found, the recovery process will not proceed.
Windows searches for an uninitialized (raw) disk.
If multiple uninitialized disks are found, the recovery process will not proceed.
Next steps
Large-Scale Deployment
You can potentially save time by appending the Windows image on the PC you are deploying, rather than recapturing the entire Windows image. If you do this, you must also update the ResetConfig.xml configuration file element:
RecoveryImageIndex
to the appropriate index number. For more information, see Append a Volume Image to an Existing Image Using DISM, ResetConfig XML Reference, and Samples: Applying Windows, System, and Recovery Partitions by using a Deployment Script.To prepare media to include with a new PC that includes the bare metal reset/recovery features, see Create Media to Run Push-Button Reset Features.
See Also
Tasks
Add a Script to Push-Button Reset Features
Reference
ResetConfig XML Reference
REAgentC Command-Line Options