Linux på din bärbara dator: Här är vad du behöver veta om UEFI firmware

0
114

Varför Red Hat kan ta över moln förr än du tror
Idag, Red Hat dominerar enterprise Linux. I morgon, det vill till att härska molnet. Med IBM bredvid, inte satsa mot det.
Läs mer: https://zd.net/2OqAQ0a

Detta kommer att vara min sista razzia i UEFI firmware för ett tag. För dem som redan är trötta på min att skriva om det, jag ber om ursäkt i förväg, för de som har bett om mer, här är det.

För resten av er, jag hoppas att du kan hitta några intressanta och användbara tips och tricks i följande information.

UEFI Firmware konfiguration

Det har varit flera frågor och kommentarer på mitt tidigare inlägg om boot UEFI. Låt mig börja med en beskrivning av vad jag gör med BIOS-konfiguration på alla bärbara datorer har jag med UEFI firmware.

SE: 20 snabba tips för att göra Linux nätverk lättare (gratis PDF)

Samtidigt finns det betydande skillnader i detaljerna i BIOS-konfiguration verktyg mellan bärbara tillverkare, det finns några viktiga saker som är gemensamma för dem alla. En av dessa saker är valet mellan UEFI eller Legacy boot lägen. På alla system jag har (eller har haft), finns det tre möjligheter:

UEFI Secure Boot: Det är nästan alltid standard läge på en ny laptop. Det kräver att alla startbara objekt och firmware vara undertecknad med en erkänd SSL-certifikat. Det uttalade syftet med denna typ av boot är att skydda dig från att starta upp eller på annat sätt använda firmware bilder som har ändrats. Som jag har sagt många gånger, min personliga åsikt är att detta är ett väldigt överdrivet komplicerad lösning för en i stort sett icke-existerande problem.Boot UEFI (Secure Boot Funktionshindrade): Varje system som jag har använt som har UEFI firmware har haft möjlighet att stänga av Secure Boot, men fortfarande använder EFI boot. Genom att göra detta får du fördelarna med den nya firmware-design över den gamla (mycket gamla) BIOS firmware, och naturligtvis det nya boot configuration management-struktur, som jag beskrev i tidigare inlägg. Detta är det sätt som jag har alla mina UEFI firmware system som konfigurerats, och det är vad jag rekommenderar till andra som frågar efter min åsikt.Legacy Boot: Detta effektivt återgår systemet till det gamla BIOS/MBR-setup. Enligt min uppfattning (och erfarenhet), det största problemet med detta är att det går tillbaka till att använda den “magiska” Master Boot Record konfiguration, vilket är mycket mindre flexibel och mycket mindre robust, särskilt för multi-boot-system.

När UEFI-boot konfiguration inte ändras eller försvinner

Jag ofta höra från folk som har installerat Linux som ett andra operativsystem på en Windows-dator med UEFI firmware, och en av tre saker som har hänt:

Efter installationen tydligen har slutförts, den bärbara datorn startar om och du startar Windows utan tecken på att Linux har installerats.Linux har installerat och startat ett framgångsrikt sätt, och världen tycks vara en underbar plats, men en tid senare, oftast när Windows-uppdateringar som är installerade på, eller en bärbar dator firmware-uppdateringen har installerats, går det tillbaka till att starta Windows igen.Linux har installerats, som i föregående punkt, men plötsligt, utan att installera, ändra eller uppdatera något, går det tillbaka till att starta Windows. Det här är faktiskt en variant av föregående punkt, men det är särskilt förbryllande eftersom du bokstavligen inte göra något alls, du bara stänga av den bärbara datorn ner och någon gång senare vände det igen. I vissa fall åtföljs av ett meddelande om att Windows “reparera start konfiguration” för dig, men ofta inte ens det.

