Recently I had a hard time to bring graphical boot splash screen (Plymouth) to work on a Ubuntu 13.10 Saucy Salamander installation. I use the Nvidia binary driver and activated uvesafb therefor (see this blog post how to do this). However, it didn’t work. In the end two pieces were missing:
Tag Archives: grub
Ubuntu 12.10 supports UEFI secure boot. I did some research in order to understand the actual implementation on Ubuntu and would like to share my findings. Since Windows 8 requires secure boot, most new Computer contain Microsoft’s Platform Key. Microsoft allows to sign own binaries with this Platform Key. As outlined in the Canonical blog post Ubuntu 12.10 uses a signed version of the EFI application Shim (to maintain the chain of trust) and Grub2 as its default boot manager.
Canonicals version of the Shim EFI application
Ubuntu’s 12.10 Shim EFI application is a early version of Shim which don’t has any support for MOKs (Machine Owner Keys). Shim was made by Matthew Garrett. He wrote two blog posts how Shim works, but because Ubuntu uses an older version not all of his description apply to Ubuntu’s Shim. Matthew Garrett also published its own Microsoft-signed version of Shim. Ubuntu however doesn’t use this signed version.
Since I have some big disks I started using GUID partition table (GPT). However, Ubuntu (12.10 in my case) installed itself using a oldschool MBR partition table (or MS-DOS partition table). There are ways to create a GPT while installing, but I missed that point… So I asked myself is it possible to convert the MBR partition table to a GUID partition table? Yes, and its quite easy…
In order to use GPT with nowadays BIOS there need to be a BIOS boot partition. However there are two prerequisites which you should check before converting: There need to be space between the MBR and the first partition (most modern partition utilities start the first partition on the 1 MiB boundary):
$ sudo fdisk -l /dev/sda .... Device Boot Start End Blocks Id System /dev/sda1 * 2048 117186559 58592256 83 Linux
As you can see, my partition table meet this requirement. We use this partition to store the BIOS boot partition in it (Note: It should also work with a BIOS boot partition at another place, I never tried that).
Second, GRUB need to be 1.97~beta1 or newer. Check this by issuing
$ grub-install --version
If your system meets this requirements you’re ready to go. First backup the old MBR (and all important data, if you have any on the system in question), just in case anything goes wrong
sudo dd if=/dev/sda of=/root/sda-mbr.dd bs=512 count=1
Now it’s time for gdisk, the GPT equivalent to fdisk for the old partition tables. Starting this utility on a system with the old MBR partition table converts this automatically: