Client email Thunderbird – versione 60.8.0 – installazione versione online

Thunderbird logo


L’ottimo thunderbird, il client email multipiattaforma ( linux, windows, mac, etc ) della Fondazione Mozilla è arrivato alla versione 60.8.0. Thunderbird oltre ad essere molto completo, anche anche grazie ai plugin, è decisamente versatile. La sua organizzazione consente un facile trasferimento tra sistemi operativi degli archivi con le email, gli account e i contatti. In questo è possibile avere a disposizione lo stesso ambiente oltre agli stessi contenuti anche in SO diversi.

I miei archivi di posta di Thunderbird contano oramai ben più di 10 anni di vita e nonostante le priodiche pulizie occupano qualche GB di spazio. In questi anni sono stati gestiti in SO diversi e varie distribuzioni linux.

Installazione thunderbird utilizzando il file tar.gz 10 buster

Di seguito la procedura per utilizzare/installare thunderbird utilizzano il file tar.bz2 ufficiale.

Effettuare il download dal sito dedicato

https://www.thunderbird.org

scompattare il file scaricato thunderbird-60.8.0.tar.bz2 con

# tar jxvf thunderbird-60.8.0.tar.bz2

copiare in /opt con

# sudo cp thunderbird /opt

creare link sul desktop con

# cd 
# ln -s /opt/thunderbird/thunderbird Desktop/thunderbird

Trasferimento degli archivi tra macchine e sistemi operativi diversi

Per trasferire gli archivi con le email, gli account e i contatti  è sufficiente copiare la directory contenente l’archivio con la posta  di thunderbird, xxxxxxxx.default ( che può essere anche di qualche GB) e modificare in profiles.ini la voce Path= indicando la directory che è stata appena copiata per ritrovarsi anche nel nuovo sistema con lo stesso ambiente e gli stessi contenuti.
il file:profiles.ini con la voce Path da modificare