Som jag nämnde när detta beskrevs i en kommentar till mitt tidigare inlägg, det som nästan alltid skett i alla dessa tre fall är att UEFI boot priority listan har ändrats eller “reset” av något, utan din vetskap eller tillåtelse. Människor tenderar att anta att deras Linux-installation har suddats ut eller är i övrigt inte längre finns, men det är i allmänhet inte fallet. Den första sak att göra när detta händer är att komma ihåg Douglas Adams’ ovärderliga råd – få inte Panik!

När detta händer, kommer du troligen att kunna återhämta sig med hjälp av några eller alla av följande åtgärder:

Kontrollera först för att se om det verkligen är bara att startordningen har ändrats. Ett sätt att göra detta är att trycka på “Välj Boot” – tangenten samtidigt som systemet startar upp. Naturligtvis är detta requites som du vet (eller kan räkna ut) vad är det viktigaste som finns, eftersom det är olika för nästan varje tillverkare, och ibland är det olika för olika system från samma tillverkare. Ja, det är frustrerande. De som jag vet av toppen av mitt huvud, det är F12 för Acer, F9 för HP och ESC för ASUS. Det brukade vara F5 för mycket gamla IBM Thinkpad, men jag vet inte om det fortfarande är sant eftersom Lenovo tog över Thinkpad från IBM. Någon som vet säkert vad denna knapp för andra tillverkare är mycket välkommen att lägga denna information i kommentarerna. Tack.Om du har möjlighet att träffa Boot Välj nyckel, kommer du att presenteras med listan, och om Linux visas i denna lista, så du är nog i bra form och kommer att kunna återhämta sig boot konfiguration du vill. Du måste hålla ett öppet sinne när du läser den här listan – bara för att du installerat Linux-distribution “xyzzy” (Debian, Ubuntu, Ubuntu, vad som helst), behöver inte betyda att det kommer att visas i listan med exakt det namnet. Tro det eller ej, min nyligen förvärvade HP laptop insisterar på att kalla en av de Linux-installationer “Linpus”. (Ja, jag vet vad Linpus Linux är, och nej, jag har aldrig installerat det på att HP, eller något annat system under de senaste 5 åren eller mer). Hur som helst, om det inte är ett Linux-post i Boot Välj meny, gå vidare och starta den och se till att ditt Linux-system kommer upp normalt. Om det gör, du är inte ute i skogen ännu, eftersom du fortfarande behöver för att fixa listan boot priority (som beskrivs i nästa punkt), men minst du vet att du inte har förlorat din Linux-installation. Om datorn inte startar Linux… tja, kanske det värsta scenariot verkligen har hänt, och Windows update eller Windows Recovery, eller någon annan “bra” verktyg har raderat ditt Linux-system och återställda Windows till hela disken. I detta fall kan jag inte erbjuda dig mycket annat än sympati, eftersom jag har varit där.
Ett annat alternativ är att slå BIOS-Konfiguration-tangenten medan systemet är igång. Detta är vanligtvis F2, men kan också vara något annat – det är ofta anges längst ned i start-skärm med något som “Trycker du på F2 för Konfiguration”. Igen, varje tillverkarens BIOS-konfigurationsverktyget är olika så jag kan inte ge specifika instruktioner här. Ser för att Starta i den översta menyn, och där bör du hitta en prioritering-ordnad lista av startbar objekt. Detta bör inkludera Windows och (förhoppningsvis) ditt Linux-system, tillsammans med olika saker som USB-enheter (Network boot) och några systemet fortfarande även lista disketter. Om du är på denna punkt eftersom ditt system är mystiskt att starta Windows istället för Linux, vad du behöver göra är att flytta linjen för Linux tillbaka till toppen av den listan. Detta kan innebära F5/F6 för att flytta objekt Upp/Ner på listan, eller så kan det kräva att välja den i listan och gå en nivå djupare in i BIOS-konfiguration för att ordna saker och ting. Oavsett vilket förfarande som, när du får Linux till toppen av listan, ditt problem bör åtgärdas, så Spara-och-Exit, och försöka starta upp igen.Det är ett annat sätt att visa och ändra EFI boot-listan, med Linux-verktyg, som jag kommer att beskriva nedan. Detta brukade vara min “go-to fix it-förfarande”, eftersom som de flesta Linux-verktyg det är ett kraftfullt och flexibelt, men fler och fler system har firmware idag som antingen ignorera ändringar du gör på detta sätt, eller återställa den gamla boot configuration nästa gång systemet startas om. Mer om det här kommandot nedan.

