Eyes Above The Waves

Robert O'Callahan. Christian. Repatriate Kiwi. Hacker.

Wednesday 9 September 2015

Booting Fedora 22 On A Lenovo ThinkCentre M53

We just bought a new computer for family use. I want my children to master computers, not just consume, so we got a desktop computer running Linux. I settled on a Lenovo M53, which is similar to a Mac Mini but cheaper --- just 450 NZD, probably because it's a two-year-old model. It comes with 4GB RAM (upgradeable to 8GB), quad-core Celeron, 500GB disk, Wifi, keyboard, mouse, and Windows 8.1. Moore's law always thrills me. When I started my PhD in 1994 we were just at the end of the period when one of the advantages of a top university was that they had access to better computers that let you get more work done. Nowadays any first-world family or school can buy enough computing power for almost any task, and that's a very good thing. I guess it's only a decade or two before everyone else catches up too.

Getting Fedora installed on the disk was easy by booting an installation image from a USB memory stick, but it was very hard to get the unit to actually boot anything other than Windows from the disk. The main problem is that the BIOS seems to reset UEFI boot order every time you boot, always putting Windows first (maybe because it's the first UEFI entry?). I couldn't find any way to prevent this. The BIOS Setup purports to let you change boot order (I'm not sure exactly how that relates to the UEFI boot order; it seems to pull some but not all UEFI boot entries), but no matter how hard I tried I couldn't get those order changes to stick; after "save changes and exit" it would go ahead and boot Windows and reentering BIOS Setup would show the changes were lost. Even entering BIOS Setup is hard; by default there are no on-screen prompts telling you which key to press, and you have only about a half-second window to press F1 during startup. You can however press F12 during startup and select booting from the Fedora partition. Many online comments indicate that Lenovo BIOSes have a problem with setting changes failing to be saved, though it's hard to tell exactly what the problems are.

In the end, I solved the problem by removing the Windows entry (and some other junk entries) from the UEFI boot list using efibootmgr. That was enough for the BIOS to finally give up on booting Windows. I can still boot Windows from the Fedora Grub menu. Presumably I wouldn't have had any of these problems had I not tried to keep Windows available for dual booting...