Windows Image Hangs on Boot
-
Good morning,
I am almost positive my problem is not with FOG, however I’m hoping that someone here will have run into it and can help me.
I’m running a Win10 Pro image on Dell Precision 7710 laptops with a 500GB SSD with the OS, and a 1TB Platter with other data(course material for the school I work for). Deploying from an Ubuntu server. Windows image was created on a ‘Master’ laptop. The full image was then captured from the Master and deployed to the student laptops.
The problem I’m running into, and that I’ve had even prior to FOG usage, is some laptops will hang on the initial Windows 10 blue icon. Only way to fix it is to power down and restart. Sometimes it hangs 3-4 times, then on the 5 time it will boot normally. The ‘master’ laptop doesn’t appear to have this problem. And some student laptops don’t seem to have the problem either.
I’ve tried doing the Windows ‘Startup Repair’ but it doesn’t fix it. Sometimes if it hangs 3-4 times in a row it’ll bring up the ‘Automatic Repair’ but that also doesn’t seem to do anything as the laptop can then hang right after the repair.
Anyone seen this, or have any idea how to fix it?
Thanks!
Philip
-
@flipwalker said in Windows Image Hangs on Boot:
The problem I’m running into, and that I’ve had even prior to FOG usage, is some laptops will hang on the initial Windows 10 blue icon. Only way to fix it is to power down and restart. Sometimes it hangs 3-4 times, then on the 5 time it will boot normally. The ‘master’ laptop doesn’t appear to have this problem. And some student laptops don’t seem to have the problem either.
@flipwalker are you using sysprep in your images? If not it may be worth trying.
-
@joe-schmitt No… And here is where I’m going to get laughed at. I am a very inexperienced admin. I’ve only ever used SysPrep one time. When I did each image had to go through the entire initial configuration of Windows, where it asks for you to create a user, add keyboard settings ect…
Is there a way for me to run SysPrep and not require the initial setup on each laptop? We’re reimaging regularly, and having to have an admin go around to each computer to do the initial config is extremely annoying and time consuming… If we have to to avoid the hang on boot then I guess we’ll do it, but it seems like there has to be a way to do what I want, I just haven’t found it.
Philip
-
@flipwalker yup, it can be automated! There’s a file called
Unattend.xml
. If you search around, you should find plenty of resources concerning how to make it.Note: if you have the fog client installed, be sure to read this wiki article: https://wiki.fogproject.org/wiki/index.php?title=FOG_Client#FOG_Client_with_Sysprep
-
FWIW: This is a pretty good online generator for your unattend.xml file. Just don’t include any private information (like license keys) in the online form. Add that data afterwards for security reasons.
Here is a post that shows my call to unattend.xml: https://forums.fogproject.org/topic/11542/super-simple-unattend-customize-xml-for-windows-10-1709
Also look at the chat icon in the FOG Forum tool tray for another few hints.
-
@joe-schmitt Okay. Back to the drawing board. Thanks for pointing me in the right direction. Time to go do research. Hopefully I’m smart enough to figure it out.
Philip
-
To add to the drama… The laptop I just tried installing a fresh windows onto hung on the blue windows symbol when booting from the bootable USB… WTF?
-
@flipwalker who’s bootable USB?
Maybe you need to check into/for a firmware update?
-
@george1421 Not sure if that was the problem but there was a BIOS update last month that I just pushed.
Some places I’m seeing say I need two unattend files? Is that true? I’m currently in Windows System Image Manager trying to build one. Do I just need to focus on the OOBE pass? Some places are talking about the specialize pass.
Philip
-
@flipwalker A single unattend goes through all the different passes. So what you’re reading, might sound like two unattends, but ultimately deals with a single unattend handling each of the individual passes.
I don’t know if windows 10 has the Automated Installation Kit readily available. I did a quick google search. I’m sure there’s a TON of information on it though.
Here’s a link describing what I think you’re thinking is multiple unattends:
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-configuration-passes -
@flipwalker As Tom said, only a single unattend.xml file is used. If you look at my sysprep command in the link below, there is only one option to provide a path you can provide to the unattend.xml file. Save your self some grief too, place the unattend.xml file in C:\Windows\Panther for windows 10.
And to add on to Tom’s comment about AIK, you need to get/use the current version of the OS you are deploying. There are typically updates to AIK with each new release of Win10.
-
So I’ve got a basic unattend file. It’s much shorter then yours. I’m depending on the FOGClient to domain the laptops. Is there a reason I shouldn’t do that? One question that I have is we want our computer names to match the SN, I’ve done a bunch of googling and I’m not sure the command I’ve got in the unattend will do it or not. Seems like there’s mixed opinions on it.
I’m about to run sysprep and do a test deployment.
Do you see anything on my unattend that obviously won’t work? Or something critical that I’m missing? My intent is for the computer to boot straight to login screen with 0 hands on from image.
<?xml version="1.0" encoding="UTF-8"?> -<unattend xmlns="urn:schemas-microsoft-com:unattend"> -<settings pass="specialize"> -<component language="neutral" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" versionScope="nonSxS" publicKeyToken="31bf3856ad364e35" processorArchitecture="amd64" name="Microsoft-Windows-Shell-Setup"> -<OEMInformation> <Manufacturer>Dell</Manufacturer> <Model>Precision 7710</Model> </OEMInformation> <CopyProfile>true</CopyProfile> <OEMName/> <RegisteredOrganization>****************</RegisteredOrganization> <RegisteredOwner>******************</RegisteredOwner> <TimeZone>U.S. Mountain Standard Time</TimeZone> <ComputerName>%SerialNumber%</ComputerName> </component> </settings> -<settings pass="oobeSystem"> -<component language="neutral" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" versionScope="nonSxS" publicKeyToken="31bf3856ad364e35" processorArchitecture="amd64" name="Microsoft-Windows-International-Core"> <SystemLocale>en-US</SystemLocale> <UILanguage>en-US</UILanguage> <UserLocale>en-US</UserLocale> <UILanguageFallback>en-US</UILanguageFallback> <InputLocale>0409:00000409</InputLocale> </component> -<component language="neutral" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" versionScope="nonSxS" publicKeyToken="31bf3856ad364e35" processorArchitecture="amd64" name="Microsoft-Windows-Shell-Setup"> -<OOBE> <HideEULAPage>true</HideEULAPage> <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <ProtectYourPC>1</ProtectYourPC> <UnattendEnableRetailDemo>false</UnattendEnableRetailDemo> <HideLocalAccountScreen>true</HideLocalAccountScreen> <NetworkLocation>Work</NetworkLocation> </OOBE> -<UserAccounts> -<LocalAccounts> -<LocalAccount wcm:action="add"> -<Password> <Value>**********************</Value> <PlainText>false</PlainText> </Password> <Description> Admin Account</Description> <DisplayName>Admin</DisplayName> <Group>Administrators</Group> <Name>admin</Name> </LocalAccount> </LocalAccounts> </UserAccounts> <RegisteredOrganization>**********************</RegisteredOrganization> <RegisteredOwner>********************</RegisteredOwner> <TimeZone>U.S. Mountain Standard Time</TimeZone> </component> </settings> <cpi:offlineImage xmlns:cpi="urn:schemas-microsoft-com:cpi" cpi:source="wim:c:/wim/install.wim#Windows 10 Pro"/> </unattend>
-
@flipwalker said in Windows Image Hangs on Boot:
<ComputerName>%SerialNumber%</ComputerName>
I’m not sure that will work outside of MDT/WDS/SCCM. The %SerialNumber% is a MDT variable. Anyway, what ever you name it in the unattend.xml file, the FOG client will change it to what matches in the fog database. In my unattend.xml I think I have something like DEFAULT64 or something like that, again it doesn’t matter since the FOG client can and will change the host name to match how you have the system registered in FOG.
In my unattend.xml file I also have the windows system log in as a local admin and run a few commands and then reboot. This is all done in a hands off or also called lite touch method.
-
@george1421 So for future reference it doesn’t work. However when I removed it I now have a functional product. What part of your xml causes the login? Do you just put your additional commands in the windows\setup\scripts\setupcomplete.cmd file?
One of the things I’m trying to get implemented is autojoining a WAP without having to provide students with the password. I have found a script that will hypothetically work, but getting it implemented is worrying me.
-
@george1421 I found the autologin I think.
-
@flipwalker Sorry working on a work project after hours.
Yes the firstlogon section is for activities you need to do that requires a command shell.
The setupcomplete.cmd file we do stuff like create admin user accounts (I know you can do that in the unattend.xml but we don’t) also we start the fog client in the setupcomplete.cmd so that the fog client doesn’t kick in too soon and botch OOBE (review the requirements for the FOG client in the wiki).
Connecting to a WAP and setting the preferred settings are easily done by GPO and is the preferred method.
Another point, don’t connect the reference image to AD before you sysprep it. If you need to execute things that need AD, do that in the setupcomplete.cmd or the first run.
-
@george1421 So hypothetically speaking, if the reference image got joined to a domain by FOG(bad FOG, you should read my mind and only do that when I want you to), do I need to scrap it and start over?
I did find the WAP GPO, so that should be good to go now. The only thing I have in setupcomplete right now is the FOG restart.
-
@flipwalker said in Windows Image Hangs on Boot:
So hypothetically speaking, if the reference image got joined to a domain by FOG(bad FOG, you should read my mind and only do that when I want you to), do I need to scrap it and start over?
Sorry to tell you this, but yes you must scrap that image. Because connecting your reference image to AD before sysprep will tattoo that machine in AD. Plus you may have GPO policies (that would be applied) that may interact with your system during OOBE. So its better off not to connect the reference image to AD then unconnect it before sysprep. It never ends well.
Now when you install the FOG client in the reference image, you need to set the service to disabled before your computer is rebooted (for any reason). This will keep the service from running and doing not so helpful things to your reference image. And you are right for the setupcomplete.cmd, use the sc command in there to set the FOG service to auto, and start it if you need. Here is a wiki article on the fog client with sysprep: https://wiki.fogproject.org/wiki/index.php?title=FOG_Client#FOG_Client_with_Sysprep
-
@flipwalker Are you using sysprep generalized and shutdown when you capture?
-
@george1421 Well I’ll be a son of a… Oh well. Ok. I went ahead and tried it anyway. Most of it seems to be ok, however my stepupcomplete.cmd doesn’t seem to want to run on its own. Is this because of the AD problem on the reference image? Or did I screw something else up? It worked previously on another test I did.