Windows 10 often fails to appear in the GRUB menu on Lubuntu 16.04 because the os-prober utility is either disabled, missing, or unable to detect the Windows partition due to fast startup features. Re-enabling detection and updating the bootloader configuration typically resolves this dual-boot visibility issue without requiring manual intervention.
Understanding Why Windows Disappears from GRUB
The GRand Unified Bootloader (GRUB) does not automatically scan for all operating systems by default in modern Ubuntu-based distributions, including Lubuntu 16.04. It relies on a helper script calledos-prober to identify other installed OSes. If this tool is not running or is blocked by configuration settings, Windows will remain invisible in the boot list. Additionally, Windows 10 enables a feature called "Fast Startup" by default, which hibernates the kernel instead of fully shutting down. This can sometimes confuse Linux partition scanners, preventing them from reading the NTFS file system correctly to identify the Windows installation.
Another common cause is that GRUB was installed in UEFI mode while Windows was installed in Legacy BIOS mode, or vice versa. However, if both systems were previously visible and then disappeared, it is more likely a software configuration change rather than a hardware mode mismatch. Ensuring that both operating systems use the same boot mode (either both UEFI or both Legacy) is critical for stable dual-booting.
Checking Fast Startup Settings in Windows
Before modifying Linux configurations, verify the state of Windows. Navigate to the Control Panel and open Power Options. Click on "Choose what the power buttons do." Under Shutdown settings, ensure that "Turn on fast startup (recommended)" is unchecked. Save changes and perform a full shutdown by holding Shift while clicking Restart, or by selecting Shut down from the Start menu. Do not select Restart, as this triggers hibernation even with fast startup disabled in some versions. Once Windows is fully shut down, boot into Lubuntu.Re-enabling OS Detection in GRUB
The primary fix involves ensuring that GRUB is configured to runos-prober. In Lubuntu 16.04, this setting is controlled via the /etc/default/grub file. Open a terminal and edit this file using a text editor with root privileges:
sudo nano /etc/default/grub
Look for the line starting with GRUB_DISABLE_OS_PROBER. If it is commented out (preceded by #), add the following line at the end of the file:
GRUB_DISABLE_OS_PROBER=false
If the line already exists but is set to true, change it to false. This directive explicitly tells GRUB to allow the OS prober to search for other operating systems. After saving the file, you must update the GRUB configuration to apply these changes. Run the following command in the terminal:
sudo update-grub
This command regenerates the grub.cfg file based on the new settings. Upon reboot, check if Windows 10 now appears in the GRUB menu.
Installing and Verifying os-prober
If updating GRUB did not resolve the issue, theos-prober package might be missing or outdated. Install it using the package manager:
sudo apt-get install os-prober
After installation, manually test the tool to see if it detects Windows. Run:
sudo os-prober
If the output includes a line referencing Windows Boot Manager or an NTFS partition, the tool is working correctly. If it returns nothing, there may be a deeper issue with partition recognition. Ensure that the Windows partition is mounted and accessible. You can list partitions using sudo fdisk -l or lsblk to identify the NTFS partition associated with Windows.
Handling Partition Mounting Issues
Sometimes, Linux cannot read the Windows partition because it is marked as "dirty" due to improper shutdowns. Ifos-prober fails, try mounting the Windows partition manually to clear the dirty flag. Identify the Windows partition device name (e.g., /dev/sda1). Then mount it temporarily:
sudo mount /dev/sda1 /mnt
Once mounted, unmount it:
sudo umount /mnt
This process forces Windows to clean up its filesystem metadata, allowing Linux to read it properly. Afterward, run sudo update-grub again.
Advanced Troubleshooting for UEFI Systems
For systems using UEFI, the EFI System Partition (ESP) must be correctly identified. The ESP is usually a small FAT32 partition. Verify its mount point in/etc/fstab. If GRUB was installed incorrectly during initial setup, it might not have written entries to the correct EFI directory. In such cases, reinstalling GRUB to the correct device may be necessary. However, this should only be attempted if previous steps fail. Always back up your data before modifying bootloader configurations.
Frequently Asked Questions
What if Windows still doesn't show after enabling os-prober?
If the entry remains missing, check if the Windows partition is encrypted. GRUB cannot detect encrypted volumes without specific configuration. Additionally, ensure that Secure Boot is disabled in the BIOS/UEFI settings, as it can sometimes interfere with third-party bootloader scripts.
Can I manually add Windows to the GRUB menu?
Yes, you can create a custom menu entry in /etc/grub.d/40_custom. You need to know the exact UUID of the Windows EFI partition and the path to the bootmgfw.efi file. This method is error-prone and should only be used if automatic detection consistently fails.
Does disabling Fast Startup affect Windows performance?
Disabling Fast Startup slightly increases shutdown time but improves system stability when dual-booting. It prevents filesystem corruption risks when switching between Windows and Linux, making it a recommended practice for dual-boot users.
How do I restore GRUB if it gets overwritten?
If Windows updates overwrite the bootloader, you can repair GRUB using a Live USB. Boot from the Lubuntu USB, install boot-repair, and follow the automated recommendations to restore the correct bootloader chain.
Is it safe to remove the GRUB_DISABLE_OS_PROBER line?
Removing the comment symbol to enable the line is safe and standard procedure. However, avoid deleting the line entirely, as the default behavior in newer Ubuntu versions is to disable OS probing for security reasons. Explicitly setting it to false ensures compatibility.