System BIOS doesn't show Ubuntu as boot option after installation?
Just a question before I start, you have 2 drives? 256GB with Windows and 16GB mSATA? What do you use the mSATA for if not Ubuntu?
To my knowledge PenDriveLinux.com creates MBR-style bootable media, with uncertain support for UEFI. If you want your machine to use UEFI, which is really recommended, you should disable CSM and create only UEFI bootable media just to be sure that you don't accidentally boot and install in MBR mode while installing to a GPT partitioned drive and probably making things more messy.
You seem to have installed in MBR mode, otherwise the installer would have recognized a UEFI machine and be able to register an EFI boot loader in the firmware bootmenu that it placed on the EFI System Partition (ESP). If you can't find an Ubuntu related .efi
binary on your ESP, then you probably installed in MBR mode (or GPT MBR mode) and you should be able to boot from the drive in leagcy/MBR mode, you just need to figure out how. (Typically Thinkpads offer priority booting, e.g. booting legacy first.)
Gummiboot as default hotpluggable UEFI bootloader
Given that you already have a GPT partitioned target disk (all with preinstalled Windows 8 should be), you could try troubleshooting your existing MBR installation by trying the following instructions.
Note: Please be aware that these instructions are not a permanent fix or proper setup. They are just a static configuration to get you into your installation and proceed with troubleshooting from there (e.g. installing GRUB properly).
-
Get gummiboot
Download gummiboot from the Arch Linux repositories. (Everything is fine, we are just doing Linus Torvalds style package management. You can find the download link on that page far on the right under Package Actions > Download From Mirror)
Extract
gummibootx64.efi
from the package (it's under/usr/lib/gummiboot/
) and copy it as\EFI\BOOT\BOOTx64.EFI
to your ESP. Backup existing files with the same name (e.g. use zip). -
Copy kernel files
Create a new folder at the root of your ESP named
Ubuntu
and copy all the files with the highest version number from/boot/
to the folder you just created.If you are on Windows, download the latest package matching
linux-image-$VERSION-generic
for your distribution from the repositories. (initrd.img-$VERSION-generic
is missing as it is generated automatically by Debian scripts.) -
Configure gummiboot to boot the Ubuntu Linux kernel
Create folders along the path
loader/entries/
at the root of your ESP and create a file namedubuntu.conf
in there. Create a configuration by editing the file following this template:title Ubuntu linux /Ubuntu/vmlinuz-$VERSION-generic initrd /Ubuntu/initrd.img-$VERSION-generic options root=UUID=$UUID ro
title: Choose what you like. Must be human readable.
linux: The filename of the kernel to load, replace
$VERSION
with the version number of the file you copied.initrd: The filename of the initial ram disk. Basically the same as with the linux option,
$VERSION
with the version number of the file you copied. Leave this line out if you don't have such a file (I don't know if it will work then though).-
options: Replace
$UUID
with the filesystem UUID of your Ubuntu root filesystem. Runll /dev/disk/by-uuid/ | grep sdxY
to get the GUID, replacesdxY
with the actual device name. (Forget what I wrote here earlier about partition GUIDs, that doesn't seem to work for now.)You can add the remaining options of the
linux
line from your/boot/grub/grub.cfg
. The UUID is necessary part, the rest should be rather optional. Mylinux
line ingrub.cfg
looks like this:root=UUID=00000000-0000-0000-0000-000000000000 ro quiet splash $vt_handoff
You also need to add the file
loader.conf
inloader/
to make gummiboot work.default Ubuntu timeout 4
default is the title of the default entry to boot. Edit appropriately if you have chosen another title.
-
Reboot
You should be able to boot from the HDD/SSD that contains the ESP with gummiboot and be presented with the gummiboot menu, allowing you to boot your Ubuntu installation.
-
Optional: Create a gummiboot menuentry for GRUB
Similar to the instructions above, create
loader/entries/ubuntu.conf
with the following content:title Ubuntu GRUB efi \EFI\ubuntu\grubx64.efi
Alternative:
title Ubuntu GRUB efi \EFI\ubuntu\shimx64.efi
I'm still researching this topic and I wanted to test this throughly before writing it down here in a clean and non-quirky way, but may be these instructions give you helpful directions and are more fun to you than trying to install again and again.
Good luck.
Further reading
- AdamW's UEFI boot: how does that actually work, then? is a good but lengthy read on treating the UEFI boot topic not like magic.
- https://wiki.archlinux.org/index.php/Gummiboot
- https://wiki.archlinux.org/index.php/EFISTUB
FYE
Stuff I suffered from during testing:
- PARTUUID/GUID - doesn't seem to work.
- initramfs compiled with
dep
option instead ofmost
. - initramfs of cloned installation finds a hibernation image from the source installation and boots that instead. m(
- Windows avoids mounting ESPs.