[Risolto] Dubbio su EfiBootMgr

Problemi e suggerimenti legati all'installazione di Arch Linux
Rispondi
Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

[Risolto] Dubbio su EfiBootMgr

Messaggio da vda » 19 luglio 2018, 9:06

ho appena seguito la guida all'indirizzo https://wiki.archlinux.org/index.php/systemd-boot per installare systemd-boot come boot loader.

In particolare, ho voluto provare a creare manualmente l'EFI boot entry mediante efibootmgr direttamente dal live CD, come spiegato al punto https://wiki.archlinux.org/index.php/sy ... efibootmgr.

Essendo nel mio caso ESP = /dev/sda1, risulta

Codice: Seleziona tutto

# efibootmgr -c -d /dev/sda -p 1 -l "\EFI\systemd\systemd-bootx64.efi" -L "Linux Boot Manager"
E come effetto ottengo:

Codice: Seleziona tutto

efibootmgr -v
---
BootCurrent: 0000
BootOrder: 0003,0000,0001,0002
...

dove:

0000 indica CD/DVD
0001 indica Hard Drive
0002 indica UEFI Shell
0003 indica /boot/EFI/systemd-bootx64.efi

Peraltro, il tutto funziona correttamente. Difatti, avviando il sistema, questa volta senza live CD, viene correttamente lanciato il boot loader.

La cosa strana è tuttavia che, installando e rieseguendo efibootmgr

Codice: Seleziona tutto

# efibootmgr -v
non vedo piu' in elenco il boot entry 0003 "Linux boot Manager"

É normale?

8)
Ultima modifica di vda il 24 luglio 2018, 16:44, modificato 1 volta in totale.
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Dubbio su EfiBootMgr

Messaggio da TheSaint » 19 luglio 2018, 11:33

vda ha scritto:
19 luglio 2018, 9:06
La cosa strana è tuttavia che, installando e rieseguendo efibootmgr
Ma quante volte hai installato?
Fai foto alla(e) pagina(e) del BIOS, riguardo alla lista di avvio ;)
Poi sei sicuro che hai riavviato in UEFI? Hai verificato ?
F the saint
11 anni da questo forum ;)

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: Dubbio su EfiBootMgr

Messaggio da vda » 19 luglio 2018, 12:01

Grazie del contributo come sempre.

Ho installato solo una volta, ma creando directory, file di confivurazione e efi boot entry manualmente. Il mio obiettivo è difatti quello di creare uno script per automatizzare l'installazione anche su altre macchine.

Al momento sto lavorando su VirtualBox e mi é difficile fare uno screenshot della shell Uefi, ma sono certo di riavviare in modalità Uefi, anche perché vedo partire systemd-boot all'avvio di sistema.

Sono altrettanto certo che manca l'id 0003 all'appello però.

8)
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Dubbio su EfiBootMgr

Messaggio da TheSaint » 19 luglio 2018, 15:31

Anche in VB c'è la possibilità di accedere al pseudo-BIOS.
Prova a premere DEL, F2,F8, F10, F12, ESC o qualcosa di simile, durante la fase dell' avvio e dovrebbe apparire le opzioni del pseudo-BIOS. Eventualmente ci dovrebbe essere una configurazione di VB che permette di attendere di più, prima di avviare il SO prescelto.
Per la verifica se hai avviato in UEFI basta

Codice: Seleziona tutto

$ efivar --list
Automatizzazione ?
Basta che copi l' immagine del disco virtuale ;) oppure la scarichi pronta :)
F the saint
11 anni da questo forum ;)

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: Dubbio su EfiBootMgr

Messaggio da vda » 19 luglio 2018, 22:05

Riporto di seguito quel che leggo:

Codice: Seleziona tutto

# efibootmgr

BootCurrent: 0001
BootOrder: 0000,0001,0002
Bott0000* EFI DVD/CDROM
Boot0001* EFI Hard Drive
Boot0002* EFI Internal Shell
That's all. E di Boot0003 nessuna traccia neanche in

Codice: Seleziona tutto

$ ls -l /sys/firmware/efi/efivars/


A conferma la shell EFI (funziona in effetti la combinazione CANC+F2) indica solo 3 opzioni di boot:

EFI DVD/CDROM
EFI Hard Drive
EFI Internal Shell

Ma allora, mi chiedo, come fa a partire il boot loader systemd-boot? Forse, semplicemente, il sistema viene avviato da Boot0001 (Hard Drive) perchè viene rilevato che qui risiede un file EFI? Credo sia l'unica soluzione plausibile...

8)