[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=1
Path=n8d7ii50.default

Per quanto mi riguarda utilizzo link simbolici per collegare la directory xxx.default contente gli archivi thunderbird. Che si trovano da una decina di anni in altra locazione ( .icedove ) e che sono condivisi da distribuzioni diverse che utilizzano la stessa versione del client thunderbird.

ad esempio la cartella n8d7ii50.default  presente nella cartella ./thunderbird  potrebbe essere un link sinbolico creato con

ln -s /percorso/originale/cartella/icedove/n5d6ii50.default  n5d6ii50.default

o se la cartella è in altra home

ln -s /percorso/cartella/altra/home/user  home

cd .thunderbird
ln -s ../home/.icedove/n8d7ii50.default  .

Note:

In Debian come avviene per l’altro peso massimo di Mozilla Foundation Forefox conosciuto come iceweasel anche Thunderbird è conosciuto anche con il nome di icedove.

Thunderbird presenta una procedura per l’impostazione automatica dell’account abbastanza efficace. Qualora non sortisca un esito positivo si può sempre optare per l’impostazione manuale e volendo il server SMTP ( Outgoing server ) si può impostare separatamente e successivamente associare all’account. In fondo alla finestra account setting.

Risorse:

Annunci

Adattatore NVME NFHK e Intel SSD 660p in Linux

L’utilizzo dei dischi SSD risulta anche in ambito linux una scelta che non può essere trascurata. Se si devono caricare velocemente molti dati come accade quando si utilizzano programmi come grandorgue l’utilizzo di queste unità consente di risparmiare parecchio tempo. Operativamente il caricamento di un sample set può passare da 4 minuti a 30 secondi. Le unità SSD al momento sono disponibili in diverse versioni. Si va dal tradizionale disco da 2,5 pollici con una velocità di lettura che si attesta su circa 500MB/s alle unità NVME che utilizzando il bus dati PCIe possono viaggiare nel caso di bus 3.0 a circa 3000MB/sec. Per contro la velocità di  lettura di una unità disco tradizionale in genere non supera i 150MB/s.

L’adattatore NFHK Model:N-M201 consente di utilizzare le unità SSD di tipo NVMe quelle con le performance migliori. Il costo dell’adattatore è contenuto se acquistato su siti come gearbest, meno di 3 euro. Da amazon si può trovare a circa 9 euro. E’ bene precisare che l’utilizzo di un un disco SSD NVME ha senso solo se si dispone di uno slot  PCIe 3.0 libero con 4 linee dati disponibili ( PCI 3.0 x4 ). Diversamente la velocità decade drasticamente e può risultare inferiore anche ad un disco SSD di tipo SATA.

Esistono diversi tipi di disco SSD quelli NVMe si riconoscono per la presenza del connettore Key M.

Intel SSD 660p

Il disco Intel SSD NVMe 660p 512GB è stato introdotto nel 2018 dal costo relativamente contenuto ha prestazioni intermedie e una buona efficenza energetica. La velocità in lettura dichiarata è di 1500MB/s quella in scrittura 1000MB/s. Per una unità SSD NVMe si tratta di performance buone decisamente superiori a quelle di una unità SSD SATA ma non al top della categoria che possono superare i 3000MB/s in lettura e i 2000MB/s in scrittura.  Il 660p monta le nuove memorie QLC 3D NAND a 64 layer che consentono di incrementare la capactà di archiviazione. La memoria NAND QLC consente infatti memorizzare 4 bit per cella. Utilizzando 4 bit per cella servono 16 diversi livelli di carica per rappresentare i 4 bit.  Queste memorie QLC se da un lato consentono di contenere i costi e migliorare l’efficenza energetica dall’altro lato hanno prestazioni inferiori e una resistenza inferiore ai cicli di scrittura.  Il disco SSD 660p ha comunque una garanzia di 5 anni. Queste unità danno il meglio di se se le operazioni di lettura/scrittura hanno percetuali 70/30 ( i tempi di riposo sono sfruttati per ottimizzare cache Slc e l’utilizzo delle celle ) se si prevedono frequenti operazioni di scrittura magari con una occupazione di spazio disco alta sopra 80% è preferibile valutare unità con maggiore resistenza alla scrittura: unità SSD con memorie TLC ( a 3 bit ) o MLC ( a 2 bit ).

 

Il disco SSD NVMe 660p che ha formato M.2 2280 una volta inserito nel connettore femmina viene tenuto in posizione con la vite presente adattatore NVMe.

Utilizzo in Linux SSD 660p

L’abbinamento adapter NVMe e SSD 660p non da particolari problemi con le ultime versioni delle distribuzioni Debian ed Ubuntu.

Utilizzo in linux unità SSD 660p non riconosciuta all’avvio dalla motherboard

Ovviamente qualora si utilizzi una  scheda madre datata si assiste al mancato riconoscimento del SSD NVMe come unità di avvio. Il disco che è tranquillamente utiilzzabile una volta che il sistema viene avviato putroppo non viene elencato come unità di boot.
Il problema del mancato riconoscimento come unità aviabile del disco SSD NVMe  può essere risolto installando la sola directory di boot in un secondo disco che fungerà da unità di avvio.

Unità SSD 660p non riconosciuta all’avvio

La motherboard FM2-A85XA-G65 ha oramai qualche annetto alle spalle e non riconosce l’unità NVMe come unità avviabile.

EFI boot manager evidenzia mostra due dischi Seagate uno da 500GB selezionato e uno da 80GB. Il

Il disco Seagate ST9500 è stato utilizzato come unità di avvio. In fase di installazione la sola directory di boot è stata installata sul disco Seagate  .

La schermata di GRUB 2.0 evidenzia le distribuzioni localizzate sull’unità NVMe.

In particolare la distribuzione selezionata Debian GNU/Linux 9 (stretch) risulta installata sulla partizione 5 dell’unità  nvme (  /dev/nvme0n1p5 )

Nell’esempio ambedue i dischi sono partizionati in GPT le partizioni di boot NVME sono localizzate nel disco seagate è sono inferiori ad 1 GB. La directory di boot (/boot) in fase di prima installazione generalmente non supera i 100 MB.

Velocità di letttura e scrittura e tempo accesso misurate dal tool Benchmark Disk presente in gnome-disk-utility. Utilizzando sample da 10MB risultati in linea con le attese: lettura 1500 MB/s, scrittura 950 MB/s tempo di accesso 0,07 msec.

Ovviamente se non si dispone di uno slot  PCIe 3.0 libero con 4 linee dati disponibili ( PCI 3.0 x4 ) il risultati potrebbero anche ricordare un SSD Sata anche poco performante.

Nota finale in un utilizzo di linux standard le performance operative complessive dell’unità SSD intel 660p potrebbero non discostarsi molto dalle unità SSD tradizionali.

Risorse:

Pale Moon ver 28.6 in Debian 9.xx

Rilasciata la versione 28.6 di Pale Moon ( release notes ). Nato come fork di Firefox con engine Gecko, è un browser open source che da importanza all’aspetto della personalizzazione completa dell’esperienza utente. Da circa un anno utilizza l’engine, Goanna, che è un fork sviluppato in proprio dell’engine Gecko. Per le estensioni si avvale del sistema Uxp derivato dalla tecnologia di Firefox XUL, garantisce il supporto ai plugin Npapi (es:Adobe flash) . Pale Moon ha come obiettivo “fornire una stretta aderenza agli standard e alle specifiche web ufficiali nella sua implementazione (con un minimo compromesso) ed esclude espressamente un eccessivo numero di funzionalità per raggiungere un equilibrio tra uso generale, prestazioni e progressi tecnici sul Web.”

Per operare in modo ottimale richiede:
1GB o meglio ancora 2GB di RAM
GTK+ v 2.24
Glib 2.22 o superiore
Pango 1.14 o superiore
libstdc++ 4.6.1 o superiore

” Pale Moon is, and will always be, completely FREE to download and use! (Open Source and Freeware) “

Installazione Pale Moon in Debian 9.xx

Può essere scaricato come tarball bzipped tarball che, una volta estratto, potrà essere avviato da qualsiasi locazione del sistema.

Download da terminale della versione a 64 bit con 47MB

wget https://linux.palemoon.org/datastore/release/palemoon-28.6.0.linux-x86_64.tar.bz2
 /opt # wget  https://linux.palemoon.org/datastore/release/palemoon-28.6.0.linux-x86_64.tar.bz2
--2019-07-03 00:35:00-- http://wget/
Resolving wget (wget)... failed: Name or service not known.
wget: unable to resolve host address ‘wget’
--2019-07-03 00:35:00-- https://linux.palemoon.org/datastore/release/palemoon-28.6.0.linux-x86_64.tar.bz2
Resolving linux.palemoon.org (linux.palemoon.org)... 104.20.60.158, 104.20.61.158, 2606:4700:10::6814:3c9e, ...
Connecting to linux.palemoon.org (linux.palemoon.org)|104.20.60.158|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 48945623 (47M) [application/octet-stream]
Saving to: ‘palemoon-28.6.0.linux-x86_64.tar.bz2’

palemoon-28.6.0.linux-x86 100%[=====================================>] 46.68M 1.06MB/s in 45s

2019-07-04 00:35:46 (1.04 MB/s) - ‘palemoon-28.6.0.linux-x86_64.tar.bz2’ saved [48945623/48945623]

FINISHED --2019-07-04 00:35:46--
Total wall clock time: 46s
Downloaded: 1 files, 47M in 45s (1.04 MB/s)

controllare il file scaricato con

# sha256sum palemoon-28.6.0.linux-x86_64.tar.bz2 
59eb62e589f80bbb3070fd4e31ee29db875c3d85e7dc3ee7807c3af4f1ac2056  palemoon-28.6.0.linux-x86_64.tar.bz2

decomprimere con

tar jxvf palemoon-28.6.0.linux-x86_64.tar.bz2 

decompresso Pale Moon occupa su disco 111MB.
Per avviare da terminale digitare

# ./palemoon/palemoon

In Debian 9.xx può essere installato anche utilizzando lo specifico repository Pale Moon repositories for Debian and Ubuntu — mantenuto da Steve Pusser.

Per aggiungere la Key del repository ad apt

# wget -nv https://download.opensuse.org/repositories/home:stevenpusser/Debian_9.0/Release.key -O Release.key
apt-key add - < Release.key

Per aggiungere il repository ad apt al solito

echo 'deb http://download.opensuse.org/repositories/home:/stevenpusser/Debian_9.0/ /' > /etc/apt/sources.list.d/home:stevenpusser.list

Per installare:

apt-get update
apt-get install palemoon

Risorse:

SQLWorkbench configurare per MySQL – Extended Properties

SQLWorkbench è un SQL query tool free particolarmente efficace che supporta un ampio numero di DBMS. Scritto in Java è in grado di interfacciarsi con qualsiasi database per il quale sia disponibile un JDBC driver.  Essendo in java SQLWorkbench potrebbe essere eseguito in qualsiasi Sistema Operativo che disponga di JRE ( Java Runtime Environment)

Tra i database supportati e testati ci sono MySQL e MariaDB SQL. Di seguito i passi per “installare” e configurare SQLWorkbench per MySQL. 
La configurazione per il database postgresql nel post: SQLWorkbench build 125 configurare per PostgreSQL – debian 9.xx

L’ultima versione stabile è la Build 125 del 5 maggio 2019.
Release Note Build 125. Con questa release si è avuto un cambio nel layout delle directory. Tutte le librerie addizionali ( es. esportazione excel ) ora si trovano nella sottodirectory /ext. Pertanto conviene effettuare il download con tutte le librerie opzionali che verranno posizionate correttamente.

Di fatto SQLWorkbench non necessita di una vera installazione è sufficiente scaricare il pacchetto generico, decomprimere e lanciare lo script sqlworkbench.sh. Per poter utilizzare SQLWorkbench è ovviamente necessario java JRE.

Controllare la versione java disponibile con java -version

# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-2~deb9u1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)

Configurare e Installare SQLWorkbench per MySQL

Il pacchetto SQLWorkbench è disponibile alla pagina

http://www.sql-workbench.net/downloads.html

Per poter interagire con MySQL serve inoltre lo specifico driver JDBC. Il driver che andra opportunamente configurato in SQLworkbench è scaricabile dalla pagina
https://dev.mysql.com/downloads/connector/j/
la versione corrente di mysql JDBC Driver è la 8.0.16.
Scaricare la versione JDBC Platform independent

una volta scaricato il driver effettuare il check md5 con

# md5sum mysql-connector-java-8.0.16.tar.gz 
3cd3a2cfa510b48fc54fadfc1db5db61  mysql-connector-java-8.0.16.tar.gz# md5sum mysql-connector-java-8.0.16.tar.gz 

decomprimere con

#  tar zxvf mysql-connector-java-8.0.16.tar.gz 

Il driver estratto

mysql-connector-java-8.0.16.jar

andrà copiato nella directory /ext di sqlworkbench

Operando da terminale

scegliamo la directory opt per l’applicazione quindi

su 
mkdir /opt/sqlworkbench
cd /opt/sqlworkbench

SQLWorkBench 125 con le librerie opzionali occupa circa 26MB e può essere scaricato con

# wget http://www.sql-workbench.eu/Workbench-Build125-with-optional-libs.zip ... Workbench-Build125-with-op 100%[=======================================>]  26.40M  1.03MB/s    in 26s  wget http://www.sql-workbench.eu/Workbench-Build125-with-optional-libs.zip

Decomprimiamo il pacchetto con

# unzip Workbench-Build125-with-optional-libs.zip 

Rendiamo eseguibile per tutti gli users lo script di avvio workbench.sh

# chmod a+x sqlworkbench.sh 

copiare il driver mysql-connector-java-8.0.16.jar che dovrebbe trovarsi in

Download/mysql-connector-java-8.0.16

in
/opt/sqlworkbench/ext

Volendo si può creare un link simbolico a sqlworkbench nel desktop con

ln -s /opt/sqlworkbench/sqlworkbench.sh sqlworkbench

avviamo. Come sempre all’ avvio la finestra in primo piano è quella per creare un profilo di connessione.

Per connettersi a MySQL è necessario a questo punto configurare il driver.

  • Click sul pulsante Manage Drivers
  • In primo piano ci sarà  la finestra Manage drivers

  • Selezionare MySQL dall’ elenco di destra con i DBMS supportati
  • Click sul pulsante cartella in alto a sinistra e selezionare il file driver JDBC per mysql. Evidenziato in giallo era stato precedentemente scaricato nella cartella ext. Premere Open apparirà nella Library il driver .jar quindi premere OK.
  • a questo  punto è possibile completare il profilo di connessione

Si dovrà inserire:

  • nome per la connessione
  • nell URL: host (ip, dominio), porta e database
  • username e password

Se si verifica l’errore:

"The server time zone value 'EDT' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support."

E’ necessario impostare la variabile serverTimezone = UTC utilizzando il pulsante [ Extended Properties ].

Collegamento diretto a server arvixe

Ricercare una stringa in tutto il database mysql

SQLworkbench in azione. Grazie alla funzione  WbGrepData è possibile ricercare una stringa in qualsiasi campo (field) di tutte le tabelle del database. In questo caso la ricerca della stringa maurizio

WbGrepData -searchValue=maurizio -tables=* -types=table

viene riscontrata in 3 tabelle mysql. Tutte chiaramente visualizzate.

Database Compatibili con SQLworkbench

Risorse:

SQLWorkbench build 125 configurare per PostgreSQL – debian 9.xx

SQLWorkbench è un SQL query tool free particolarmente efficace che supporta un ampio numero di DBMS. Scritto in Java è in grado di interfacciarsi con qualsiasi database per il quale sia disponibile un JDBC driver.  Essendo in java SQLWorkbench potrebbe essere eseguito in qualsiasi Sistema Operativo che disponga di JRE ( Java Runtime Environment).

L’ultima versione stabile è la Build 125 del 5 maggio 2019.
Release Note Build 125.
Con questa release si è avuto un cambio nel layout delle directory. Tutte le librerie addizionali ( es. esportazione excel ) ora si trovano nella sottodirectory /ext.
pertanto conviene effettuare il download con tutte le librerie opzionali che verranno posizionate correttamente.

 Tra i database supportati e testati non poteva mancare PostgreSQL. Di seguito i passi per “installare” e configurare SQLWorkbench per PostgreSQL.

Essendo in Java l’ applicativo SQLWorkbench prevede un package generico che va bene per tutti i sistemi. Di fatto non necessita di una vera installazione è sufficiente scaricare il pacchetto generico, decomprimere e lanciare lo script sqlworkbench.sh. Per poter utilizzare SQLWorkbench è necessario java JRE. Possiamo controllare la versione java disponibile con java -version

# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-2~deb9u1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)

per installare Oracle JRE  manualmente su macchina linux si può fare riferimento  al post   Oracle Java Runtime 8 installazione manuale – versione 8.121 – Debian 8.xx 64 bit

Configurare e Installare SQLWorkbench per PostgreSQL


Il pacchetto SQLWorkbench è disponibile alla pagina

http://www.sql-workbench.net/downloads.html

Per poter interagire con postgresql serve inoltre lo specifico driver JDBC.

Aggiornamento il 18/06/2019 a distanza di circa un anno è stata rilasciata la nuova versione del driver jdbc: PostgreSQL JDBC Driver 42.2.6.
Il driver che andra opportunamente configurato in SQL workbench è scaricabile all’indirizzo

https://jdbc.postgresql.org/download.html

Operando con il terminale

scegliamo la directory opt per l’applicazione quindi

su 
mkdir /opt/sqlworkbench
cd /opt/sqlworkbench

SQLWorkBench 125 con le librerie opzionali occupa circa 26MB e può essere scaricato con

# wget http://www.sql-workbench.eu/Workbench-Build125-with-optional-libs.zip ... Workbench-Build125-with-op 100%[=======================================>]  26.40M  1.03MB/s    in 26s  wget http://www.sql-workbench.eu/Workbench-Build125-with-optional-libs.zip

Decomprimiamo il pacchetto con

# unzip Workbench-Build125-with-optional-libs.zip 

Rendiamo eseguibile per tutti gli users lo script di avvio workbench.sh

# chmod a+x sqlworkbench.sh 

La pagina con i JDBC Drivers di Postgresql
https://jdbc.postgresql.org/download.html
il nuovo PostgreSQL JDBC Driver 42.2.6 (16-06-2019) è scaricabile da terminale con

# cd ext 
# wget https://jdbc.postgresql.org/download/postgresql-42.2.6.jar

Volendo si può creare un link simbolico nel desktop con

ln -s /opt/sqlworkbench/sqlworkbench.sh sqlworkbench

avviamo.

Come per le versioni precedenti all’ avvio la finestra in primo piano è quella per creare un profilo di connessione.

Per connettersi a postgresql è necessario a questo punto configurare il driver.

  • Click sul pulsante Manage Drivers
  • In primo piano ci sarà  una nuova finestra Manage drivers
  • Selezionare postgreSQL dall’ elenco di destra con i DBMS supportati
  • Click sul pulsante cartella in alto a sinistra e selezionare il file driver JDBC per postgresql. Evidenziato in giallo era stato precedentemente scaricato nella cartella ext. Premere Open apparirà nella Library il driver .jar quindi premere OK.
  • a questo  punto è possibile completare il profilo di connessione

Si dovrà inserire:

  • nome per la connessione
  • nell URL:  host, porta e database
  • username e password

Collegamento a server postgresql AWS via tunnel ssh 127.0.0.1:54325 porta 54325 ( ssh tunnel per accedere a servizi http, postgresql, samba in remoto )

Ricercare una stringa in tutto il database postgresql

SQLworkbench in azione. Grazie alla funzione  WbGrepData è possibile ricercare una stringa in qualsiasi campo (field) di tutte le tabelle del database. In questo caso la ricerca della stringa Zeus

WbGrepData -searchValue=Zeus -tables=public.* -types=table

viene riscontrata in 18 tabelle postgresql. Tutte chiaramente visualizzate.

Database Compatibili con SQLworkbench

Risorse:

efibootmgr – l’applicazione per interagire e modificare l’ EFI Boot Manager – Linux

efibootmgr è un’applicazione userspace utilizzata per modificare il Boot Manager Extensible Firmware Interface (EFI) di Intel. EFI che oramai ha rimpiazzato il BIOS è l’interfaccia firmware che si occupa del modo in cui hardware e software comunicano in un computer. Tra i benefici di EFI è di essere non legato all’architettura x86.  Attualmente viene implementata l’estensione di  EFI denominata UEFI (Unified EFI ).  Tra i compiti di UEFI c’è proprio anche quello di occuparsi dei servizi di Boot. Grazie ad UEFI è possibile avviare diversi sistemi operativi Linux, Mac, Windows senza la necessità di un bootmanager esterno. UEFI infatti può automaticamente selezionare la partizione appropriata con il sistema operativo. L’unica condizione è che l’hardware e  il software ( SO ) supportino le specifiche UEFI.

Esempi di UEFI Boot Menu.

AsRock FM2 – AMD
x79-Xeon

ATTENZIONE: nei primi tempi le implementazioni UEFI, seppur lungimiranti, sono state accompagnate da diversi bug anche peggiorativi rispetto alla controparte BIOS. In questi casi l’utilizzo di efibootmgr si deve accompagnare alla conoscenza della motherboards specifica. 
In generale poichè si potrebbe anche rendere necessario il caricamento del firmware della MB si sconsiglia la modifica con efibootmgr ( anche nel caso dei Macintosh si sconsiglia la modifica con efibootmgr dei menu entry).
Per disporre di un boot manager userfriendly  si consiglia di valutare l’uso di rEFInd.

Boot Manager: rEFInd

Verificare che il sistema sia stato avviato in UEFI mode

Per poter utilizzare efibootmgr è necessario che le variabili filesystem EFI ( EFI vars )  siano accessibili. Questo implica che il sistema sia stato avviato in EFI mode.

In debian:

# sudo [ -d /sys/firmware/efi ] && echo "EFI boot on HDD" || echo "Legacy boot on HDD"
EFI boot on HDD

dal kernel 4.0 si può verificare che l’avvio sia avvenuto in EFI mode con

# cat /sys/firmware/efi/fw_platform_size
se UEFI mode
64  # se 64 bit 
32  # se 32 bit 
diversamente No UEFI mode  
cat: /sys/firmware/efi/fw_platform_size: No such file or directory 

Per visualizzare le variabili EFI si può utilizzare il comando

# efivar –list

Altro comando per verificare l’avvio in EFI mode

#mount | grep efivars
efivarfs on /sys/firmware/efi/efivars type efivarfs (ro,relatime)

Se  il sistema NON è stato avviato in EFI mode digitando efibootmgr avremo il seguente messaggio:

# efibootmgr 
EFI variables are not supported on this system.

UEFI Boot Manager

Usualmente un Computer UEFI mette a disposizione anche tool di configurazione per il menu del Boot Manager EFI. Se il tool non è sufficientemente amichevole  è preferibile utilizzare il già citato rEFInd oppure l’applicazione efibootmgr oggetto del post.

Efibootmgr

Efibootmgr può creare e rimuovere le voci nel menu di avvio UEFI, modificare l’ordine delle voci nel menu e altro ancora.

In debian/ubuntu  efibootmgr si installa da terminale al solito con

# apt install efibootmgr

lanciato efibootmgr verranno visualizza i dati relativi all’ UEFI Boot Manager con il menu di Avvio UEFI, la voce di avvio corrente del sistema, l’ordine di visualizzazione,…

# efibootmgr 
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0000,0001,0006,0004,0005,0002
Boot0000* ubuntu
Boot0001* mx
Boot0002* UEFI: Built-in EFI Shell 
Boot0004* Hard Drive 
Boot0005* USB 
Boot0006* UEFI: Samsung Flash Drive 1100

Il menu di avvio è composto da 6 voci: Boot0000, Boot0001, …

BootCurrent: la prima linea evidenzia quella che è la voce predefinita del menu di avvio. In questo caso mx.

Timeout: il tempo di attesa del menu di avvio che risulta di default inpostato a 0 infatti in genere non si riesce a vedere il menu di avvio.

BootOrder: la successione che verra seguita qualora il precedente menu entry non venga caricato / fallisca il caricamento.
Nell’esempio l’ordine seguito sarà: 0000,  0001, 0006, 0004, 0005, 0002

E ‘  possibile visualizzare le voci del menu EFI  in modo completo utilizzando l’opzione -v verbose

# efibootmgr 
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0000,0001,0006,0004,0005,0002
Boot0000* ubuntu	HD(2,GPT,defb0216-f5f6-4969-8345-ff816517a944,0xee800,0x1ad000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* mx	HD(1,GPT,9c281ac1-76a6-4b39-b2c2-ff65b0d0bef6,0x800,0x1ef000)/File(\EFI\mx\grubx64.efi)
Boot0002* UEFI: Built-in EFI Shell 	VenMedia(5023b95c-db26-429b-a648-bd47664c8012)AMBO
Boot0004* Hard Drive 	BBS(HD,,0x0)AMGOAMNO........m.S.e.a.g.a.t.e. .S.T.9.5.0.0.5.6.2.0.A.S....................A.........................>..Gd-.;.A..MQ..L. . . . . . . . . . . . .Y.5.1.X.D.C.C.9......AMBO
Boot0005* USB 	BBS(USB,,0x0)AMGOAMNO........s.S.a.m.s.u.n.g. .F.l.a.s.h. .D.r.i.v.e. .1.1.0.0....................A.......................F..Gd-.;.A..MQ..L.S.a.m.s.u.n.g. .F.l.a.s.h. .D.r.i.v.e. .1.1.0.0......AMBO
Boot0006* UEFI: Samsung Flash Drive 1100	PciRoot(0x0)/Pci(0x10,0x0)/USB(2,0)/HD(1,MBR,0x23,0x800,0x4e3e800)AMBO

In questo caso è possibile individuare anche le informazioni relative al percorso del bootloader. Ad esempio la varibile mx, ( Boot0001) relativa alla derivativa debian, mx linux, evidenzia che il booloader è di fatto GRUB. Il percorso con la configurazione efi ( grubx64.efi), menu entry ( mx) per il bootloader grub nella partizioni EFI system partition risulta essere (\EFI\mx\grubx64.efi ). La partizione è localizzata nel disco 1 che è partizionato GPT.

Cambiare il Timeout

Se si desidera visualizzare il menu per poter scegliere sempre dal bootmanager EFI si può portare il timeout a 5 srecondi con

efibootmgr -t 5

Cambiare l’ordine di avvio

Per cambiare l’ordine di avvio si utilizza l’opzione -o

efibootmgr -o 0001,0000,0006,0004,0005,0002

è possibile cambiare l’ordine solo per il primo successivo avvio.
In questo caso si usa l’opzione -n

efibootmgr -n 0002

Creare una voce nel menu di boot EFI

Per aggiungere un entry al menu EFI si usa l’opzione -c

efibootmgr -c -d /dev/sdb -p 2 -L “Debian” -l “\EFI\debian\grubx64.efi”

efibootmgr -c -d /dev/sdb -p 1 -L "multibootusb" -l "\EFI\boot\bootx64.cfg"
  • --create or -c crea una nuova voce;
  • --part or -p seguito dal numero di partizione della Partizione di Sistema EFI;
  • --disk or -d seguito dal disco nel quale la Partizione di Sistema EFI è ospitata;
  • --label or -L seguito dall’etichetta da utilizzare come voce nel menu di avvio;
  • --loader or -l seguito dal percorso dell’immagine EFI da avviare \EFI\boot\bootx64.cfg.

Cancellare una voce dal menu EFI

per cancellare un voce di menu di utilizza l’opzione -B

efibootmgr -b 4 -B

–bootnum (-b) seleziona la voce del menu da cancella
–delete-bootnum (-B) effettua la cancellazione

Se la voce cancellata era la prima fare attenzione e cambiare l’ordine di avvio dei menu.

UEFI Bootloader di fallback

Nelle specifiche UEFI 2.3, section 3.4.1.2, si precisa che in assenza di boot variabili configurate è permesso al firmware trattare la EFI system partition come media rimovibile – il percorso di boot sarà EFI/boot/bootx64.efi.

Quindi va considerata l’opportunità dell’installazione di un bootloader di fallback. Di seguito esempi di bootloader di fallback per debian e window

Nel caso di Debian Linux boot entry in NVRAM debian percorso di Boot EFI nella partizione EFI system partition:

EFI/debian/grubx64.efi

il percorso del bootloader di fallback risulta essere

EFI/boot/grubx64.efi

ad esempio nel caso di window variabile di boot configurata: microsoft
oltre a percorso di boot

EFI/microsoft 

potremmo avere il percorso di fallback

EFI/boot/bootx64.efi  

 

Opzioni efibootmgr:

-a | –active
Sets bootnum active
-A | –inactive
Sets bootnum inactive
-b | –bootnum XXXX
Modify BootXXXX (hex)
-B | –delete-bootnum
Delete bootnum (hex)
-c | –create
Create new variable bootnum and add to bootorder
-d | –disk DISK
The disk containing the loader (defaults to /dev/sda)
-e | –edd 1|3|-1
Force EDD 1.0 or 3.0 creation variables, or guess.
-E | –device NUM
EDD 1.0 device number (defaults to 0x80)
-g | –gpt
Force disk with invalid PMBR to be treated as GPT
-H | –acpi_hid XXXX
set the ACPI HID (used with -i)
-i | –iface NAME
create a netboot entry for the named interface
-l | –loader NAME
Specify a loader (defaults to \\elilo.efi)
-L | –label LABEL
Boot manager display label (defaults to “Linux”)
-n | –bootnext XXXX
Set BootNext to XXXX (hex)
-N | –delete-bootnext
Delete BootNext
-o | –bootorder XXXX,YYYY,ZZZZ
Explicitly set BootOrder (hex)
-O | –delete-bootorder
Delete BootOrder
-p | –part PART
Partition number containing the bootloader (defaults to 1)
-q | –quiet
Quiet mode – supresses output.
–test filename
Don’t write to NVRAM, write to filename.
-t | –timeout seconds
Boot Manager timeout, in seconds.
-T | –delete-timeout
Delete Timeout variable.
-u | –unicode | –UCS-2
pass extra command line arguments as UCS-2 (default is ASCII)
-U | –acpi_uid XXXX
set the ACPI UID (used with -i)
-v | –verbose
Verbose mode – prints additional information
-V | –version
Just print version string and exit.
-w | –write-signature
write unique signature to the MBR if needed
-@ | –append-binary-args
append extra variable args from file (use – to read from stdin). Data in file is appended as command line arguments to the boot loader command, with no modification to the data, so you can pass any binary or text data necessary.

Risorse: