• Visor – en modern och grafisk starthanterare för Linux och Windows

    Visor är en ny starthanterare med öppen källkod för moderna UEFI-datorer. Den kan starta Linux, Windows och andra EFI-program genom ett grafiskt och anpassningsbart gränssnitt, samtidigt som den erbjuder stöd för bland annat Unified Kernel Images, Secure Boot och automatisk återställning efter misslyckade uppdateringar.

    När en dator startas behöver den välja vilket operativsystem eller program som ska köras. På datorer med flera operativsystem sker detta vanligtvis genom en så kallad starthanterare. Visor är ett nytt projekt med öppen källkod som vill göra denna del av datorstarten både enklare och mer tilltalande.

    Visor är utvecklat för moderna datorer med UEFI och kan starta Linuxkärnor, Unified Kernel Images, Windows och andra EFI-program. Det fungerar därför även på datorer där Linux och Windows är installerade sida vid sida.

    En enda konfigurationsfil

    Många traditionella starthanterare använder skript, automatiskt genererade inställningsfiler eller en kombination av flera olika konfigurationsfiler.

    Visor försöker i stället hålla det enkelt. Inställningarna lagras i en enda fil med namnet boot.conf, placerad på datorns EFI-systempartition.

    EFI-systempartitionen är en liten, FAT-formaterad partition som används av datorns fasta programvara för att hitta de program som behövs under uppstarten.

    Genom att samla konfigurationen i en enda fil blir det lättare för användaren att förstå vilka startalternativ som finns och hur de är inställda.

    Ett grafiskt gränssnitt redan vid uppstart

    När Visor startar visas en grafisk meny med hjälp av UEFI:s Graphics Output Protocol. Det innebär att gränssnittet visas innan något vanligt operativsystem har hunnit starta.

    Visor använder så kallad dubbelbuffring för att minska flimmer när skärmen uppdateras. Tekniken innebär förenklat att nästa bild först ritas i ett dolt minne och därefter visas i sin helhet. Resultatet blir jämnare animationer när användaren växlar mellan olika operativsystem och startalternativ.

    Utseendet kan anpassas på många sätt. Användaren kan bland annat ändra:

    • bakgrund
    • färger
    • ikonstorlekar
    • avstånd mellan menyalternativ
    • rubriker
    • markeringseffekter
    • placering av knappar för avstängning och omstart
    • placering av knappen för UEFI-inställningarna

    Det går även att använda separata temafiler. På så sätt kan hela utseendet bytas utan att den huvudsakliga startkonfigurationen behöver ändras.

    Styrning med mus och pekskärm

    De flesta starthanterare navigeras med tangentbordet, men Visor kan även använda andra inmatningsenheter.

    Om datorns UEFI-firmware tillhandahåller ett kompatibelt pekdon kan användaren välja startalternativ med exempelvis:

    • mus
    • styrplatta
    • pekskärm

    Detta kan vara särskilt användbart på surfplattor, bärbara datorer och andra system där tangentbordet inte alltid är lättillgängligt.

    Om det grafiska läget inte fungerar finns även en textbaserad meny som reservlösning.

    Stöd för moderna Linuxinstallationer

    Visor kan starta Linux genom så kallade EFI stub-kärnor. Det innebär att Linuxkärnan kan fungera som ett vanligt EFI-program och startas direkt av UEFI-miljön.

    Starthanteraren har också stöd för Unified Kernel Images, ofta förkortat UKI. En UKI samlar flera delar som normalt ligger i separata filer:

    • Linuxkärnan
    • initramfs
    • kommandoradsalternativ
    • ibland ytterligare information om systemet

    Allt paketeras i en enda EFI-fil.

    Projektet rekommenderar att sådana filer placeras direkt på EFI-systempartitionen. Det ger en relativt enkel och portabel lösning eftersom UEFI redan kan läsa den FAT-formaterade partitionen.

    Traditionella Linuxkärnor fungerar också

    Visor kan även användas med traditionella installationer där Linuxkärnan och initramfs ligger i separata filer, exempelvis vmlinuz och initramfs.

    Det uppstår dock ett problem om filerna ligger på ett Linuxfilsystem som ext4 eller Btrfs. UEFI kan normalt inte läsa dessa filsystem på egen hand.

    För att lösa detta kan Visor ladda särskilda EFI-drivrutiner som ger stöd för ytterligare filsystem. Projektet levererar inte sådana drivrutiner, men kompatibla .efi-filer kan placeras i Visors katalog för drivrutiner.

    Linux och Windows på samma dator

    Visor kan kedjestarta andra EFI-program. Detta kallas ofta för chainloading och innebär att starthanteraren lämnar över kontrollen till ett annat startprogram.

    På en Windowsinstallation kan Visor exempelvis starta Microsoft Windows Boot Manager. Därmed är Visor användbart på datorer med så kallad dual boot, där användaren väljer mellan Linux och Windows vid uppstart.

    Det går även att starta andra EFI-program, exempelvis diagnostikverktyg, återställningsmiljöer eller alternativa starthanterare.

    Kan skapa startmenyn automatiskt

    Om filen boot.conf saknas försöker Visor automatiskt hitta vanliga startprogram för Linux och Windows.

    Utifrån de filer som hittas kan programmet bygga upp en fungerande startmeny. Detta kan göra den första installationen enklare för användare som inte vill skriva konfigurationen manuellt.

    Den som vill ha fullständig kontroll kan i stället definiera varje startalternativ själv i boot.conf.

    Anpassat för Silverblue, Kinoite och CoreOS

    Visor förstår även startposter som följer Boot Loader Specification. Denna standard används bland annat av system som bygger på OSTree eller avbildningsbaserade uppdateringar.

    Det gäller exempelvis:

    • Fedora Silverblue
    • Fedora Kinoite
    • Fedora CoreOS
    • system baserade på bootc

    Sådana system kan ha flera installerade versioner eller så kallade driftsättningar samtidigt. Visor kan gruppera dessa under en gemensam ikon för operativsystemet.

    Användaren kan därefter välja mellan den aktuella versionen, en tidigare version eller en återställningsversion direkt från startmenyn.

    Automatisk återställning efter en misslyckad uppdatering

    På system som använder boot counting kan Visor hålla reda på hur många gånger en ny systemversion får försöka starta.

    Inför varje start minskas räknaren med ett steg. Om systemet inte lyckas starta inom det tillåtna antalet försök kan Visor automatiskt återgå till en tidigare fungerande version.

    Detta är särskilt användbart på system som uppdateras automatiskt. En felaktig kärna eller systemavbildning behöver då inte göra datorn helt obrukbar.

    Stöd för Secure Boot

    Visor har även stöd för Secure Boot när det startas genom shim.

    Shim är ett litet EFI-program som ofta används av Linuxdistributioner för att skapa en betrodd kedja mellan datorns UEFI-firmware och Linuxsystemets övriga startkomponenter.

    Genom shims verifieringsprotokoll kan Visor kontrollera signaturen på bland annat:

    • Linuxkärnor
    • Unified Kernel Images
    • Windows Boot Manager
    • andra EFI-program i PE-format

    Om Secure Boot är aktiverat och verifieringen misslyckas vägrar Visor att starta filen.

    För ett helt Secure Boot-kompatibelt system måste även Visor och eventuella externa filsystemsdrivrutiner vara korrekt signerade eller startas genom en annan betrodd kedja.

    Loggar hjälper vid felsökning

    Problem under datorns tidiga uppstart kan vara svåra att felsöka eftersom det vanliga operativsystemet ännu inte har startat.

    Visor skriver därför en loggfil med namnet boot.log till EFI-systempartitionen. Loggen sparar information från de tre senaste uppstarterna.

    Den kan bland annat innehålla information om:

    • tolkning av konfigurationsfiler
    • laddning av EFI-program
    • avkodning av PNG-bilder
    • initiering av drivrutiner
    • fel när kontrollen lämnas över till nästa program

    Det kan göra det betydligt lättare att förstå varför en kärna, ett tema eller ett startalternativ inte fungerar.

    Installation och administration

    Installationen sköts med ett skript som kompilerar Visor och kopierar de nödvändiga filerna till EFI-systempartitionen.

    Installationsprogrammet kan även skapa en startpost i datorns UEFI-inställningar med hjälp av verktyget efibootmgr.

    På Linuxsystemet installeras dessutom kommandot visor, som kan användas för att:

    • bygga programmet
    • installera det
    • uppdatera det
    • signera filer
    • kontrollera konfigurationen
    • visa aktuell status
    • avinstallera starthanteraren

    För att kompilera Visor från källkod krävs bland annat GNU-EFI:s utvecklingsfiler, GCC och binutils.

    Fortfarande ett projekt för moderna x86-datorer

    Visor riktar sig för närvarande till datorer med x86-64-processor och UEFI. Det är alltså främst avsett för moderna stationära och bärbara datorer.

    Projektet distribueras under BSD 2-Clause-licensen. Det är en tillåtande licens som ger användare och utvecklare stor frihet att använda, ändra och distribuera koden.

    Ett intressant alternativ till traditionella starthanterare

    Visor försöker kombinera ett modernt grafiskt gränssnitt med en relativt enkel konfiguration. Samtidigt finns avancerade funktioner för Secure Boot, automatiska återställningar, UKI-filer och avbildningsbaserade Linuxdistributioner.

    För vanliga användare kan den grafiska menyn och den automatiska identifieringen av operativsystem vara de mest märkbara förbättringarna. För systemadministratörer och Linuxentusiaster är stödet för signerade EFI-filer, boot counting och separata filsystemsdrivrutiner sannolikt mer intressant.

    Visor befinner sig i ett område där tillförlitlighet är mycket viktigt. Ett fel i en vanlig applikation kan ofta lösas genom att programmet startas om, men ett fel i starthanteraren kan innebära att hela datorn vägrar starta.

    Trots detta visar projektet hur även datorns allra tidigaste uppstartsfas kan göras mer lättanvänd, flexibel och visuellt tilltalande.

    > Teknisk fakta: Visor Boot Manager

    Programtyp UEFI-starthanterare
    Plattform x86-64-system med UEFI
    Operativsystem Linux, Windows och andra EFI-program
    Konfigurationsfil boot.conf
    Konfigurationens plats EFI-systempartitionen
    Grafiskt gränssnitt UEFI Graphics Output Protocol
    Navigering Tangentbord, mus, styrplatta och pekskärm
    Linuxstöd EFI stub-kärnor, UKI, vmlinuz och initramfs
    Filsystem FAT samt andra filsystem genom externa EFI-drivrutiner
    Dual boot Ja, inklusive Microsoft Windows Boot Manager
    Automatisk identifiering Söker efter vanliga Linux- och Windows-startprogram
    Boot Loader Specification Stöds, inklusive OSTree- och bootc-baserade system
    Boot counting Automatisk återgång efter misslyckade startförsök
    Secure Boot Stöds genom shim och signaturverifiering
    Loggfil boot.log
    Kompilator och verktyg GCC, binutils och GNU-EFI
    Licens BSD 2-Clause

    root@visor:~$ redo att starta systemet_

Etikett: UKI

  • Visor – en modern och grafisk starthanterare för Linux och Windows

    Visor är en ny starthanterare med öppen källkod för moderna UEFI-datorer. Den kan starta Linux, Windows och andra EFI-program genom ett grafiskt och anpassningsbart gränssnitt, samtidigt som den erbjuder stöd för bland annat Unified Kernel Images, Secure Boot och automatisk återställning efter misslyckade uppdateringar. När en dator startas behöver den välja vilket operativsystem eller program…