System Deployment Image

A System Deployment Image (aka SDI) is a file format used primarily with Microsoft products to contain an arbitrary disk image, including boot sector information.

Description
The System Deployment Image (SDI) file format is often used to allow the use of a virtual disk for startup or booting. Some versions of Microsoft Windows allow for "RAM booting", which is essentially the ability to load an SDI file into memory and then boot from it. The SDI file format also lends itself to network booting using the Preboot Execution Environment (PXE). Another usage is hard disk imaging. The SDI file itself is partitioned into the following sections:


 * Boot BLOB : This contains the actual boot program, STARTROM.COM. This is analogous to the boot sector of a hard disk.
 * Load BLOB : This typically contains NTLDR and is launched by the boot BLOB.
 * Part BLOB : This contains the actual boot runtime (i.e. the contents of the disk image including any Operating System [OS] files) and also includes the boot.ini (used by NTLDR) and ntdetect.com files which should be located within the root directory of the runtime. The size of the runtime cannot exceed 500 MB. In addition to this requirement the runtime must also be capable of dealing with the fact that it is booting from a ramdisk. This implies that the runtime must include the "Windows RAM Disk Driver" component (specified within the boot.ini).


 * Disk BLOB : This is flat HDD image starting with a MBR. It is used for hard drive imaging instead of booting. Also only Disk BLOBs can be mounted with Microsoft's utilities.

SDI usually contains either Disk BLOB (HD cloning or temporary SDI) or three other of them (bootable SDI).

Windows Vista or Windows PE 2.0 boot sequence includes a boot.sdi file, which contains Part BLOB for an empty NTFS volume and a Table-of-Contents slot for the WIM image, which is stored on a separate on-disk file.

SDI driver
SDI files can be mounted as virtual disk drives and assigned a drive letter if an SDI driver is available to allow this. A SDI driver is a type of storage driver and is commonly used with Windows XP Embedded.

SDI management
Microsoft provides a tool called the "SDI File Manager" (sdimgr.exe) which can be used for the purpose of manipulating SDI files. Some of the tasks which this tool facilitates are:


 * The creation of an SDI image file.
 * The creation of an SDI image file from an existing hard disk partition.
 * The verification of an existing SDI image.

SDI loader
The mechanism which allows for the creation, addition and removal of virtual disk drives. SDI Loader and Driver work with Disk BLOB.