Introduzione
Systemd-boot guida: in questa guida vedrai come passare da GRUB a systemd-boot su UEFI in modo sicuro, eseguendo il backup della ESP, creando le loader entry corrette e predisponendo procedure di rollback e aggiornamento kernel.
Prerequisiti e considerazioni
Requisiti essenziali
- Prima di tutto, verifica che il sistema sia avviato in UEFI.
- Partizione EFI montata su un mount point noto come /boot/efi o /efi.
- Accesso root o sudo.
- Backup della ESP e dei file di configurazione GRUB.
- Familiarità con live USB e chroot per il ripristino.
Avvertenze
- systemd-boot non è compatibile con BIOS legacy.
- Configurazioni complesse come LUKS multilivello, RAID software o chainloading avanzato richiedono test in ambienti isolati prima della migrazione.
Panoramica della procedura
- Verificare UEFI e montaggi.
- Effettuare backup della ESP e delle configurazioni GRUB.
- Installare systemd-boot sulla ESP.
- Creare le loader entry per kernel, initramfs e altri OS.
- Configurare timeout e default.
- Testare il boot e predisporre rollback.
Verificare UEFI e montaggi prima di passare a systemd-boot
Controllare modalità di avvio
Esegui:
sudo ls /sys/firmware/efi/efivars
Se la directory esiste sei in UEFI.
Identificare la ESP
Elenca le partizioni:
lsblk -f
sudo fdisk -l
Cerca la partizione con tipo EFI System e formato FAT32. Prendi nota del dispositivo, es. /dev/sda1.
Montare la ESP se necessario
sudo mkdir -p /boot/efi
sudo mount /dev/sdXY /boot/efi
Sostituisci /dev/sdXY con la tua partizione EFI.
Backup della ESP prima di migrare da GRUB a systemd-boot
Backup rapido della ESP
sudo tar -czf ~/esp-backup-$(date +%F).tar.gz -C /boot/efi .
Salvare configurazioni GRUB
sudo cp /etc/default/grub ~/grub-backup/
sudo cp -r /etc/grub.d ~/grub-backup/
Salvare entry EFI e ordine di boot
Controlla boot entries e ordine:
sudo efibootmgr -v
Esporta l’output in un file per riferimento:
sudo efibootmgr -v > ~/efibootmgr-$(date +%F).txt
Installare systemd-boot e configurare loader entry (passare da GRUB)
Prerequisiti pacchetti
In molte distro systemd-boot è incluso in systemd; verifica la presenza di bootctl:
bootctl --version
Installazione su ESP montata
sudo bootctl --path=/boot/efi install
Questo copia il loader EFI e crea la directory /boot/efi/loader.
Verificare lo stato dell’installazione
bootctl --path=/boot/efi status
Dovresti vedere info su versione e stato.
Struttura loader e creare loader entry
Struttura principale della ESP per systemd-boot
- /boot/efi/loader/loader.conf
- /boot/efi/loader/entries/*.conf
Esempio di loader.conf
Crea o modifica:
default linux.conf
timeout 5
console-mode max
Salva in:
/boot/efi/loader/loader.conf
Entry per kernel Linux
Esempio file /boot/efi/loader/entries/linux.conf:
title My Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw quiet splash
Note:
- Inoltre Verifica che i percorsi indicati siano accessibili dal firmware UEFI. Infine se necessario copia vmlinuz e initramfs nella ESP o riferiscili correttamente se la tua struttura consente l’accesso da /boot.
Entry per Windows
Esempio file /boot/efi/loader/entries/windows.conf:
title Windows 10
loader /EFI/Microsoft/Boot/bootmgfw.efi
Gestione kernel dopo la migrazione a systemd-boot
Problema comune
Gli aggiornamenti kernel possono non aggiornare automaticamente le entry di systemd-boot.
Strategia consigliata
- Creare uno script di post-install del kernel che copi vmlinuz e initramfs nella ESP e rigeneri la entry con l’UUID corretto.
- Inoltre, versiona lo script con Git,ad esempio nella tua home o in /etc, così potrai ripristinarlo facilmente in caso di necessità.
Esempio di script bozza
Salva come /usr/local/sbin/update-systemd-boot.sh e rendilo eseguibile:
#!/bin/bash
ESP="/boot/efi"
KVER="$1"
if [ -z "$KVER" ]; then
echo "Usage: $0 <kernel-version>"
exit 1
fi
cp /boot/vmlinuz-$KVER $ESP/vmlinuz-$KVER
cp /boot/initramfs-$KVER.img $ESP/initramfs-$KVER.img
cat > $ESP/loader/entries/linux-$KVER.conf <<EOF
title Linux $KVER
linux /vmlinuz-$KVER
initrd /initramfs-$KVER.img
options root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw quiet splash
EOF
Adatta UUID e percorsi alla tua configurazione.
Timeout default e opzioni di boot
Configurare timeout e default
Modifica /boot/efi/loader/loader.conf:
timeout 5
default linux.conf
Impostare default temporaneo o permanente
Default permanente:
sudo bootctl --path=/boot/efi set-default linux.conf
One-shot per il prossimo boot:
sudo bootctl --path=/boot/efi set-oneshot linux.conf
Debug e problemi comuni
Schermo nero o firmware non vede i file
- Per prima cosa controlla che i file indicati nelle entry esistano effettivamente nella ESP.
- Secondo verifica che il firmware UEFI abbia accesso ai file copiati.
Kernel panic dopo boot
- Avvia una live USB, monta root e ESP, verifica che l’initramfs corrisponda al kernel e che root=UUID sia corretto.
GRUB rimane nella ESP
- Mantieni i file di GRUB come fallback fino a quando non hai verificato completamente systemd-boot. Non rimuovere subito la directory EFI di GRUB.
Rollback sicuro: come tornare a GRUB se necessario
Conservare GRUB come fallback
- Non cancellare i file di GRUB dalla ESP. Modifica l’ordine di boot ma mantieni GRUB come seconda voce.
Ripristino dalla live USB
- Avvia live USB.
- Monta ESP e root.
sudo mount /dev/sdXY /mnt/esp
sudo mount /dev/sdXZ /mnt/root
sudo tar -xzf ~/esp-backup-YYYY-MM-DD.tar.gz -C /mnt/esp
- Se necessario reinstalla GRUB con chroot.
Best practice e sicurezza
- Effettua backup della ESP ad ogni modifica significativa.
- Usa Git per versionare script di gestione boot se la ESP è montata in una directory gestibile.
- Controlla permessi e non esporre la ESP a modifiche non autorizzate.
- Verifica che initramfs includa driver necessari per LUKS/LVM se li usi.
Esempi avanzati
Multiboot con fallback kernel
Ad esempio crea due entry, es. linux.conf e linux-fallback.conf, puntando a kernel e initramfs differenti per poter scegliere al boot.
Setup LVM LUKS
In più assicurati che initramfs contenga moduli per decrypt e LVM e che l’opzione root= punti a /dev/mapper/ corretto o a UUID.
FAQ rapida
Posso usare systemd-boot su BIOS legacy
No, systemd-boot richiede UEFI.
Devo copiare kernel e initramfs nella ESP
Non obbligatorio se il firmware accede a /boot, perchè molti preferiscono copiare i file critici nella ESP per evitare problemi di visibilità.
Posso tornare a GRUB
Sì, mantenendo backup della ESP o reinstallando GRUB da live chroot puoi ripristinare il bootloader precedente.
Conclusione
In conclusione systemd-boot guida ha voluto spiegare come migrare da GRUB a systemd-boot. Questo può rendere il processo di avvio più rapido e la gestione delle entry più semplice. In sintesi esegui sempre un backup, è buona norma mantenere GRUB come fallback fino a test completi, e automatizza la gestione dei kernel per evitare rogne dopo aggiornamenti.