P.S. per "automatizzare" intendo scrivere uno script che consenta di installare - automaticamente - Arch Linux un po' come avviene per Manjaro, ovvero rendere automatico il processo di
- partizionamento,
- montaggio delle partizioni,
- esecuzione di pacstrap per copiare il fs,
- esecuzione di chroot,
- installazione di un boot loader,
- configurazione del sistema di base,
- installazione di X server e relativi driver,
- installazione di un server audio
- installazione di un DE
- installazione di un login manager
- installazione delle applicazioni
- etc.
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Dubbio su EfiBootMgr

Messaggio da TheSaint » 19 luglio 2018, 23:14

Mi par che di HardDrive tu ne abbia solo uno ;)
Per l'automatizzare, lo sconsiglio. Ci deve essere una sorveglianza sulle operazioni. Non escludo la possibilità. Se sai scrivere comandi per la shell, quella è la strada ;).
Vedo alquanto difficile per il partizionamento e le operazioni post-installazione. Presumibile che nei pacchetti da installare ci vuole l' aggiunta di un tuo script della shell che riesca a continuare le operazione a fine di installazione primaria.
Io sarei propenso ad usare l' installazione in differita, col supporto di pacman che permette di optare per una diversa root di installazione. Quindi il resto verrebbe più facile da controllare.

Ma gradirei, non deviare la discussione. Se hai soddisfatto il dubbio, metti [Risolto]. Apri una nuova discussione con il titolo più appropriato.
F the saint
11 anni da questo forum ;)

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: Dubbio su EfiBootMgr

Messaggio da vda » 20 luglio 2018, 7:31

Ho fatto ulteriori test:

1. ho eseguito l'installazione "canonica" di systemd-boot

Codice: Seleziona tutto

# bootctl install
Questa volta efibootmgr restituisce la EFI boot entry Boot0003 - Linux Bott Manager come atteso.

Riavviando, al boot di sistema viene correttamente avviato systemd-boot


2. Ho quindi cancellato la variabile efi ]Boot0003 - Linux Bott Manager

Codice: Seleziona tutto

# efibootmgr -b 3 -B
e riavviato nuovamente.

Risultato, esattamente lo stesso di prima: all'avvio di sistema, parte allo stesso identico modo systemd-boot.


3. Ho infine provato ad eliminare la variabile efi relativa allo stesso Hard Drive

Codice: Seleziona tutto

# efibootmgr -b 1 -B
e, come prevedibile, il sistema adesso non avvia piu' systemd-boot, ma lancia piuttosto la EFI Shell (che difatti nel boot order viene per ultima)


CONCLUSIONI: sembrerebbe proprio che la variabile EFI Boot0003 - Linux Bott Manager in questo caso sia poco rilevante e che lo stesso UEFI, vedendo nella ESP un avviatore .efi (/boot/EFI/systemd-bootx64.efi) decida, quando disponibile, e di sua iniziativa, di avviare il sistema da Hard Disk.

8)
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Dubbio su EfiBootMgr

Messaggio da TheSaint » 20 luglio 2018, 11:10

Ipotizzerei che la NVRAM della scheda madre sia limitata a poche voci. Poi magari potrebbe usare la codifica dei caratteri in unicode, cosicché una lettera prende due bytes.
F the saint
11 anni da questo forum ;)

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: Dubbio su EfiBootMgr

Messaggio da vda » 20 luglio 2018, 11:59

Vuoi dire che Boot003 - Linux Boot Manager c'è ma non si vede? Mi riesce difficile crederlo, visto che -torno a ripetere - installando sytemd-boot col comando

Codice: Seleziona tutto

bootctl install
Boot003 - Linux Boot Manager viene regolarmente visualizzato con efibootmgr e riosulta fra le efivars.

Rimango piuttosto della mia idea: Uefi al boot vede nella ESP un file .efi valido e lo lancia come avviatore di default senza porsi troppi problemi. Il che ha la sua logica

Altro sarebbe nel caso di multi-boot: sarebbero allora presenti piu' file .efi e sarebbe difficile per uefi decidere quello da utilizzare senza ulteriori indicazioni.

8)
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: Dubbio su EfiBootMgr

Messaggio da TheSaint » 20 luglio 2018, 19:53

Scusa forse non ho spiegato bene. Il BIOS non ha un disco dove tenere memorizzato le liste di avvio, ma una NVRAM, che mantiene i dati anche dopo spento.
Questa dovrebbe tenere il riferimento della ESP e del percorso dove si trova il file da avviare. Non penso che hanno messo tanti Mb, forse ardirei supporre un paio di Kbytes. Dati questi limiti, ho enunciato quanto sopra. Poi le cose variano da un BIOS con un altro.
F the saint
11 anni da questo forum ;)

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: Dubbio su EfiBootMgr

