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. -
@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?
-
@Sebastian-Roth I am running version 1.5.5 I believe it’s the most current version.
-
@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 Awesome. Sounds good! Thank you!
-
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?
-
@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 andip 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.
-
@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 -
[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 ~]#
-
@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…
-
@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.
-
@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 fogDeploy :
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.
-
@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.
-
@Sebastian-Roth I got those results from our FOG Server. The machine that stores and deploys images.
-
@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>
-
@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.
-
@ConJon Looks like you’ve got it set up as
generalize - > upload
deploy -> specialize -> oobeI’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 -
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.
-
@ConJon Do you have any news on this topic? Did you get to pull the requested UEFI boot loader information from your machines?
-
@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.
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.