Windows Boot Manager boot option disappears after Image



  • After I capture an image and then deploy it to a new machine, the SSD is no longer recognized as “Windows Boot Manager” instead it is called a long name that includes SSD Partition 1. I am wondering if this is FOG or the way I image or capture my machines. Any help would be greatly appreciated.
    It wouldn’t be a huge deal except it screws the boot sequence up so I have to select that SSD to be the one it boots to first.



  • @Sebastian-Roth I have this issue on the Dell 7730 as well, but after the successful deploy in debug task mode the CentOS boot option reappeared, however the new long name for the windows partition is still there, also the new long name for the linux drive/partition is still there even after the CentOS boot option reappeared.

    Another problem was that when the CentOS came back into the bios it was placed at the top of the boot order sequence, which breaks PXE boot requiring a reboot into setup to correct.

    dell7730bios-bootsequence.PNG

    I believe that I ran across something related to that on the forums while searching for other information, but at the time I didn’t care what the drive/partition was called here so long as it worked.


  • Developer

    @ConJon Do you have any news on this topic? Did you get to pull the requested UEFI boot loader information from your machines?


  • Testers

    Another question. When imaging what do you set the default boot option to?
    i.e. do you change the boot order to network/pxe first, or are you leaving it default and hitting f12 to get to the network boot?

    I change my boot order then when it boots after imaging, if fog didn’t change the boot order it’ll still boot through the fog refind boot to disk menu.
    Then my set-bootmgr function comes into play. Before getting into that though (which involves a bit of setup by the by, a bit of configuration on the fog server end and a bit of configuration on the unattend and files included in your image)

    But I’m curious if booting through the pxe boot after imaging will get you into an automated process to start out.


  • Testers

    @ConJon Looks like you’ve got it set up as

    generalize - > upload
    deploy -> specialize -> oobe

    I’m looking through my generalize and audit system configs to see if there’s anything that might be helping me out with the boot changes. On most my hp computers the boot manager changes in the boot order automatically. We have a few outliers once in a while that don’t change after the fog deploy, like some acer switch 3/5 tablets.

    What model exactly is this happening on again?
    It looks like you just said prodesk, but there is a prodesk 400 and a prodesk 600. There are also different generations and different form factors and that can make a difference too. I have some prodesk 400’s and 600’s of the mini formfactor in G3 and g4 I can test against to see if I can give you a working example


  • Developer

    @ConJon said in Windows Boot Manager boot option disappears after Image:

    I got those results from our FOG Server. The machine that stores and deploys images.

    I wasn’t asking you to run those commands on your FOG server! As described earlier please schedule a debug task on your client, set a password, connect via SSH and get the information right from the client(s). This information is specific for each machine and it’s of not much help to grab it from your FOG server.

    So please re-read my earlier post, grab the information from your client(s) and post here.



  • @JJ-Fullmer
    I’ll look through this and try to simplify it like you did. But below is the unatended file we are using.
    Also yes, I would love it if you could find that refind function in the forums. As long as it also has instructions on how to properly set it up.

    Again, thank you guys for all the help so far!!!

    <?xml version="1.0" encoding="UTF-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
    	<settings pass="generalize">
    		<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<SkipRearm>1</SkipRearm>
    		</component>
    		<component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
    			<DoNotCleanUpNonPresentDevices>false</DoNotCleanUpNonPresentDevices>
    		</component>
    		<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<DoNotCleanTaskBar>false</DoNotCleanTaskBar>
    			<RegisteredOrganization>Tabitha Healthcare</RegisteredOrganization>
    			<RegisteredOwner>Administrator</RegisteredOwner>
    		</component>
    	</settings>
    	<settings pass="specialize">
    		<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<SkipAutoActivation>true</SkipAutoActivation>
    		</component>
    		<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<ComputerName>TabithaImagedPC</ComputerName>
    			<CopyProfile>true</CopyProfile>
    			<TimeZone>Central Standard Time</TimeZone>
    			<DoNotCleanTaskBar>false</DoNotCleanTaskBar>
    			<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
    			<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
    		</component>
    		<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<BlockPopups>no</BlockPopups>
    			<DisableFirstRunWizard>true</DisableFirstRunWizard>
    			<ShowLeftAddressToolbar>true</ShowLeftAddressToolbar>
    			<ShowInformationBar>true</ShowInformationBar>
    			<Window_Title_CN>Tabitha Healthcare</Window_Title_CN>
    			<Home_Page>https://www.tabitha.org</Home_Page>
    		</component>
    		<component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<Identification>
    				<JoinWorkgroup>WORKGROUP</JoinWorkgroup>
    			</Identification>
    		</component>
    		<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<RunSynchronous>
    				<RunSynchronousCommand wcm:action="add">
    					<Order>1</Order>
    					<Path>net user Administrator /active:yes</Path>
    					<WillReboot>Never</WillReboot>
    				</RunSynchronousCommand>
    			</RunSynchronous>
    		</component>
    	</settings>
    	<settings pass="oobeSystem">
    		<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<InputLocale>en-US</InputLocale>
    			<SystemLocale>en-US</SystemLocale>
    			<UserLocale>en-US</UserLocale>
    			<UILanguage>en-US</UILanguage>
    			<UILanguageFallback>en-US</UILanguageFallback>
    		</component>
    		<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    			<AutoLogon>
    				<Password>
    					<Value>1234T@b</Value>
    					<PlainText>true</PlainText>
    				</Password>
    				<LogonCount>3</LogonCount>
    				<Enabled>true</Enabled>
    				<Username>Administrator</Username>
    			</AutoLogon>
    			<FirstLogonCommands>
    				<SynchronousCommand wcm:action="add">
    					<Description>Windows License Key</Description>
    					<Order>1</Order>
    					<CommandLine>cscript %SystemRoot%\system32\slmgr.vbs /ipk X2KCV-NYKXG-JGDT3-TDJHK-WTYQB</CommandLine>
    					<RequiresUserInput>false</RequiresUserInput>
    				</SynchronousCommand>
    				<SynchronousCommand wcm:action="add">
    					<Description>Activate Windows</Description>
    					<Order>2</Order>
    					<CommandLine>cscript %SystemRoot%\system32\slmgr.vbs /ato</CommandLine>
    					<RequiresUserInput>false</RequiresUserInput>
    				</SynchronousCommand>
    				<SynchronousCommand wcm:action="add">
    					<Description>Disable Consumer Features</Description>
    					<Order>3</Order>
    					<CommandLine>reg add HKLM\Software\Policies\Microsoft\Windows\CloudContent /v DisableWindowsConsumerFeatures /t REG_DWORD /d 1 /f</CommandLine>
    					<RequiresUserInput>false</RequiresUserInput>
    				</SynchronousCommand>
    				<SynchronousCommand wcm:action="add">
    					<Description>Control Panel Icon Size</Description>
    					<Order>4</Order>
    					<CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v AllItemsIconView /t REG_DWORD /d 1 /f</CommandLine>
    					<RequiresUserInput>false</RequiresUserInput>
    				</SynchronousCommand>
    				<SynchronousCommand wcm:action="add">
    					<Description>Control Panel View</Description>
    					<Order>5</Order>
    					<CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v StartupPage /t REG_DWORD /d 0 /f</CommandLine>
    					<RequiresUserInput>false</RequiresUserInput>
    				</SynchronousCommand>
    				<SynchronousCommand wcm:action="add">
    					<Description>Control Panel View</Description>
    					<Order>6</Order>
    					<CommandLine>Netsh WLAN add profile filename="C:/Wi-Fi-TAB-Corp.xml"</CommandLine>
    					<RequiresUserInput>false</RequiresUserInput>
    				</SynchronousCommand>
    				<SynchronousCommand wcm:action="add">
    					<Description>Domain and Name</Description>
    					<Order>7</Order>
    					<CommandLine>powershell -ExecutionPolicy ByPass -noexit -File C:\EXECUTE2.ps1</CommandLine>
    					<RequiresUserInput>true</RequiresUserInput>
    				</SynchronousCommand>
    			</FirstLogonCommands>
    			<OOBE>
    				<HideEULAPage>true</HideEULAPage>
    				<ProtectYourPC>1</ProtectYourPC>
    				<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
    				<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
    				<HideLocalAccountScreen>true</HideLocalAccountScreen>
    				<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
    			</OOBE>
    			<DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet>
    			<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
    			<UserAccounts>
    				<AdministratorPassword>
    					<Value>1234T@b</Value>
    					<PlainText>true</PlainText>
    				</AdministratorPassword>
    				<LocalAccounts>
    					<LocalAccount wcm:action="add">
    						<Password>
    							<Value>1234T@b</Value>
    							<PlainText>true</PlainText>
    						</Password>
    						<Description>Local Administrator</Description>
    						<DisplayName>Administrator</DisplayName>
    						<Group>Administrators</Group>
    						<Name>Administrator</Name>
    					</LocalAccount>
    				</LocalAccounts>
    			</UserAccounts>
    			<WindowsFeatures>
    				<ShowMediaCenter>false</ShowMediaCenter>
    				<ShowInternetExplorer>true</ShowInternetExplorer>
    			</WindowsFeatures>
    			<RegisteredOrganization>Tabitha Healthcare</RegisteredOrganization>
    			<RegisteredOwner>Administrator</RegisteredOwner>
    			<DoNotCleanTaskBar>false</DoNotCleanTaskBar>
    		</component>
    	</settings>
    </unattend>
    


  • @Sebastian-Roth I got those results from our FOG Server. The machine that stores and deploys images.



  • @Sebastian-Roth SO for my inactivity, yes so our Fog Machine is set up on a CentOS desktop. Not a virtual machine itself. Our infrastructure is a little messed up right now so we didn’t want to add more to it. I will grab you a destination device as soon as I can.


  • Testers

    @ConJon Hmmm, do you happen to know how your sysprep unattend is configured as far as boot phases?
    i.e. ours goes like this (super simplified summary)

    Capture:

    Install Windows -> ctrl+shift+f3 to enter audit mode from oobe screen - > add customizations -> Run sysprep /audit /reboot /unattend:unattendfile
    -> sysprep Audit System phase -> sysprep Audit User phase -> sysprep Generalize phase -> Shutdown -> Upload to fog

    Deploy :

    Fog images the machine -> sysprep specialize phase -> sysprep oobe phase -> firstlogoncommands/custom provisioning/snapins etc.

    In our case the uefi boot options/order change I believe either during the specialize or oobe phase when it creates the windows boot manager option. I then have a function in my custom provisioning that makes refind the default boot manager. I might have details on that elsewhere in the forum, can dig them up if you’re interested in using refind as a default boot manager. It’s a fun solution that also makes booting to fog or the uefi firmware settings much easier.

    Granted @Sebastian-Roth’s solution of fixing it within fog is better.


  • Developer

    @ConJon said:

    ... Windows Boot Manager VenHW(...

    That’s interesting, I would have expected to see something similar to HD(1,GPT,...)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI) instead. But hey, I am still a bit new to this.

    Just make sure you tell me which machine you got the results from.


  • Developer

    @ConJon said in Windows Boot Manager boot option disappears after Image:

    efivar: command not found

    Well that’s kind of strange. I am sure I had used that command just an hour ago in my test FOS system. Nevermind.

    The output you gave, is that the source master machine? I suppose it is. Please see if you can get me the outputs of a clean destination machine as well…

    In you initial post you said something about “Windows Boot Manager” so I expected you to have Windows installed only. But seems like you have CentOS as well and that is your default boot too. Is that correct? There is nothing wrong about this. I am just learning how to mess with those EFI entries in detail…



  • @Sebastian-Roth

    [root@localhost ~]# ip a s
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 54:bf:64:6f:e5:e2 brd ff:ff:ff:ff:ff:ff
        inet 10.1.4.65/8 brd 10.255.255.255 scope global noprefixroute enp0s31f6
           valid_lft forever preferred_lft forever
        inet6 fe80::295c:4c7e:648e:be88/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    
    [root@localhost ~]# efibootmgr
    BootCurrent: 0001
    Timeout: 2 seconds
    BootOrder: 0001,0000,0003,0004
    Boot0000* Windows Boot Manager
    Boot0001* CentOS
    Boot0003* Onboard NIC(IPV4)
    Boot0004* Onboard NIC(IPV6)
    
    [root@localhost ~]# efibootmgr -v
    BootCurrent: 0001
    Timeout: 2 seconds
    BootOrder: 0001,0000,0003,0004
    Boot0000* Windows Boot Manager  VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...o................
    Boot0001* CentOS        HD(1,GPT,b8575a92-ec48-4c92-a8dc-98de1280cf59,0x800,0x64000)/File(\EFI\centos\shimx64.efi)
    Boot0003* Onboard NIC(IPV4)     /Pci(0x1f,0x6)/MAC(54bf646fe5e2,0)/IPv4(0.0.0.00.0.0.0,0,0)..BO
    Boot0004* Onboard NIC(IPV6)     /Pci(0x1f,0x6)/MAC(54bf646fe5e2,0)/IPv6([::]:<->[::]:,0,0)..BO
    
    [root@localhost ~]# efivar -l
    bash: efivar: command not found
    [root@localhost ~]#
    


  • @JJ-Fullmer
    I am all ears. :)
    Yep we use sysprep
    It happens right after the fog imaging completes
    We have tried both a vm and physical. Happens on both. (We prefer a physical Dell Lattitude 7490)
    UEFI


  • Developer

    @JJ-Fullmer Good questions. Maybe I am on the wrong track with my thinking it’s simply the UEFI boot entries missing.

    @ConJon Can you please help us gather some more information on this? I figured that we have most of the tools in the FOS system already. Please schedule a debug capture task for your master. Start the client and when you get to the shell run passwd to set a root password and ip a s to get the IP information. Then use putty or plain ssh command from another machine to remotely connect to the client in debug mode so you can copy&paste the output of the following commands:

    efibootmgr
    efibootmgr -v
    efivar -l
    halt
    

    Make sure you copy all the information from each of the three commands (before shutting it down via halt) and post them in the here in the forum.

    Then cancel that debug task and schedule a new debug deploy task on one of your destination machines (best if you have one that has not been messed with at all and maybe another one that you have already deployed to). Boot up, set password, connect via SSH, run the commands and post output here.


  • Testers

    I might have some ideas to help with this, a couple questions though…

    • Do you use sysprep when capturing and deploying images?
    • Does the change happen right after fog imaging completes or after a successful boot?
    • Are you capturing from a vm or a physical machine?
    • Are you using UEFI or Legacy/bios/mbr mode for your image?


  • @Sebastian-Roth Awesome. Sounds good! Thank you!


  • Developer

    @ConJon said:

    I am running version 1.5.5 I believe it’s the most current version.

    Yes it is. Definitely good you are up to this version as the changes should only be in the FOS inits and testing will be very easy for you once I get something out.

    I have started to look into it but it’s still a bit down the road. Will keep you up to date here.



  • @Sebastian-Roth I am running version 1.5.5 I believe it’s the most current version.


  • Developer

    @ConJon This probably is kind of a FOG issue as it’s currently not able to capture UEFI boot entries and settings as part of the image. As most machines come with Windows pre installed the UEFI entry already exists and does not cause problems. I have that on my long list of things I’d like to FOG at some point and now that you brought this up I might try and push that a little up again. Can’t promise you anything though.

    Which version of FOG are you running right now?


Log in to reply
 

462
Online

5.5k
Users

12.7k
Topics

120.2k
Posts