Messaggio da vda » 24 luglio 2018, 16:32

Perdonami, ma mi sfugge l'attinenza al problema delle tue ultime riflessioni, che per altri versi comprendo e condivido. Ma credo sia un problema.mio.

Ad ogni modo, per fugare ogni dubbio,, ho formattato e ho reiniziato tutto daccapo.

Arrivato al punto di installare systemd-boot, tuttavia, anziché eseguire il classico "chroot" e lanciare il consueto "systemd-boot install", ho preferito procedere in modo del tutto manuale, per evitare in ogni modo la costruzione di nuove variabili efi.

Ho quindi

1. creato su disco (già montato in /mnt) le directory

/mnt/boot/loader/entries
/mnt/boot/EFI/Boot
/mnt/boot/EFI/systemd


2. creato in modo opportuno i file di configurazione

/mnt/boot/loader/loader.conf
/mnt/boot/loader/entries/arch.conf
/mnt/boot/loader/entries/arch-fallback.conf


3. copiato l'avviatore syatemd-bootx64.efi in

/mnt/boot/EFI/Boot/bootx64.efi
/mnt/boot/EFI/systemd/systemd-bootx64.efi


In definitiva ho eseguito manualmente quel che l'istruzione "systemd-boot install" avrebbe fatto automaticamente, ad eccezione della creazione della variabile EFI "Boot0003 - Linux Boot Manager".

Ho infine smontato il disco e riavviato il sistema.

E -sorpresa... - il sistema é partito senza problemi, infischiandosene assolutamente dell'assenza della variabile EFI che gli indicasse l'avviatore da lanciare.

Quest'ultima prova dimostra in modo definitivo che UEFi, in presenza di un solo avviatore nella ESP, lo esegue senza necessità di ulteriori indicazioni o configurazioni.

Probabilmente - ma non lo ho ancora sperimentato - la cosa cambia in presenza di due o più avviatori (.efi) nella ESP, perché in tal caso é necessario indicare (tramite variabili EFI) l'ordine col quale provare ad eseguirli.

Grazie di tutto. Alla prossima

8)
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Avatar utente
TheSaint
Robin Hood
Messaggi: 7511
Iscritto il: 8 settembre 2007, 7:43
Architettura: x86_64 (64bit)
Località: davanti al computer

Re: [Risolto] Dubbio su EfiBootMgr

Messaggio da TheSaint » 25 luglio 2018, 3:09

Forse il difetto è nel BIOS. Non hai visto se ci sono aggiornamenti ?
F the saint
11 anni da questo forum ;)

Avatar utente
vda
Arciere Provetto
Messaggi: 576
Iscritto il: 13 febbraio 2011, 10:53

Re: [Risolto] Dubbio su EfiBootMgr

Messaggio da vda » 25 luglio 2018, 16:39

In realtà é la prima cosa che ho sospettato anch'io, ma sembrerebbe tutto in regola.

Però su una cosa hai certamente ragione: VirtualBox non emula a perfezione UEFI. Ad esempio, ho verificato che certe modifiche apportate alle variabili EFI vengono "dimenticate" quando la macchina virtuale viene spenta.

É questo ad esempio il caso di variabili create mediante Efibootmgr: finché la macchina virtuale é accesa (o al più riavviata) le variabili governano correttamente il comportamento del sistema, ma non appena la macchina viene spenta le variabili vengono a loro volta cancellate e al nuovo avvio la macchina si comporta come prima della creazione delle variabili stesse (curioso però che, se si prova, sempre con Efibootmgr, a cancellare una variabile EFI, la modifica risulta valida anche dopo lo shutdown della macchina...)

D'altra parte quella della parziale "non persistenza" di UEFI in VirtualBox è un problema noto da tempo, tanto che molti sul web consigliano come workaround quello di creare il file starup .nsh (che verrà eseguito automaticamente al boot di sistema)
nella ESP contenente il path dell'avviatore .efi da lanciare.

Codice: Seleziona tutto

/boot/startup.nsh
--------------------
\EFI\systemd\systemd-bootx64.efi
Nel mio caso non c'è neanche necessità dello script .nsh: l'avviatore viene eseguito automaticamente.

8)
Soltanto quando siamo in grado di dare possediamo veramente.
Tutto ciò che non siamo in grado di dare ci possiede. [André Gide]

Rispondi