Secure Boot is usually OK, but can sometimes cause problems, so it's best to disable it during troubleshooting. Ideally, it will provide some added protection against pre-boot malware (which usually targets Windows but can theoretically affect any OS), so it's worth having -- IF it doesn't cause any other problems. It's possible that Secure Boot is causing your problems, but I suspect a defective firmware.
Your Boot Repair output indicates that Ubuntu should be booting; however, some EFIs have known problems that prevent the system from booting anything but the Windows boot loader (or a program with the same name as the Windows boot loader). There are a number of ways you can overcome this problem:
- Look for an updated firmware from your computer's manufacturer. (They'll probably call it a "BIOS update" or words to that effect, although it's technically not a BIOS.) After doing this, you may need to re-install a boot manager (see below).
- Using Boot Repair, click the Advanced item and select the option to back up and replace the Windows boot loader. (I don't recall the precise phrasing of this option.) Once this is done, GRUB should theoretically come up.
- Download the CD-R or USB flash drive image of my rEFInd boot manager and prepare an image with it. If that image starts, it should boot Ubuntu just fine. If that works, you can either continue booting with rEFInd on the external medium or install the Debian package in Ubuntu. If that works as-is, then great. If rEFInd also fails to start from hard disk, then you can boot to Ubuntu using the USB drive or CD-R, open a Terminal window, and type
mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/BOOT
. (Note the doubling-up of efi
, once in lowercase and once in uppercase.) This mvrefind.sh
command essentially does what the Boot Repair option to replace the Windows boot loader does, but with rEFInd rather than GRUB.
- Since the computer is new, return it to the store and buy another model. Make it clear (in a letter to Toshiba, if nothing else) why you're returning it. Manufacturers have had more than enough time to fix these problems in their firmware, and yet they keep delivering garbage. They do this because few people complained about the garbage in the first couple generations of EFI firmware, and they'll continue delivering it for years more if people keep accepting it.
- Enter the firmware setup utility and find whatever options exist to control the boot mode. Set the computer to boot in BIOS/CSM/legacy mode and to disable (if possible) EFI/UEFI mode. You can then re-install Ubuntu in BIOS mode, which should set up a BIOS-mode version of GRUB; or run Boot Repair in BIOS mode to do the same without actually re-installing anything.
Try this to gather more information:
- Download the USB flash drive or CD-R image for my rEFInd boot manager.
- Create the relevant medium.
- Boot with it. With any luck, you should see the rEFInd menu pop up, which should show an option to boot Ubuntu.
- Boot Ubuntu.
- In Ubuntu, open a Terminal window and type
sudo efibootmgr -v
.
The efibootmgr
output will show your boot entries. Here's what it shows on the computer I'm using now:
$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000
Boot0000* rEFInd (direct) HD(2,c00,114000,6e49fcaf-d054-47c9-ba69-a668c5ee8192)File(\EFI\refind\refind_x64.efi)
Boot0004* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)..BO
In your case, you should see at least one ubuntu
entry that points to either \EFI\ubuntu\grubx64.efi
or \EFI\ubuntu\shimx64.efi
. There may well be other entries, like the UEFI: Built-in EFI Shell
entry in this example. Furthermore, the ubuntu
entry's number should appear on the BootOrder
line as the first value. (My output doesn't show precisely what I've described because I'm using rEFInd, not GRUB, as my default boot program, and I don't even have GRUB registered on this system. The Ubuntu Shim/GRUB entry would be similar to my rEFInd entry, though.)
If you do not see such an entry, you can try creating a new entry with efibootmgr
:
sudo efibootmgr -c -d /dev/sda -p 1 -l \\EFI\\ubuntu\\shimx64.efi -L "ubuntu"
Adjust the disk (-d /dev/sda
), partition (-p 1
), and the exact path to the file for what your system uses. There are also ways to do this using other tools; see this page for more information.
If you already see such an entry but it's not working, or if the entry you create disappears whenever you reboot, then chances are your firmware is broken. Workarounds are possible in such cases, such as installing the boot loader as EFI/BOOT/bootx64.efi
. In some cases, using bcfg
from an EFI shell works even when efibootmgr
in Linux doesn't work, so it may be worth trying that approach.
Best Answer
Enable nomodeset from GRUB boot menu
nomodeset is a kernel boot option. Adding the
nomodeset
parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.Safe Graphics Mode. A new option is added to the GRUB menu in 19.04 and later which will boot with nomodeset on. This may help you resolve issues on certain graphics cards and allow you to boot and install any proprietary drivers needed by your system.
Immediately after the BIOS/UEFI splash screen during boot, with BIOS, quickly press and hold the Shift key, which will bring up a GNU GRUB menu screen. With UEFI press (perhaps several times) the Esc key to get to the GNU GRUB menu screen. Sometimes the manufacturer's splash screen is a part of the Windows bootloader, so when you power up the machine it goes straight to the GNU GRUB menu screen, and then pressing Shift is unnecessary.
You will see a GNU GRUB menu screen that looks like this:
Press e to enter editing mode. This will bring up a GNU GRUB screen that looks like this:
Use the arrow keys to navigate when screen editing the above screen. Navigate to after the string on this screen that starts with
root=
. In this example screen the full string isroot=
followed byUUID=
and a hexadecimal string as shown below:Immediately after this string replace
ro quiet splash
bynomodeset quiet splash
. This change is only temporary — it will just be used once and GRUB won't remember it in the future. Press Ctrl+X or F10 to boot with thenomodeset
option that was added. If you make a mistake, press Esc to go back to the previous screen.Install proprietary graphics driver
Ubuntu 18.04 is bundled with a tool named ubuntu-drivers-common which detects and installs additional driver packages. The proprietary graphics driver can be installed with the following commands:
The
ubuntu-drivers autoinstall
command installs drivers that are appropriate for automatic installation including their dependencies, and the proprietary graphics driver will also be updated automatically when an update is available. If your computer has an Nvidia GPUubuntu-drivers autoinstall
will install the proprietary graphics driver for it, otherwise if your computer has an AMD GPU its graphics driver is included in the default Ubuntu installation.When installing a proprietary graphics driver, it is not necessary to uninstall the open source graphics driver. The two graphics drivers can be installed alongside each other allowing the open source graphics driver to be used as a fallback alternative in case there is a problem using the proprietary graphics driver.