Windows install ISO FOG server 1.3
-
Following instructions on http://ipxe.org/howto/winpe , here are my modifications.
In order to transfer all of the files created from those instructions here:
C:\temp\winpe\
I zipped that folder, and I placed the resulting filewinpe.zip
into my desktop’sC:\Users\Wayne
directory.Then used FTP via command prompt to place it into the correct directory on the FOG Server.
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\workman.wayne>ftp ftp> open 10.2.1.11 Connected to 10.2.1.11. 220 (vsFTPd 3.0.2) User (10.2.1.11:(none)): fog 331 Please specify the password. Password: 230 Login successful. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK. ftp> cd /var/www/html/fog/service/ipxe 250 Directory successfully changed. ftp> put winpe.zip 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 Transfer complete. ftp: 279864968 bytes sent in 4.20Seconds 66571.12Kbytes/sec. ftp>
After transfering that zip file, you would unzip it with the unzip command:
unzip winpe.zip
Where the instructions say “Download the latest version of wimboot and extract the file wimboot to the same directory on your web server.”
I used wget on the fog server, when I was already inside of /var/www/html/fog/service/ipxe.
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
You needunzip
installed to unzip the directory.Once unzipped, it creates a folder called wimboot.123. Go into this folder and just move all it’s contents to the winpe folder like this:
mv * ../winpe
Finally, the folder that was named amd64 in there, you have to change it’s name to x86_64 because that’s what FOG’s iPXE ${arch} variable will return for 64 bit machines.
To do that:
mv amd64 x86_64
then, here is the new menu entry:
kernel winpe/wimboot initrd winpe/${arch}/ISO/boot/bcd BCD initrd winpe/${arch}/ISO/boot/boot.sdi boot.sdi initrd -n boot.wim winpe/${arch}/winpe.wim boot.wim boot
Note I had to add
winpe/
to all the paths.Here’s a screenshot:
-
@Wayne-Workman thx! My paths are very different,
kernel winpe/wimboot
initrd winpe/${arch}/media/Boot/BCD BCD
initrd winpe/${arch}/media/Boot/boot.sdi boot.sdi
initrd winpe/${arch}/media/sources/boot.wim boot.wim
bootbut I will test it now.
-
@raice the ipxe tutorial says to put the resultant files from both of the pre-processes into the same web folder… did you do that?
This process might be worth creating a video for.
-
@Wayne-Workman The link you gave me says the same I think:
Download the latest version of wimboot and extract the file wimboot to the same directory on your web server.
Create a text file boot.ipxe in the same directory on your web server, containing:
#!ipxecpuid --ext 29 && set arch amd64 || set arch x86
kernel wimboot
initrd ${arch}/media/Boot/BCD BCD
initrd ${arch}/media/Boot/boot.sdi boot.sdi
initrd ${arch}/media/sources/boot.wim boot.wim
bootThe files are present at the given location.
-
@raice Don’t do what they say there.
Use FOG’s web UI. All you need to put in is in the screen shot below.
-
@Wayne-Workman But it works
Now I can starting the UEFI project. My working day is over, so get back to you tomorrow. Thanx for your help so far. -
@raice said:
@Wayne-Workman But it works
Now I can starting the UEFI project. My working day is over, so get back to you tomorrow. Thanx for your help so far.Awesome!
-
I may have spoke too soon.
While WinPE loads just fine through FOG, it doesn’t have any drivers for the NIC. gah!
-
Looking through these instructions:
https://technet.microsoft.com/en-us/library/dn613857.aspxMicrosoft’s commands for mounting the wim image has many, many errors. After digging deep throug the help menus with
Dism /?
andDism /Mount-Wim /?
this is the command I came up with:I went ahead and changed amd64 here instead of later, to x86_64
Dism /Mount-Wim /WimFile:"C:\temp\winpe\x86_64\winpe.wim" /index:1 /MountDir:"C:\temp\winpe\x86_64\mount"
Microsoft’s steps on adding drivers are also wrong… Here is the correct command in our context, and pulling the drivers from the machine the command is running on. Since my target is an Optiplex 7010, i’m doing this on a working Optiplex 7010 (just for now, and to get something working).
Dism /image:C:\temp\winpe\x86_64\mount /Add-Driver /Driver:C:\Windows\System32\drivers /recurse
Dism /image:C:\temp\winpe\x86_64\mount /Add-Driver /Driver:C:\Windows\System32\DriverStore /recurse
This lists the added drivers:
Dism /Image:C:\temp\winpe\x86_64\mount /Get-Drivers /all
Save all changes:
Dism /Unmount-Wim /MountDir:C:\temp\winpe\x86_64\mount /commit
Using a remote directory in WinPE and launching setup.exe.
I created a share called win10$ that has read-only access to all users on one of my windows servers.Here’s how I used it in WinPE:
net use \\mb1\win10$ PasswordGoesHere /USER:DomainNameHere:UserNameHere
\\mb1$\win10$\setup.exe
NOTES: Once the WIM image is mounted, you can manually manipulate the files in there, copy, and paste if you wish. But after changes are made, you must use the Unmount / commit command.
#wiki
-
I was able to install Windows 10 via WinPE and FOG - after several small hiccups.
I think I’ve got this ironed out. this deserves a wiki article and a follow-along video.
-
@Wayne-Workman I am able to get it to work too. Used this: https://technet.microsoft.com/en-us/library/dn613857.aspx to add all network drivers (got around 40 laptops here) and created 2 samba shares on the FOG server. One to the installation folder (where I got win7, win8 and win10) and one to the same folder with write rights. This way I am able to alter the installations from my pc and create an unattended.
scrolling down shows me you beat me to it
-
I’ll post a script to make your own WinPE on Monday. It does require you to have Windows AIK, but you can just download that from Microsoft.
It allows you to automatically map your network drive and even launch setup with arguments. It all depends on what kind of setup you want of course, but hopefully you’ll at least get some insight in how to approach the situation with it.
-
@Wayne-Workman @Quazz already on it. Mounted the disk with DISM
dism /Mount-Image /ImageFile:“c:\temp\winpe\x86_64\media\sources\boot.wim” /index:1 /MountDir:“c:\temp\winpe\x86_64\mount”
navigated to Windows\System32\startnet.cmd
It already contains wpeinit. Do not change that line, but add your code after that.
Mine so far is
net use z: \x.x.x.x\isos\win7
net use x: \x.x.x.x\isos\win8
net use y: \x.x.x.x\isos\win10
menu.bat
now creating a menu in a separate batch file
So after that I created a menu.bat in the system32 folder with
http://www.sevenforums.com/tutorials/78083-batch-files-create-menu-execute-commands.html
to start the setup of different windows versions. Now I only have one PE box and 3 Windows installs. The next step is to automate the installations. -
@raice Don’t use x: to mount a network drive as WinPE will mount itself on X: on boot already!
-
I’m using that with FOG 1.2.0:
:WS2012R2 sanboot --no-describe --drive 0x81 ${boot_url}discimg/WS2012R2.iso goto MENU
-
@raice said:
The next step is to automate the installations.
I’d rather my installations not be automated lol. I WANT to do it manually, then I’ll take an image with FOG and blast it out to 500 computers in an automated fashion…
-
@Wayne-Workman said:
I’d rather my installations not be automated lol. I WANT to do it manually, then I’ll take an image with FOG and blast it out to 500 computers in an automated fashion…
Really? And out of those 500 systems, how many are the same make and model? Lets make it a bit harder for our selves like, lets install the french version of MS Windows and then load a US English mui so the Americans can use the computer.
While I understand what the OP is trying to accomplish there are better/easier ways than using FOG to hand out the iso images (thinking a multiboot flash drive would be less complex).
-
@george1421 I make an image per model. and our 1Gbps network is far faster than USB 2.0 or optical disk. Plus, it’s handy. I will be able to load an alternative OS anywhere at any moment instead of carrying around flash drives.
-
@Wayne-Workman in out environment that’s nearly impossible. We sell new and second hand laptops. So we got different models every day. Now we can just start the installation and sysprep it afterwards.
Do you want the documentation or did you write your own now? I almost finished and only need to translate it.
-
@echo off rem The fileserver IP set FILESERVER=192.168.1.155 rem Share on the fileserver. set SHARE=INSTALLERS\ISOFILES\0-WINPE rem Username for the share set SHAREUSER=root rem Password for the share set SHAREPASS=root rem amd64 or x86 set ARCH=amd64 rem Path to hold working files. Needs about 500MB of free space. set PEPATH="c:\winpe_%ARCH%" rem ########################################################## rem Don't edit anything below here rem ########################################################## echo Creating the PE image call copype.cmd %ARCH% %PEPATH% > NUL echo Mounting the image dism /Mount-Wim /WimFile:%PEPATH%\media\sources\boot.wim /index:1 /MountDir:%PEPATH%\mount /quiet echo Adding commands to the startup script in PE echo. >> %PEPATH%\mount\windows\system32\startnet.cmd echo ping %FILESERVER% >> %PEPATH%\mount\windows\system32\startnet.cmd echo net use z: \\%FILESERVER%\%SHARE% %SHAREPASS% /u:%FILESERVER%\%SHAREUSER% >> %PEPATH%\mount\windows\system32\startnet.cmd echo z: >> %PEPATH%\mount\windows\system32\startnet.cmd echo z:\64.bat >> %PEPATH%\mount\windows\system32\startnet.cmd echo Creating the pxeboot directory mkdir %PEPATH%\pxeboot > NUL mkdir %PEPATH%\pxeboot\Fonts > NUL copy /y %PEPATH%\mount\windows\boot\Fonts\*.* %PEPATH%\pxeboot\Fonts\ > NUL copy /y "%WinPERoot%\%ARCH%\Media\Boot\boot.sdi" %PEPATH%\pxeboot\ > NUL copy /y "%WinPERoot%\%ARCH%\Media\Boot\BCD" %PEPATH%\pxeboot\ > NUL echo Unmounting the image dism /unmount-Wim /MountDir:%PEPATH%\mount /Commit /quiet echo Optimizing the image imagex /EXPORT %PEPATH%\media\sources\boot.wim 1 %PEPATH%\pxeboot\boot.wim > NUL echo. echo All the files you need for your PXE server are in: %PEPATH%\pxeboot\
This script needs to be called from the Deployment and Images Tool Environment command prompt.
I based myself on http://www.wcooke.org/wiki/Installing_Windows_using_PXELINUX but modified it since certain things didn’t work (it would create a corrupt BCD when there’s a perfectly fine working one included with WinPE) and other things were unnecessary.
If you make changes to the script and call it again make sure to delete the target directory first or your startnet.cmd will get messed up!
edit: Added ping command to give network drivers time to load before attempting to mount the network location.