Consider the following scenario:
You are installing Data Center or Enterprise Server edition of Windows Server 2008/R2 or later and you boot from DVD or via PXE. The disk(s) on the system are attached via a shared bus (for example SCSI, iSCSI, FIBRE or SAS) and the disk (or SAN presented LUN) which you intend to install to is in a RAW (unformatted) state.When you select the RAW disk to install to, you receive the following message:
“Windows cannot be installed to this disk. This computer’s hardware may not support booting to this disk. Ensure that the disk’s controller is enabled in the computer’s BIOS menu.â€
Also, if you attempt to proceed with installation at this point, installation will fail later on because the disk has the OFFLINE and READ ONLY attributes set.
This failure is by design because the default SAN policy during setup on new installations of Data Center or Enterprise SKUs isÂ
OfflineShared which applies
Offline and
Read Only attributes to any presented disk(s) that are on a shared bus that are not considered System Critical (System or Boot) disks.
Disks which are RAW (unformatted) cannot be detected as System Critical and therefore will result in Setup enforcing the default San policy.
When installing Windows Server in this scenario, the below procedure is required for successful installation.
The default SAN policy on Data Center and Enterprise Server editions of Windows differs from the behavior on other editions (which default to
Online All) in order to prevent data loss in scenarios where disks are unintentionally presented to a server. This behavior prevents unintentional data loss in installation and operational scenarios.
Note: For all other SKUs, the SAN policy is set to
OnlineAll.
To avoid this issue, configure the default SAN policy toÂ
OnlineAll using an unattend answer file integrated into the boot.wim and install.wim images of the installation media to install from or use the setsanpolicy.cmd included with WAIK or the OPK.
WARNING: After the installation completes ensure you reset the SAN policy back toÂ
OfflineShared using Diskpart.exe to to prevent data loss in scenarios where disks are unintentionally presented to a server that contain critical data.
EXAMPLE UNATTEND PARAMETER TO MODIFY SAN POLICY:
<component name="Microsoft-Windows-PartitionManager"
publicKeyToken="31bf3856ad364e35"
language="neutral"
versionScope="nonSxS"
processorArchitecture="x86">
<SanPolicy>1</SanPolicy> </component>
NOTE: "1" = OnlineAll policy.
Disk attached to a shared bus of the following types can encounter this message:-
SCSI (Clustered shared disk)-
ISCSI-
FIBRE -
SAS
NOTE: This would also be enforced on disks with multiple paths, i.e. one of the disks would be Offlined.
TIP: On some hardware the UEFI firmware may not enumerate USB boot devices correctly. In order to avoid inaccurate boot code enumeration at post its recommended that you a) Avoid having any USB flash drives attached at post b) If your storage controller drivers are not in-box, inject your storage drivers into both your DVD's WinPE boot image and the driver store of the install.wim to avoid needing the USB flash drive attached at post.
To inject drivers as documented in Windows OEM Preinstallation Kit Section labeled "Add and Remove Drivers Offline":
NOTE: It is recommended that storage drivers be injected in both your Windows Preinstall boot Image (boot.wim) and your Installation (Install.wim) Image's driver store.
COMMANDS FOR THE WINPE (Boot.wim) IMAGE:
- Mount the base image (boot.wim) by using the DISM tool to a local Windows PE directory. For example:
Collapse this tableExpand this table
|
|---|
Dism /Mount-WIM /WimFile:c:\winpe_x86\boot.wim /index:1 /MountDir:c:\winpe_x86\mount |
- Add the .inf file to the base image by using the dism command with the /Add-Driver option. For example:
Collapse this tableExpand this table
|
|---|
Dism /image:<path_to_image> /Add-Driver /Driver:c:\winpe_x86\mount\Windows\driver.inf |
- Repeat steps 1 and 2 for each additional device driver.
- You must unmount the image after you have modified it.
Collapse this tableExpand this table
|
|---|
dism /unmount-wim /Mountdir:c:\winpe_x86\mount /commit |
COMMANDS FOR THE INSTALL.WIM (Driver Store):
- At an elevated command prompt, navigate to the Windows OEM Preinstallation Kit (Windows OPK) servicing folder, and type the following command to retrieve the name or index number for the image you want to modify.
Collapse this tableExpand this table
|
|---|
Dism /Get-WimInfo /WimFile:C:\test\images\install.wim |
An index or name value is required for most operations that specify a WIM file.
- Type the following command to mount the offline Windows image.
Collapse this tableExpand this table
|
|---|
Dism /Mount-Wim /WimFile:C:\test\images\install.wim /Name:"Windows 7 HomeBasic" /MountDir:C:\test\offline |
- At a command prompt, type the following command to add a specific driver to the image.
Collapse this tableExpand this table
|
|---|
Dism /Image:C:\test\offline /Add-Driver /Driver:C:\drivers\mydriver.INF |
Multiple drivers can be added on one command line if you specify a folder instead of an .inf file. To install all of the drivers in a folder and all its subfolders use the /recurse option. For example,
Collapse this tableExpand this table
|
|---|
Dism /Image:C:\test\offline /Add-Driver /Driver:c:\drivers /Recurse |
To install an unsigned driver, use /ForceUnsigned to override the requirement that drivers installed on X64-based computers must have a digital signature. For example,
Collapse this tableExpand this table
|
|---|
Dism /Image:C:\test\offline /Add-Driver /Driver:C:\drivers\mydriver.INF /ForceUnsigned |
- Review the contents of the %WINDIR%\Inf\ directory in the mounted Windows image to ensure that the .inf files were installed. Drivers added to the Windows image are named Oem*.inf. This is to ensure unique naming for new drivers added to the computer. For example, the files MyDriver1.inf and MyDriver2.inf are renamed Oem0.inf and Oem1.inf.
- At a command prompt, type the following command to commit the changes and unmount the image.
Collapse this tableExpand this table
|
|---|
Dism /Unmount-Wim /MountDir:C:\test\offline /Commit |
* This is in addition to any steps documented below to modify the sanpolicy i.e you might incorporate the above if you do not have in-box driver support for your storage controller in the below steps were noted by "**".
Steps required to integrate sanpolicy parameter into your DVD:NOTE: This process requires the WAIK or OPK be installed.
Copy boot.wim from a Windows Server 2008 / R2 DVD (Located in x:\Sources directory, where "x" is your DVD drive letter) to a scratch location where it can be modified.
You will need to modify the image as follows:
- Add KB979374 to both images in boot.wim
- Use setsanpolicy.cmd to modify the SAN policy in the images in boot.wim
- Create media with this boot.wim and the files from KB2223832 in \efi\boot\microsoft\boot
- Note that KB2223832 does not contain a .msu file so be sure to notice .cab vs. .msu below.
- Use the version of efisys.bin as the bootsector in the OSCDIMG command.
EXAMPLE (Windows Server 2008 R2 based image)- With the WAIK or OPK installed, open a deployment tools command prompt with administrator privilegeÂ
- Download and extract KB 979374 and KB 2223832 to c:\hotfix
1. Md c:\hotfix\tmp
2. Expand f:*.* c:\hotfix\Windows6.1-KB979374-x64.msu c:\hotfix
3. Expand f:*.* c:\hotfix\Windows6.1-KB2223832-x64.cab c:\hotfix\tmp
4. Md c:\SRVr2\media
5. Xcopy d:*.*Â Â c:\SRVr2\media\*.* /eÂ
6. Md c:\srvr2\mount
7. Dism /mount-wim /wimfile:c:\SRVr2\media\sources\boot.wim /index:1 /mountdir:c:\srvr2\mount
8. Dism /image:c:\srvr2\mount /add-package /packagepath:c:\hotfix\Windows6.1-KB979374-x64.cabÂ
9. Setsanpolicy  c:\srvr2\mount 1
** <If applicable - inject storage drivers here before committing boot.wim changes>
10. Dism /unmount-wim /mountdir:c:\srvr2\mount /commit
11. Dism /mount-wim /wimfile:c:\SRVr2\media\sources\boot.wim /index:2 /mountdir:c:\srvr2\mount
12. Dism /image:c:\srvr2\mount /add-package /packagepath:c:\hotfix\Windows6.1-KB979374-x64.cabÂ
13. Setsanpolicy  c:\srvr2\mount 1
** <If applicable - inject storage drivers here before committing boot.wim changes>
14. Dism /unmount-wim /mountdir:c:\srvr2\mount /commit
** <If applicable - Mount and inject storage drivers into install.wim here before creating your iso and burning your dvd>
15. Xcopy c:\hotfix\tmp\* c:\SRVr2\media\* /e
16. Copy c:\hotfix\tmp\efi\microsoft\boot\efisys.bin c:\srvr2\*
17 .Copy “C:\Program Files\Windows OPK\Tools\PETools\amd64\boot\etfsboot.com†c:\srvr2\*
(if WAIK is installed, use WAIK instead of OPK)
18. Oscdimg -m -o -u2 -udfver102 -bootdata:2#p0,e,bC:\srvr2\etfsboot.com#pEF,e,bC:\srvr2\efisys.bin C:\srvr2\media C:\srvr2\x64_2k8r2.iso
19. Burn x64_2k8r2.iso to DVD.
Additional references:http://www.microsoft.com/whdc/system/platform/firmware/UEFIGuide.mspx
(http://www.microsoft.com/whdc/system/platform/firmware/UEFIGuide.mspx)
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See
Terms of Use
(http://go.microsoft.com/fwlink/?LinkId=151500)
for other considerations.