16

I am using dual boot Ubuntu 16.04 and Windows 10. There is a problem which I cannot boot to my normal Windows, and am trying to recover it via USB stick. However, even if I change the boot order, the grub menu still displaying and I have no option to boot from USB.

1

1 Answer 1

21

Yes there is a way. First make sure you have secure boot disabled from the firmware settings. (The menu that opens when you press f2 during boot)
Then follow the following steps:

  • Press c when in grub menu to open command line
  • press ls to list all partitions in all hard drives

my output was as follows:

grub>ls 
(hd0) (hd0,gpt1) (hd1) (hd1,gpt8) (hd1,gpt7) (hd1,gpt6) (hd1,gpt5) (hd1,gpt4) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1)

This clearly shows that my usb drive is hd0.

  • type ls (hd0,gpt1) to confirm:

Output is as follows:

grub>ls (hd0,gpt1) 
Partition hd0,gpt1: Filesystem type fat - Label `CES_X64FREV`, UUID 4099-DBD9 Partition start-512 Sectors...

Inplace of (hd0,gpt1) type the address of first partition of usb disk e.g: (hd1,gpt1) or (hd2,gpt1). According to output of ls command.

We need the UUID shown in the above line

  • Note the UUID of you usb drive.
  • Type the following commands one by one.

    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root 409-DBD9
    

In place of 4099-DBD9, write UUID which you noted down earlier.

  • Now we select the efi file to boot from. Type the following:

    chainloader /efi/boot/bootx64.efi
    
  • Finally type boot

That's it, That should boot the usb drive.

7
  • 1
    Google is the answer! Nov 1, 2018 at 6:23
  • 1
    Worked for booting a Mint 19 tara USB stick after many other approaches failed! Amazing!
    – jcandy
    Jan 19, 2019 at 23:21
  • 1
    It works! but I had to doing some dancing to get there. Not sure how the ls command "clearly" shows which is which. I ended up doing "ls (hd0)" which gave a size that matched my usb disk size to confirm. Then I used the "ls" command again with a tab complete to find that (hd0,msdos2) contained the /efi/boot/bootx64.efi path: "ls (hd0,msdos2)/efi/boot/bootx64.efi" I could then get the UUID and follow the rest of the steps.
    – Noremac
    Oct 23, 2020 at 16:34
  • 1
    /efi/boot/bootx64.efi ... file not found ... help please
    – Rafael
    Nov 12, 2020 at 19:31
  • 1
    Thanks man, finally this worked after trying many things in the whole day. Dec 13, 2020 at 16:37

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .