Strumenti per modificare le variabili UEFI in Windows / Linux?


12

Ho una macchina DELL che usa Phoenix SecureCore Tiano come UEFI / BIOS Tuttavia, non è totalmente configurabile poiché la sua shell UEFI e i menu sono nascosti nel Setup BIOS.

Mi chiedo se ci fossero strumenti in grado di modificare le impostazioni UEFI (come Boot Items) in modalità utente? come "efibootmgr" in linux.

tra l'altro, poiché non è configurabile, penso che il processo di avvio sia in modalità legacy, quindi ciò significa che i sistemi operativi non sono in grado di rilevare l'esistenza di UEFI, giusto?

quindi, questo è il paradosso: devo avviare in modalità non legacy per consentire agli strumenti UEFI di modificare gli elementi di avvio in modalità utente? ma devo abilitare gli strumenti UEFI per modificare prima gli elementi di avvio per abilitare l'avvio non legacy?


ho appena scoperto che gli efi vars memorizzati in nvram, forse questo link aiuta: wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

Risposte:


3

Le implementazioni EFI devono fornire un modo per controllare la modalità di avvio (EFI vs. BIOS), tranne ovviamente per le implementazioni solo EFI senza supporto BIOS. Troppo spesso, tuttavia, il firmware offre all'utente un controllo esplicito scarso o nullo della questione; al contrario, il firmware tenta di dedurre la modalità di avvio corretta in base allo stato del disco rigido; ad esempio, potrebbe utilizzare la modalità EFI se viene rilevato un GPT e la modalità BIOS se viene rilevato un MBR; oppure potrebbe utilizzare la modalità EFI se viene rilevata una partizione di sistema EFI (ESP) e la modalità BIOS in caso contrario. Potresti essere in grado di trovare un indizio su cosa sta facendo il tuo firmware leggendo il manuale. Altrimenti, dovrai solo sperimentare.

Quando si avvia un supporto rimovibile, le regole possono essere diverse, ma spesso è possibile dargli un calcio nella giusta direzione fornendo solo una modalità di avvio. Ciò potrebbe richiedere la masterizzazione di un CD o (più facilmente) la selezione accurata di un CD. Se stai tentando di forzare un avvio in modalità EFI, il mio rEFInd , e in particolare la sua versione CD avviabile, può essere utile; si avvia solo in modalità EFI e, come configurato, fungerà da boot manager per altri boot basati su EFI, ma non per boot in modalità BIOS.


Grazie! quando partizionare il mio hd in modalità MBR, funziona come previsto. tuttavia, se utilizzo la modalità GPT, indipendentemente dal fatto che esista o meno un ESP, non si avvia e genera questo errore: "Sistema operativo non trovato". Il messaggio di errore / errore di sintassi w, è sicuramente dal BIOS stesso dopo che ho invertito la ROM del BIOS (non da alcun bootloader o record di avvio), quindi non riesco proprio a far passare il controllo di avvio in modalità GPT.
Marstone,

Alcuni sistemi basati su EFI si avviano in modalità BIOS solo se rilevano una partizione MBR con il suo flag "boot" (aka "attivo") impostato. Su un disco GPT, questo richiede l'impostazione di quel flag sulla partizione di protezione 0xEE nell'MBR. Per fare ciò puoi usare uno strumento come il fdisk di Linux (usa l'opzione "a"). Do Non utilizzare parted, GParted, o altri strumenti di libparted-based per farlo; su un disco GPT, non ti danno alcun controllo su ciò che è nell'MBR e il "flag di avvio" verrà applicato a una partizione GPT , con il significato che imposta il codice del tipo su quello di una partizione di sistema EFI (ESP) .
Rod Smith,

2

Rilascio la mia utility se qualcuno è interessato. Modifica la variabile UEFI in Windows.

https://gist.github.com/Zibri/19f9838ffd12349bb2c6c3afddc9388f/

Aggiornato il 25/02/2020 alla versione 1.2.
Nessuna connessione Internet necessaria.
Il totale dei virus riporta 6 (falsi positivi) su 96 perché il codice è offuscato.


NON È. Il programma è compresso e protetto e alcuni antivirus danno un falso positivo. Non è un virus.
Zibri,

Per i flaggers: questo programma ottiene un rilevamento un po ' allarmante su Virustotal ma sembra essere un rilevamento generico e rilevamenti di "programmi potenzialmente indesiderati". È possibile che a causa di ciò che fa questo programma sia entrato nelle suite di malware, ma fino a quando qualcuno non sarà in grado di offrire prove dirette che si tratti di malware effettivi, la risposta per ora va bene.
Mokubai

Non ho rilasciato il codice sorgente e ho reso difficile decodificare solo "ritardare" o "limitare" esattamente il proliferare di malware basato sul mio codice "semplice". Sto pensando di rilasciare la fonte, non è un segreto, non volevo essere la causa principale del futuro malware basato su uefi.
Zibri

Modifica: aggiornato oggi alla versione 1.1.
Zibri

Aggiornato alla versione 1.2
Zibri il

1

Ho appena acquistato un Dell XPS 17 (l702x) e sono interessato al multi-boot di vari sistemi operativi. Se ciò che ho capito è corretto, Dell ha una qualche forma di "BIOS" UEFI Phoenix SecureCore Tiano bloccato. Da quello che ho letto, UEFI non è direttamente utilizzabile (possibilmente tramite un menu nascosto ecc., Che potrebbe richiedere una mod BIOS).

Sembra possibile usare / accedere a una shell EFI compatibile Phoenix, usando i pacchetti open-source (BSD) TianoCore edk2 / ShellPkg (sorgente) ed edk2 / ShellBinPkg (binari) ( GIT Repo ).

Consiglio il nuovo ShellBinPkg , usando il profilo "full shell" di UEFI Shell 2.0 (supporta la maggior parte dei comandi). È inoltre possibile ricostruire una shell personalizzata utilizzando ShellPkg (compilare autonomamente o includerlo nel pacchetto OVMF per generare una versione x64) - Inclusione della shell UEFI nella distribuzione Linux iso .

Il binario della shell [U] EFI è compilato per essere eseguito indipendentemente dal firmware. Questo può essere testato inserendo la shell in un file system FAT32 (chiavetta USB, partizione del disco rigido), rinominato come /efi/boot/bootx64.efie quindi avviandolo dal BIOS [UEFI].

È possibile accedere al testo di aiuto per la shell digitando help utilname. Il solo utilizzo helpproduce un elenco di tutti i comandi di shell disponibili.

Nota: se non è possibile avviare direttamente UEFI Shell dal firmware, creare una pen drive USB FAT32 con Shell.efi copiato come (USB) /efi/boot/bootx64.efi. Questa USB dovrebbe apparire nel menu di avvio del firmware. L'avvio di questa opzione avvia UEFI Shell per te. - L' archiviazione di Linux su UEFI


è fantastico. ho comprato lo stesso modello l702x ;-) lo proverò domani! il menu nascosto è ancora sbloccabile per quanto ne so. a proposito, hai compilato bootx64.efi e hai già testato sul tuo xps?
Marstone,