Linux EFI Boot hanteringsverktyg

Linux har flera verktyg specifikt för att hantera EFI boot konfiguration, och naturligtvis för att faktiskt starta upp systemet. Dessa är administrativa kommandon, så att de endast kan köras som root, eller att använda “sudo”.

efibootmgr: Här är verktyget som jag hänvisade till i den sista punkten ovan. Det kan användas för att visa aktuell EFI boot konfiguration, och att lägga till, ändra eller ta bort objekt i listan boot priority. Om du är i den situation som jag nämnde ovan, där datorn har plötsligt förändrats från att starta upp Linux för att starta Windows, och du har möjlighet att sätta upp Linux igen via Boot Välj nyckeln, då kan du använda efibootmgr för att se vad som har hänt i boot sekvensen. Ett förenklat exempel på en sådan listan kan se ut så här:

# efibootmgr

BootCurrent: 0000

Timeout: 0

BootOrder: 0001,0000,0002

Boot0000* openSUSE Tumbleweed

Boot0001* Windows

Boot0002* openpensuse-secureboot

Detta visar att openSUSE Linux och Windows är installerat, och openSUSE har två boot-bilder, en som är undertecknat för att använda när UEFI Secure Boot är aktiverat, och det är inte inloggad. Tyvärr, BootOrder visar att detta system kommer att starta Windows som standard, så under en normal start du skulle aldrig vet att Linux har installerats.

Du kan ändra boot priority med “-n” alternativ med efibootmgr, så i detta enkla fallet att göra openSUSE start-kommandot:

# efibootmgr -n 0000,0002,0001

Tänk dock på att detta kanske inte fungerar, även om du kanske har bekräftat att förändringen var ordentligt gjort genom att skriva ut listan igen. Som jag sade ovan, den nuvarande trenden i UEFI-firmware är att några förändringar inte gjorts med hjälp av BIOS-konfigurationsverktyget kastas på nästa uppstart.

gparted.png

J. A. Watson

