After installing endless, my PC is not booting up now

even after selecting windows, nothing is appearing up?

Hi @omnish, sorry for the slow reply. I’m a bit confused by why you have two Windows entries… Is there anything unusual about your system – multiple Windows installations, multiple hard disks, etc.?

Can you try the following steps:

  • First, for each item in the menu (Windows, Windows, Endless):
    • Use the arrow keys to select that menu item
    • Press the e key to show a list of commands for that menu item
    • Take a photo
    • Press the F10 key to try to boot; take a photo of any error messages you see
  • Then, try restarting your computer and entering the BIOS/firmware configuration screen (you normally do this by pressing Del, F12, etc. as soon as the computer turns on; on some laptops there’s a dedicated button)
    • If you can find this, look for a “Boot Order” option or similar. If it has a “Windows Boot Manager” entry, you can try booting that directly.
    • If you have a BIOS rather than EFI firmware, that option won’t be present and we’ll have to try some other approach…
1 Like

If I’m not mistaken, you’re having a problem with the Windows bootloader. Try booting from a Windows installation disc of the version you have installed (same service pack is important!) and select “Advanced” then run Startup Repair. Please let me know what your result is.

For what it’s worth, I have a Windows laptop that I installed Endless for dual-boot, and I also have two Windows entries on the boot menu. I suspect it may have been due to an update on the Windows side. If I recall correctly, I first recovered a Toshiba image of Windows 7, and then I upgraded to Windows 10. (I never actually use Windows on this laptop other than for testing the Endless dual-boot configuration.)

In any case, if I select the first Microsoft Windows entry on the menu (which corresponds to ‘hd0,msdos2’), I get an error message: “A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source.” If I select the second Microsoft Windows entry (which corresponds to ‘hd0,msdos1’), Windows 10 boots fine.

@omnish Have you tried both Microsoft Windows entries?

@wjt Let me know if there is any other information you’d like me to get off my laptop to help understand why some people might be getting two Microsoft Windows entries.

Roddy

1 Like

@roddy do you remember which version of Endless OS you originally installed on that machine? On BIOS machines, which from the fact you have msdos partitions I believe your machine is, recent installations should only show one Windows entry because Windows requires (I believe) that only one partition has the “bootable” flag in the partition table. It’d be interesting to see C:\endless\grub\grub.cfg – it might be a little hard to find because we flag all that stuff as hidden + system.

1 Like

@wjt According to eos-diagnostics, the image was eos-eos3.0-amd64-amd64-160917-205531.base – i.e., version 3.0.3.

It was tricky to find, but here are the contents of grub.cfg:

function load_video {
  insmod all_video
}
if [ "x${timeout}" != "x-1" ]; then
    if keystatus; then
        if keystatus --shift; then
            set timeout=-1
        else
            set timeout=0
        fi
    else
        if sleep --interruptible 1 ; then
            set timeout=0
        fi
    fi
fi
 
if test "$eoslive" ; then
    if test -f ($eoslive)/endless/live ; then
        set kparams="$kparams endless.live_boot"
    fi
 
    # test for Windows hibernation
    hexdump -n 4 ($eoslive)/hiberfil.sys hibr_var
    if test ( "$hibr_var" == "HIBR" -o "$hibr_var" == "hibr" ) ; then
        set hibernation=true
    fi
fi
 
insmod regexp
for dev in ($bootdev,*); do
    regexp -s device '\((.*)\)' $dev
 
    if test "$grub_platform" == "efi"; then
        if test -f ($device)/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI ; then
            set found_windows=true
            menuentry "Microsoft Windows" $device {
                set root=$2
                chainloader ($root)/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI
            }
        fi
    else
        if test ( -f ($device)/bootmgr -a -f ($device)/Boot/BCD ) ; then
            set found_windows=true
            # Windows Vista or later
            menuentry "Microsoft Windows" $device {
                set root=$2
                chainloader +1
            }
        elif test ( -f ($device)/ntldr -a -e ($device)/ntdetect.com -a -f ($device)/boot.ini ) ; then
            set found_windows=true
            # Windows XP
            menuentry "Microsoft Windows" $device {
                set root=$2
                regexp -s devnum 'hd([0-9]+)' $root
                if test "$devnum" != "0"; then
                    drivemap -s hd0 $root
                fi
                chainloader +1
            }
        fi
    fi
done
 
if test "$hibernation"; then
    menuentry "Endless OS (unavailable)" {
        echo -------------------------------------------------------------
        echo Endless OS is unavailable whilst Windows is hibernated.
        echo Please select Windows and shut down or reboot to use Endless.
        echo -------------------------------------------------------------
        echo
        echo Press ENTER to continue ...
        read
   }
else
    insmod blscfg
    bls_import
fi
 
if test "$found_windows"; then
    set timeout=10
fi
 
set default='0'
RAW Paste Data

function load_video {
  insmod all_video
}
if [ "x${timeout}" != "x-1" ]; then
    if keystatus; then
        if keystatus --shift; then
            set timeout=-1
        else
            set timeout=0
        fi
    else
        if sleep --interruptible 1 ; then
            set timeout=0
        fi
    fi
fi

if test "$eoslive" ; then
    if test -f ($eoslive)/endless/live ; then
        set kparams="$kparams endless.live_boot"
    fi

    # test for Windows hibernation
    hexdump -n 4 ($eoslive)/hiberfil.sys hibr_var
    if test ( "$hibr_var" == "HIBR" -o "$hibr_var" == "hibr" ) ; then
        set hibernation=true
    fi
fi

insmod regexp
for dev in ($bootdev,*); do
    regexp -s device '\((.*)\)' $dev

    if test "$grub_platform" == "efi"; then
        if test -f ($device)/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI ; then
            set found_windows=true
            menuentry "Microsoft Windows" $device {
                set root=$2
                chainloader ($root)/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI
            }
        fi
    else
        if test ( -f ($device)/bootmgr -a -f ($device)/Boot/BCD ) ; then
            set found_windows=true
            # Windows Vista or later
            menuentry "Microsoft Windows" $device {
                set root=$2
                chainloader +1
            }
        elif test ( -f ($device)/ntldr -a -e ($device)/ntdetect.com -a -f ($device)/boot.ini ) ; then
            set found_windows=true
            # Windows XP
            menuentry "Microsoft Windows" $device {
                set root=$2
                regexp -s devnum 'hd([0-9]+)' $root
                if test "$devnum" != "0"; then
                    drivemap -s hd0 $root
                fi
                chainloader +1
            }
        fi
    fi
done

if test "$hibernation"; then
    menuentry "Endless OS (unavailable)" {
        echo -------------------------------------------------------------
        echo Endless OS is unavailable whilst Windows is hibernated.
        echo Please select Windows and shut down or reboot to use Endless.
        echo -------------------------------------------------------------
        echo
        echo Press ENTER to continue ...
        read
   }
else
    insmod blscfg
    bls_import
fi

if test "$found_windows"; then
    set timeout=10
fi

set default='0'

@roddy thanks. So you’re missing the logic to only show one Windows entry on BIOS machines, introduced in 3.0.5. We don’t currently update the bootloader or its config after installation, so this is not a surprise.

Unless @omnish installed a really old version of Endless OS in January, I think their issue is separate (probably an EFI machine).

1 Like