User Tools

Site Tools


diskimagescript-usage

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
diskimagescript-usage [2014/08/22 18:23]
gsamfira
diskimagescript-usage [2014/08/26 19:14] (current)
anashwan Updated Wiki
Line 2: Line 2:
 # Using the Diskimage-Builder PowerShell script # Using the Diskimage-Builder PowerShell script
  
-This page thoroughly documents the use of [this](https://github.com/slokesh184/windows-diskimage-builder/blob/master/windows-diskimage-builder/diskimagebuilder.ps1) PowerShell script to obtain valid _vdh/qcow2_ Windows disks from an installation _.iso_ image.+This page thoroughly documents the use of [this](https://github.com/slokesh184/windows-diskimage-builder/blob/master/windows-diskimage-builder/diskimagebuilder.ps1) PowerShell script to obtain valid _vdh/vhdx/qcow2_ Windows disks from an installation _.iso_ image.
  
 ## Prerequisites: ## Prerequisites:
Line 8: Line 8:
 #### Start a PowerShell session from _cmd_: #### Start a PowerShell session from _cmd_:
 ``` ```
-start powershell+start powershell
 ``` ```
  
Line 14: Line 14:
 #### Download and install _git_: #### Download and install _git_:
 ``` ```
-(New-Object System.Net.WebClient).DownloadFile("https://msysgit.googlecode.com/files/Git-1.9.0-preview20140217.exe", "$HOME\Git-1.9.0-preview20140217.exe"+PS> (New-Object System.Net.WebClient).DownloadFile("https://msysgit.googlecode.com/files/Git-1.9.0-preview20140217.exe", "$HOME\Git-1.9.0-preview20140217.exe"
-cmd.exe /C call $HOME\Git-1.9.0-preview20140217.exe /SILENT+PS> cmd.exe /C call $HOME\Git-1.9.0-preview20140217.exe /SILENT
 ``` ```
  
 #### For _qcow2 conversion support_, download and install the latest _qemu_ tools(as of the making of this article, build date 08.01.2014): #### For _qcow2 conversion support_, download and install the latest _qemu_ tools(as of the making of this article, build date 08.01.2014):
 ``` ```
-(New-Object System.Net.WebClient).DownloadFile("http://qemu.weilnetz.de/w64/qemu-w64-setup-20140801.exe", "$HOME\qemu-w64-setup-20140801.exe"+PS> (New-Object System.Net.WebClient).DownloadFile("http://qemu.weilnetz.de/w64/qemu-w64-setup-20140801.exe", "$HOME\qemu-w64-setup-20140801.exe"
-cmd.exe /C call $HOME\qemu-w64-setup-20140801.exe /SILENT+PS> cmd.exe /C call $HOME\qemu-w64-setup-20140801.exe /SILENT
 ``` ```
  
 #### Add all dependencies to path, both to the environment variable and for the current session: #### Add all dependencies to path, both to the environment variable and for the current session:
 ``` ```
-$newPath = "$env:Path;${env:ProgramFiles(x86)}\Git\cmd;${env:ProgramFiles}\qemu" +PS> $newPath = "$env:Path;${env:ProgramFiles(x86)}\Git\cmd;${env:ProgramFiles}\qemu" 
-$env:Path = $newPath +PS> $env:Path = $newPath 
-setx PATH $newPath+PS> setx PATH $newPath
 ``` ```
  
Line 34: Line 34:
 ## Getting the script: ## Getting the script:
 ``` ```
-cd $HOME +PS> cd $HOME 
-git clone https://github.com/slokesh184/windows-diskimage-builder+PS> git clone https://github.com/slokesh184/windows-diskimage-builder
 ``` ```
  
Line 43: Line 43:
 #### Start a new PowerShell session as administrator: #### Start a new PowerShell session as administrator:
 ``` ```
-Start-Process PowerShell -Verb RunAs+PS> Start-Process PowerShell -Verb RunAs
 ``` ```
  
Line 49: Line 49:
 ### Getting at the _.wim_ file of an _.iso_:   ### Getting at the _.wim_ file of an _.iso_:  
 ``` ```
-$mountpoint = Mount-DiskImage -ImagePath C:\Absolute\Path\To\Your\Iso\Image.iso -PassThru +PS> $mountpoint = Mount-DiskImage -ImagePath C:\Absolute\Path\To\Your\Iso\Image.iso -PassThru 
-$wimfilePath = ($mountpoint | Get-Volume).DriveLetter + ":\sources\install.wim"+PS> $wimfilePath = ($mountpoint | Get-Volume).DriveLetter + ":\sources\install.wim"
  
 # AFTER succesfully using the .wim in the script, don't forget to dismount the .iso: # AFTER succesfully using the .wim in the script, don't forget to dismount the .iso:
-Dismount-DiskImage -ImagePath C:\Absolute\Path\To\Your\Iso\Image.iso+PS> Dismount-DiskImage -ImagePath C:\Absolute\Path\To\Your\Iso\Image.iso
 ``` ```
  
-### Creating a _.vhd_:+### Creating a _.vhd_ or _.vhdx_: 
 + 
 +* **Note**: For _.vhdx_ output, simply provide a VHDFile name with the _.vhdx_ extension.
 ``` ```
-cd $HOME\windows-diskimage-builder\windows-diskimage-builder+PS> cd $HOME\windows-diskimage-builder\windows-diskimage-builder
 # previous steps for obtaining the $wimfilePath are assumed to have been done # previous steps for obtaining the $wimfilePath are assumed to have been done
-.\diskimagebuilder.ps1 -SourceFile $wimfilePath -VHDFile $HOME\resultingDiskImage.vhd -VHDSize 16+PS> .\diskimagebuilder.ps1 -SourceFile $wimfilePath -VHDFile $HOME\resultingDiskImage.vhd -VHDSize 16
 ``` ```
 * *Notes:* * *Notes:*
Line 69: Line 71:
 ### Creating a _.qcow2_: ### Creating a _.qcow2_:
 ``` ```
-.\diskimagebuilder.ps1 -SourceFile $wimfilePath -VHDFile $HOME\resultingDiskImage.vhd -VHDSize 16 -OutputFormat qcow2+PS> .\diskimagebuilder.ps1 -SourceFile $wimfilePath -VHDFile $HOME\resultingDiskImage.vhd -VHDSize 16 -OutputFormat qcow2 -VirtIOPath C:\Absolute\Path\To\VirtIO.iso
 ``` ```
 * **Notes:** * **Notes:**
 +  * If operating on _qcow2_'s; applyiong the drivers from the VirtIO _.iso_ is **absolutely necessary**
   * Even when creating a _.qcow2_, the name of the resulting file **must have the .vhd extension**, lest _DiskPart_ will fail at processing it.   * Even when creating a _.qcow2_, the name of the resulting file **must have the .vhd extension**, lest _DiskPart_ will fail at processing it.
   * After the execution of the script, the result will indeed be a _.qcow2_ as the script puts the proper extension towards the end of its execution.   * After the execution of the script, the result will indeed be a _.qcow2_ as the script puts the proper extension towards the end of its execution.
Line 83: Line 86:
 ## Script parameters and options: ## Script parameters and options:
  
-* -SourceFile C:\Path\To\Wim\File.wim+* **-SourceFile** C:\Path\To\Wim\File.wim
   * absolute path to the .wim file which will be used as input.   * absolute path to the .wim file which will be used as input.
-* -VHDFile C:\Path\To\Output\File.vhd+* **-VHDFile** C:\Path\To\Output\File.vhd
   * absolute path to the script's output file;   * absolute path to the script's output file;
   * must have the .vhd extension initially, even when creating a _qcow2_.   * must have the .vhd extension initially, even when creating a _qcow2_.
   * if _qcow2_ is selected, output's extention is changed to ".qcow2" automatically.   * if _qcow2_ is selected, output's extention is changed to ".qcow2" automatically.
   * represents the **exact** path to the output file, **which must NOT exist beforehand**.   * represents the **exact** path to the output file, **which must NOT exist beforehand**.
-* -VHDSize 16+* **-VHDSize** 16
   * maximum size in GB of the resulting vhd/qcow2 image   * maximum size in GB of the resulting vhd/qcow2 image
   * for most Windows installations, I reccommend at the very least 12, prefferably 16.   * for most Windows installations, I reccommend at the very least 12, prefferably 16.
   * all output disks are resizeable, so initial size of output may be a lot less than this value.   * all output disks are resizeable, so initial size of output may be a lot less than this value.
-* -CloudbaseInitMsiUrl http://someplace.net/someothercloudbaseinit.msi+* **-CloudbaseInitMsiUrl** http://someplace.net/someothercloudbaseinit.msi
   * link to the CloudBaseInit.msi that is to be added to the image.   * link to the CloudBaseInit.msi that is to be added to the image.
   * default is http://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi   * default is http://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta.msi
   * the .msi together with a .cmd to execute it are put in the resulting disk under Disk:\Windows\Setup\Scripts   * the .msi together with a .cmd to execute it are put in the resulting disk under Disk:\Windows\Setup\Scripts
-* -UnattendedPath C:\Absolute\Path\To\Unattended.xml+* **-UnattendedPath** C:\Absolute\Path\To\Unattended.xml
   * path to the .xml file which is to be used in unattended mode.   * path to the .xml file which is to be used in unattended mode.
   * default is the Unattended.mxl that can be found right beside the script.   * default is the Unattended.mxl that can be found right beside the script.
   * the .xml file is placed directly in the root directory of the created image.   * the .xml file is placed directly in the root directory of the created image.
-* -DriversPath+* **-DriversPath** C:\Absolute\Path\To\Drivers\Folder
   * path to a folder containing drivers that are to be added to the disk.   * path to a folder containing drivers that are to be added to the disk.
   * default is none, in which case no additional drivers will be added to the disk image.   * default is none, in which case no additional drivers will be added to the disk image.
-* -VirtIOPath C:\Absolute\Path\To\VirtIO.iso+* **-VirtIOPath** C:\Absolute\Path\To\VirtIO.iso
   * path to a VirtIO _.iso_ from which VirtIO drivers mean to be installed.   * path to a VirtIO _.iso_ from which VirtIO drivers mean to be installed.
   * default is none, in which case no additional drivers will be installed to the disk image.   * default is none, in which case no additional drivers will be installed to the disk image.
-* -Feature feature+* **-Feature feature**
   * feature to be enabled in the final disk image (ex: TFTP, IIS-WebServer, etc...)   * feature to be enabled in the final disk image (ex: TFTP, IIS-WebServer, etc...)
   * this script only specifically enables one feature per image, the default being none.   * this script only specifically enables one feature per image, the default being none.
   * the feature are enabled in the image by _DISM.exe_, for a full list of features, please review [this webpage](http://blogs.technet.com/b/joscon/archive/2010/08/26/adding-features-with-dism.aspx).   * the feature are enabled in the image by _DISM.exe_, for a full list of features, please review [this webpage](http://blogs.technet.com/b/joscon/archive/2010/08/26/adding-features-with-dism.aspx).
-* -DiskLayout UEFI+* **-DiskLayout** UEFI
   * the layout of the resulting disk, used if booting the disk in UEFI mode is desired.   * the layout of the resulting disk, used if booting the disk in UEFI mode is desired.
   * default value is BIOS.   * default value is BIOS.
-* -Index 3+* **-Index** 3
   * index of the _.wim_ supplied as input, if applicable.   * index of the _.wim_ supplied as input, if applicable.
   * default value is 1 and it will work in the vast majority of cases.   * default value is 1 and it will work in the vast majority of cases.
-* -SerialBaudRate 8400+* **-SerialBaudRate** 8400
   * baudrate of the serial port that is to be added to the disk.   * baudrate of the serial port that is to be added to the disk.
   * default is 9600 and will work fine in the vast majority of cases.   * default is 9600 and will work fine in the vast majority of cases.
 </markdown> </markdown>
diskimagescript-usage.txt · Last modified: 2014/08/26 19:14 by anashwan