ShellBinPkg è un binario precompilato della shell UEFI, dovresti essere in grado di rinominarlo e metterlo nella directory giusta. L'ho provato e non ha funzionato per me, ma non credo che sia l'unica shell disponibile (sono nuovo anche per questo). Questo post sembra offrire un download della shell che dovrebbe funzionare con Phoenix SecureCore Tiano (vedi conversazione the.ridikulus.rat-> cfr). Facci sapere come vai avanti.
Big Rich

Ho provato a mettere il file efi dal post sopra in /efi/boot/bootx64.efi, tuttavia, il mio disco USB si è avviato su grub normalmente (è già avviabile); quindi ho formattato il mio u-disk in modalità HDD e ho ricevuto l'errore "Rimuovi dischi o altri supporti ...". Ho quindi effettuato una ricerca esadecimale per questo settore stringa per settore nel mio u-disk, non esisteva. il messaggio deve dal BIOS Tiano di L702x. qualcosa di sbagliato per le mie operazioni?
Marstone,

@marstone, scusa amico, ma io stesso sono un principiante quando si tratta di questa roba UEFI (sto bene con il mio Google-fu ;-)). Sono stato occupato altrove, non appena avrò del tempo lo proverò io stesso e ti farò sapere come vado avanti. Saluti, ricco.
Big Rich,

Anche se Dell ha rilasciato un'UEFI BIOS abilitato ( A19 ), 'capitankasar' finito a NotebookReview pubblicato 2x modded A18 BIOS ( UEFI , UEFI + NVIDA gpu ), si rivolgono UEFI, GPU NVIDIA overclocking e velocità della ventola, ecc (alcune di queste caratteristiche potrebbe anche esistere nella versione ufficiale di Dell, non l'ho confermato da solo). Come sempre, utilizzare a proprio rischio ;-)
Big Rich

0

Nei miei esperimenti, ho concluso come segue:

Se desideri utilizzare una chiave USB multi-boot U / EFI, DEVI:

  1. cancellare tutte le partizioni / cancellare completamente l'unità;
  2. convertilo in GPT;
  3. crea una partizione primaria e formattala come Fat32;
  4. crea una directory chiamata EFI (senza distinzione tra maiuscole e minuscole) nella radice dell'unità;
  5. creare un sottodir nella directory precedente chiamato boot (non sensibile al maiuscolo / minuscolo)
  6. inserisci il tuo file .efi desiderato e rinominalo in modo che corrisponda all'architettura del sistema: bootx64.efi se x64, bootia32.efi se x86 o bootaa64.efi se ARM64.

L'ho provato su un touchscreen Dell Inspiron 5437 e ha funzionato perfettamente.

Un'ultima cosa: se il file .efi non è firmato con la firma digitale di Microsoft, deve disabilitare solo la modalità di avvio sicuro nelle impostazioni fw. Lasciare l'avvio UEFI e la modalità di avvio rapido abilitati.

Per i test, trovare la chiave di avvio multiplo della macchina OEM prima di installarla in modo permanente e selezionare uefi: <your usb key>dall'elenco presentato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.