gparted (eller någon av ett antal andra Linux-disk management (utilities): Disk management verktyg som är avgörande för din förståelse och hantering av UEFI multi-boot-system. Den skärmbild som visas här är från min HP laptop, som har flera olika Linux-distributioner som är installerade, men inte Windows (även om det är ett par små relik partitioner som jag inte städat upp ännu). Det viktiga att notera här är att den första partitionen är en EFI-uppstartspartition (den här är den som ursprungligen skapades av den förinstallerade Windows), och partition 11 är även en EFI-uppstartspartition, som jag har skapat för att underlätta installation av både Linux Mint och Ubuntu på detta system.Även om Linux-installatörer kan ta hand om disk att partitionera för dig under installationen, jag föredrar att använda gparted att göra det själv innan du kör installationsprogrammet, vanligtvis genom att starta en Live-USB-stick för en distribution som ingår gparted. Som tillåter mig att skapa antal och storlek på partitioner jag vill, och är särskilt viktigt om jag installera en distribution som jag planerar att använda en separat EFI-uppstartspartition.grub2 och tillhörande verktyg: grub2 är den starthanterare som kommer med nästan alla aktuella Linux-distributioner. Grub2 management-verktyg kan användas under installationen för att identifiera alla installerade operativsystem och skapa en boot configuration file. De senaste versionerna är otroligt bra på det här.grub.cfg: Detta är boot configuration file. Det är en “vanlig text” – filen, vilket innebär att du kan läsa den för att se vad som har satts upp på datorn, men det är inte rekommenderat att ändra det eftersom denna fil kommer ofta automatiskt att skrivas över med en ny version under installationen av olika uppdateringar (Linux-kärnan, starta upp stöd filer och sådant). Om du ser det, kommer du att se att den använder två olika mekanismer för att faktiskt starta ett operativsystem, för Linux-system använder linuxefi (och förmodligen initrdefi), medan för Windows använder chainloader. Jag nämnde i ett tidigare inlägg att jag skulle åtminstone förklara kortfattat hur jag använder grub2 på EFI multi-boot-system; det är det. Om du är erfaren nog, tillräckligt säker och försiktig nog att åta sig att ändra grub.cfg dig själv, du kan ändra linuxefi/initrdefi kommandon för andra Linux-distributioner till chainloader. Du kan se anledningen för detta om du tittar noga på den automatiskt genererade grub.cfg-fil, linuxefi kommandon inkluderar explicit namn från kernel-image-fil som i allmänhet ingår också kärnan versionsnummer. Det innebär att om du uppdaterar en av de andra distributioner, och kernel version förändringar, auto-genererade grub.cfg kommer då att misslyckas att starta upp som utdelning. Om du använder chainloader att starta de andra Linux-distributioner, det går igenom EFI boot-processen igen, och använder boot configuration filer för distribution du startar upp, och de uppdateras som en del av Linux-installationen, så att de alltid kommer att fungera oavsett hur mycket eller hur många gånger distributionen har uppdaterats.Usch, det är ganska lite att smälta, så låt mig säga det igen, detta är helt valfritt, och rekommenderas inte om du är ganska erfaren och mycket försiktig. Om du gör det, se till att du behåller en kopia av den nya grub.cfg-fil, eftersom det kommer att skrivas över på nästa uppdatering, och du kommer att fixa det igen. Detta är bara att jag är en envis gammal nörd, så om du inte förstår det, eller tror inte att det är värt det, det är bra också.grub2-mkconfig: Detta är Linux-verktyg som faktiskt söker igenom disken och skapar grub.cfg-fil. En bit av goda nyheter är att i den nuvarande versioner av Linux det här verktyget kommer att göra rätt sak och lägga den på rätt plats när du kör det med bara disken namn på kommandoraden – det kräver inte info om distributioner, versioner, partitioner eller något annat, det siffror ut allt på egen hand. Så om det är något fel med din boot konfiguration fil, bara att köra “sudo grub2-mkconfig /dev/sdX, där “X” är ersatt av din disk namn, och det kommer att göra en ny config-filen. Dessutom, om du bara vill skapa en config-fil som du kan titta på för någon anledning, kan du använda “sudo grub2-mkconfig -o-grub.nya”.

Sammanfattningsvis tror jag att det bör vara tydligt från vad som har sagts ovan att en av de svåraste frågor i samband med UEFI firmware-system och Linux är variationen mellan olika UEFI implementationer. Naturligtvis är de alla genomföra samma funktionalitet i termer av att starta upp datorn, men det sätt på vilket de har lyckats, de verktyg som används för att hantera dem – särskilt BIOS-konfigurationsprogram, är mycket olika. Så att du ibland känner att du vägen igenom, bara att hålla dina mål i åtanke och letar efter den rätta vägen för att nå det målet, och på samma gång hur de interagerar med Linux-UEFI administrationsverktyg, ner till den nivå av om de ens acceptera och behålla ändringar som gjorts för att Linux-verktyg, gör detta till ett svårt och komplicerat område.

Jag hoppas att jag har gett tillräckligt med information och exempel, i detta inlägg för att vara användbart för att hjälpa andra hitta ett sätt att ta itu med UEFI och Linux på ett framgångsrikt sätt.

Linux

Installera fem smaker av Linux på min nya laptop

Från Linux till moln, varför Red Hat frågor för varje företag

10 super söt bärbara datorer som kommer med Linux förinstallerat

Framtiden för IBM och Red Hat (ZDNet YouTube)

Laptop kontra Chromebook: Vilken bärbar dator som är bäst i 2019 (CNET)

Hur Linux tog över allt (TechRepublic)

Relaterade Ämnen:

Öppen Källkod

Affärssystem

Utvecklare

Cloud