Avviare una LIVE.iso da GRUB2 (UUID, LABEL).

Avviare una LIVE.iso (rescuezilla-2.4.2-64bit.jammy.iso) da GRUB2 (UUID, LABEL).

1) Cose da sapere prima di procedere.
In questi appunti, spiego uno dei tanti metodi esistenti per avviare una distribuzione di Linux su un computer su cui è già installato Linux Lubuntu 24.4 LXQt LTS e che l’avvio del Sistema Operativo avvenga tramite GRUB2. Il metodo qui spiegato, prevede la modifica del file 40_custom (e, di conseguenza, del relativo menù di avvio) di Lubuntu.
Ai fini pratici, le istruzioni specifiche sono per avviare una LIVE.iso di Rescuezilla 2.4.2 ma, con qualche piccolo adattamento, possono essere utilizzate anche per provare le LIVE.iso di altre distribuzioni di Linux.

Ai fini di una più completa comprensione delle istruzioni qui riportate, si ribadisce che [‘] non è [`].
[‘] si ottiene digitando il tasto [‘] (apostrofo);
[`] si ottiene digitando la combinazione di tasti [AltGr]+[‘] (apostrofo).

SE si avvia un computer nel quale esiste più di una partizione avente il medesimo UUID (evento difficilmente possibile);
SE si avvia un computer nel quale esiste più di una partizione avente la medesima LABEL (evento possibile);
SE si avvia un computer nel quale è connessa più di una memoria di massa (evento facilmente possibile);
il metodo qui riportato per avviare una LIVE.iso POTREBBE NON FUNZIONARE.

2) Avviare il computer con la connessione ad internet attiva; quando compare il menù di avvio, selezionare [Lubuntu 24.4 LXQt LTS] ed eseguire il LOGIN.

3) Reperire la LIVE.iso che si vuol provare.
Nel caso in cui la suddetta LIVE.iso NON sia già in nostro possesso, aprire un browser web (es. Firefox) e con esso, accedere alla pagina WEB dalla quale sia possibile scaricare la LIVE.iso che si vuol provare.
Per esempio: volendo installare l’ultima versione di Rescuezilla, accedere alla pagina web
[https://rescuezilla.com/download.html].

Cliccare sul bottone che avvia il download della LIVE.iso.
Per esempio: cliccando sul bottone [rescuezilla-2.4.2-64bit.jammy.iso] si attiverà il link
[https://github.com/rescuezilla/rescuezilla/releases/download/2.4.2/rescuezilla-2.4.2-64bit.jammy.iso], e la corrispondente LIVE.iso verrà salvata nella cartella dei Download/Scaricati di default.

4) Nel caso in cui la suddetta LIVE.iso sia già in nostro possesso, occorre individuare univocamente la cartella che la contiene, ed eseguire le istruzioni riportate dal punto 5) in poi di questi appunti.
La cartella contenente la suddetta LIVE.iso, può determinarla seguendo le istruzioni descritte nei miei appunti di cui segue il link:
[OMISSIS]

Scaricare -possibilmente dal sito internet ufficiale- la LIVE.iso che si vuol provare NON si trova in una cartella di una memoria di massa connessa al computer in uso.

5) Avviare il gestore dei files (es. PCManFM-Qt)
Copiare il file [rescuezilla-2.4.2-64bit.jammy.iso] dalla cartella [/home/lubuntu24l4/Scaricati] alla cartella che preferite; io l’ho salvato nella cartella avente percorso completo [/media/lubuntu24l4/ntfs01/iso/Rescue] contenuta in una memoria USB avente punto di mount [/media/lubuntu24l4/ntfs01/].

6) (Facoltativo) Verificare l’integrità della LIVE.iso.
A tal fine, aprire un terminale nella cartella in cui abbiamo salvato la LIVE.iso ed impartire il comando
sha256sum LIVE.iso # Esegue verifica di integrità utilizzando, al posto di LIVE.iso, il nome della .iso scaricata
e confrontare l’output del comando con quello che il produttore della LIVE.iso indica essere l’output corretto; se corrisponde, proseguire dalle istruzioni al punto 7 in poi; in caso contrario, cancellare il file [LIVE.iso], spegnere il computer e ripetere le istruzioni partendo dal punto 2. In questo caso specifico:
sha256sum rescuezilla-2.4.2-64bit.jammy.iso # Esegue verifica di integrità
9a741bfd2eb0f7fa5d982bc362f17073e7726dffc791522c98bb7d593bc1759a rescuezilla-2.4.2-64bit.jammy.iso
l’output corrisponde, quindi si prosegue.

7) Rilevare i parametri per avviare la LIVE.iso.
Aprire un terminale nella cartella in cui si trova il FILE.iso che si desidera provare, ed impartire, nell’ordine in cui sono scritti, e senza mai chiudere o cambiare il terminale suddetto, i comandi seguenti:
ISO='rescuezilla-2.4.2-64bit.jammy.iso' # Definisce variabile contenente il nome del FILE.iso che si vuol provare.
MT0='iSo' # Definisce variabile contenente il punto di Mount Temporaneo del FILE.iso.
STR='menuentry' # Definisce variabile contenente una stringa alfanumerica contenuta nella prima riga dei dati cercati.
N1E='*.cfg' # Definisce variabile contenente parte del nome ed estensione del file che contiene i dati cercati.
sudo mkdir ${MT0} # Crea cartella da usare come punto di mount per FILE.iso
sudo mount -o loop -t iso9660 ${ISO} ${MT0} # Assegna al FILE.iso il punto di mount creato al punto precedente.
C0="cat $(find ./${MT0} -name ${N1E})|grep '"${STR}"' -A5 | head -6"; echo ${C0} ; eval ${C0} # Compone, e visualizza, ed esegue l'istruzione per estrarre i dati utili per avviare il FILE.iso.
# oppure
C1="grep '"${STR}"' $(find ./${MT0} -name ${N1E}) -A5 -h | head -6"; echo ${C1}; eval ${C1} # Alternativa.
sudo umount ${MT0} # Smonta il FILE.iso a cui era stato assegnato il punto di mount ${MT0} appositamente creato nella cartella di lavoro.
sudo rm -r ${MT0} # Rimuove il punto di mount ${MT0} appositamente creato nella cartella di lavoro.
A2=$(df $PWD |grep -v 'File system'); echo $A2 # Identifica la partizione contenente la cartella di lavoro.
B2=${A2::`expr index "$A2" ' '`}; echo $B2 # Isola il numero della partizione contenente la cartella di lavoro.
C2='lsblk -o mountpoint,label,path,uuid | egrep "PATH|'${B2}'"'; echo ${C2}; eval ${C2}
# Mostra: Punto di mount, LABEL, PATH e UUID della cartella di lavoro.
pwd # Mostra percorso assoluto cartella di lavoro.
A1=$(df $PWD |grep '/'); B1=${A1:1+$(expr index "$A1" '%')}; echo ${PWD:${#B1}:${#PWD}} # Mostra il percorso della cartella di lavoro.

Ovvero: da un terminale aperto nella cartella contenente la LIVE.iso che vogliamo avviare, impartire:
ISO='rescuezilla-2.4.2-64bit.jammy.iso'; MT0='iSo'; STR='menuentry'; N1E='*.cfg'; sudo mkdir ${MT0}; sudo mount -o loop -t iso9660 ${ISO} ${MT0}; C0="cat $(find ./${MT0} -name ${N1E})|grep '"${STR}"' -A5 | head -6"; echo ${C0}; eval ${C0}; sudo umount ${MT0}; sudo rm -r ${MT0}; A2=$(df $PWD |grep -v 'File system'); B2=${A2::`expr index "$A2" ' '`}; C2='lsblk -o mountpoint,label,path,uuid | egrep "PATH|'${B2}'"'; echo ${C2}; eval ${C2}; pwd; A1=$(df $PWD |grep '/'); B1=${A1:1+$(expr index "$A1" '%')}; echo ${PWD:${#B1}:${#PWD}} # Mostra tutti i dati necessari per modificare il file "40_custom".L’output dei comandi suddetti permette di conoscere i dati necessari per modificare opportunamente il file 40_grub; in questo caso specifico, si otterrà:

[sudo] password di lubuntu24l4:
mount: /media/lubuntu24l4/ntfs01/iso/Rescue/iSo: WARNING: source write-protected, mounted read-only.
cat ./iSo/boot/grub/grub.cfg ./iSo/boot/grub/loopback.cfg ./iSo/EFI/ubuntu/grub.cfg|grep 'menuentry' -A5 | head -6.
cat ./iSo/boot/grub/grub.cfg ./iSo/boot/grub/loopback.cfg ./iSo/EFI/ubuntu/grub.cfg|grep 'menuentry $"Start' -A5
   menuentry $"Start Rescuezilla" $locale_opts --id standard-start-item {
       shift 1
       set locale_opts="$*"
       linux  /casper/vmlinuz boot=casper quiet splash fastboot fsck.mode=skip noprompt edd=on ${locale_opts} ${isoboot} --
       initrd /casper/initrd.lz
   }
lsblk -o mountpoint,label,path,uuid | egrep "PATH|/dev/sdb1 "
MOUNTPOINT                          LABEL  PATH        UUID
/media/lubuntu24l4/ntfs01           ntfs01 /dev/sdb1   3488D35488D3136A
/media/lubuntu24l4/ntfs01/iso/Rescue
/iso/Rescue

8) Modificare il file [/etc/grub/40_custom].
Col gestore dei files (es. PCManFM-Qt) in modalità “amministratore”, aprire
[/etc/grub.d/40_custom] ed Aggiungere (in coda al file di testo [40_custom]) le righe seguenti:
menuentry "rescuezilla-2.4.2-64bit.jammy.iso LIVE (UUID 3488D35488D3136A)" {
      set root=3488D35488D3136A
      search --no-floppy --fs-uuid --set=root 3488D35488D3136A
      set isofile="/iso/Rescue/rescuezilla-2.4.2-64bit.jammy.iso"
      loopback loop $isofile
      linux (loop)/casper/vmlinuz boot=casper fastboot fsck.mode=skip noprompt edd=on iso-scan/filename=$isofile  ---  debian-installer/language=it keyboard-configuration/layoutcode?=it
      initrd (loop)/casper/initrd.lz
}
# Oppure
menuentry "rescuezilla-2.4.2-64bit.jammy.iso LIVE (--label ntfs01)" {
      search --no-floppy --set=root --label ntfs01
      set isofile="/iso/Rescue/rescuezilla-2.4.2-64bit.jammy.iso"
      loopback loop $isofile
      linux (loop)/casper/vmlinuz boot=casper fastboot fsck.mode=skip noprompt edd=on iso-scan/filename=$isofile  ---  keyboard-configuration/layoutcode?=it
      initrd (loop)/casper/initrd.lz
}
# Oppure
menuentry "rescuezilla-2.4.2-64bit.jammy.iso LIVE (hd0,1)" {
      set isofile="/iso/Rescue/rescuezilla-2.4.2-64bit.jammy.iso"
      loopback loop (hd0,1)$isofile
      linux (loop)/casper/vmlinuz boot=casper fastboot fsck.mode=skip noprompt edd=on iso-scan/filename=$isofile  ---  keyboard-configuration/layoutcode?=it
      initrd (loop)/casper/initrd.lz
}

8b) Contenuto di ogni singola riga.
menuentry si trova all’inizio della prima riga di ogni singolo blocco di istruzioni.
Il testo riportato tra apici, è quello che comparirà nel menù di avvio di grub2.
Il carattere { (apertura parentesi graffa) indica l’inizio di un blocco di istruzioni.
set root si trova all’inizio della riga in cui si definisce il codice UUID della partizione contenente la LIVE.iso che si vuole avviare.
search si trova all’inizio della riga in cui si definisce il codice UUID oppure la LABEL della partizione contenente la LIVE.iso che si vuole avviare.
set si trova all’inizio della riga in cui si definisce che variabile iso_path contiene il nome della LIVE.iso da avviare completo di percorso (ma privo del punto di mount).
loopback si trova all’inizio della riga in cui si GEUB2 acquisisce la partizione ed il nome della LIVE.iso completo del percorso.
linux si trova all’inizio della riga in cui si definisce il kernel da usare ed altri parametri.
initrd si trova all’inizio della riga in cui si definisce il file system temporaneo che funge da file system root all’avvio della LIVE.iso.
} si trova all’inizio dell’ultima riga di ogni singolo blocco di istruzioni, proprio ad indicare il punto in cui il blocco di istruzioni termina.
I parametri 3488D35488D3136A e ntfs01 sono quelli individuati al punto 7 di questi appunti.
Nel parametro (hd0,1), il primo numero deve essere sempre 0, mentre il secondo numero coincide con quello trovato al punto 7 purchè al computer sia connessa una sola memoria di massa.
L’istruzione keyboard-configuration/layoutcode?=it consente di impostare la tastiera Italiana (funziona per poche LIVE.iso)
L’istruzione debian-installer/language=it consente di impostare la lingua Italiana (funziona per pochissime LIVE.iso)

9) Salvare, come Amministratore, il file [/etc/grub.d/40_custom] così modificato.

10) Chiudere tutte le applicazioni attive.

11) Incorporare nel menù di avvio la voce per avviare la LIVE.iso
11A) Se abbiamo a che fare con un PC che fa uso del Secure Boot o Boot UEFI che dir si voglia (quindi installa GRUB2 nell’apposita partizione /boot/efi del disco fisso),occorre aprire un terminale in modalità SuperUtente ed impartire i seguenti comandi:
sudo grub-install # Installa il bootloader sotto UEFI
sudo update-grub # Aggiorna il bootloader sotto UEFI
sudo reboot # Spegne e riaccende il PC

11B) Se abbiamo a che fare con un PC che installa GRUB2 nel MBR del disco fisso (quindi non fa uso del Secure Boot o Boot UEFI che dir si voglia), occorre aprire un terminale in modalità SuperUtente ed impartire i seguenti comandi:
grub-install /dev/sda # Installa il BootLoader nell'MBR del disco fisso sda
update-grub2 # Aggiorna il menù del bootloader
reboot # Spegne e riaccende il PC

11) Verificare che la nuova voce del menù sia efficace
All’accensione del computer, selezionare la voce del menù di avvio contenente il testo uguale al testo contenuto fra apici nella riga che inizia con menuentry; se il procedimento qui riportato è stato applicato correttamente, verrà avviata la LIVE.iso corrispondente.

12) Definire impostazioni.
Rescuezilla 2.4.2 recepisce il parametro keyboard-configuration/layoutcode?=it, quindi può essere avviato con la tastiera Italiana impostata di default.
Rescuezilla 2.4.2 non recepisce il parametro debian-installer/language=it, qiondi non può essere avviato con la lingua Italiana impostata di default.

La stragrande maggioranza delle LIVE.iso si avvia con tastiera e/o lingua Inglese (US).
Alcune LIVE.iso consentono di impostare la lingua e/o la tastiera in Italiano, seguendo apposite istruzioni che compaiono sullo schermo all’avvio del Sistema Operativo.
La maggioranza delle LIVE.iso si avvia in lingua e tastiera Inglese (US), ma è possibile settare la tastiera Italiana sia da terminale, impartendo i comandi
setxkbmap -query # Verifica layout della tastiera
setxkbmap -layout it # Imposta tastiera Italiana
sudo dpkg-reconfigure keyboard-configuration # Configura la tastiera
sia agendo sull’apposita applicazione che, solitamente, si chiama [Keyboard].

13) Provare applicazioni
13a) Aggiornare sia la lista delle applicazioni disponibili, sia le applicazioni installate.
Se si desidera aggiornare la lista delle applicazioni scaricabili e/o aggiornare all’ultima versione disponibile le applicazioni già presenti in modalità LIVE.iso, aprire un terminale ed impartire il comando
sudo apt clean && sudo apt autopurge -y && sudo apt update && sudo apt dist-upgrade # Scarica ed installa le ultime versioni dei pacchetti
Qualora si ritenga che gli aggiornamenti siano troppo ingenti, si consiglia di lasciare che il Sistema Operativo aggiorni la lista del software, e negare il permesso di installare gli aggiornamenti. N.B.: prima di installare una applicazione, si consiglia di aggiornare la lista del software.

13b) Installare applicazioni
L’installazione di applicazioni deve essere sempre preceduta dall’aggiornamento della lista delle applicazioni disponibili, mentre aggiornare le applicazioni presenti nella LIVE.iso, sebbene talvolta possa essere utile, è spesso non necessaria. Se si desidera provare applicazioni presenti nei repository della LIVE.iso ma non installati nella live che si sta usando, è sempre possibile installare il pacchetto corrispondente: sia mediante l’apposita applicazione, sia da terminale.
ATTENZIONE!!! Eventuali script per lanciare altri script e/o applicazioni, funzioneranno correttamente da LIVE solo se i percorsi indicati negli script e nei lanciatori sono validi, e questo avviene solo se le partizioni e relative cartelle in cui si trovano script e programmi da lanciare da LIVE sono montate allo stesso modo con cui sono montate dopo un’installazione completa. Per esempio: volendo avviare dalla LIVE.iso uno script conky precedentemente
salvato nella cartella [/Dati/conky2024/]
di una partizione avente label =”Dati” normalmente montata come [/mnt/Dati/] e contenuta in una memoria di massa connessa al computer in uso, sarà possibile farlo seguendo le istruzioni riportate alla pagina WEB
http://sargonsei.altervista.org/conky-per-linux/
quindi occorre anzitutto installare i pacchetti necessari per utilizzare conky in modalità LIVE, cosa fattibile da terminale impartendo i comandi
sudo apt install conky-all curl lm-sensors nmap net-tools # Installa Conky, utile per monitorare hardware e S.O.
sudo sysctl -w kernel.dmesg_restrict=0 # Rende "dmesg" utilizzabile anche da chi non è amministratore
PNTFS="Dati"; sudo umount /media/$USER/$PNTFS; sudo mkdir /mnt/$PNTFS; sudo mount -t ntfs LABEL=$PNTFS /mnt/$PNTFS # Punto di mount ntfs
Solo così ogni singolo comando riportato al punto H) degli appunti suddetti (ed ogni singolo lanciatore progettato per avviare uno script conky progettato per funzionare quando la partizione “Dati” ha punto di mount [/mnt/Dati]) potrà essere usato anche dalla LIVE.iso per lanciare il conky corrispondente.
N.B: le istruzioni suddette, dovranno essere eseguite ad ogni avvio della LIVE.

Segue una lista di ulteriori comandi da impartire da terminale per installare la relativa applicazione.
sudo apt update; sudo apt install ffmpeg x264 x265 vlc mediainfo mediainfo-gui exiftran # Installa ffmpeg, utile per manipolare audio/video
sudo apt install imagemagick # Installa ImageMagick®, utile per manipolare immagini
sudo apt install inxi -y # Installa INXI, utile per monitorare il sistema
sudo apt install pdftk enscript texlive-latex-base texlive-latex-extra texlive-extra-utils # Installa pdftk, utile per manipolate files PDF

13c) Montare partizioni da LIVE
Con GNU/Linux in modalità LIVE, non è necessario conoscere la password del sistema per fare tutto ciò che può fare un amministratore di sistema, quindi l’esplorazione delle cartelle del disco fisso usando un qualsiasi S.O. GNU/Linux in modalità LIVE, deve essere fatta solo se necessario e usando le dovute cautele.
Solitamente, le partizioni montate automaticamente hanno: un punto di mount che inizia con [/media] e finisce con [$LABEL] (dove $LABEL è l’etichetta del file-system montato), ed i permessi sono stabiliti da quanto previsto per default.
Seguono le istruzioni che spiegano come l’utente possa imporre un diverso punto di mount e gestire i permessi di lettura (r), scrittura (w), esecuzione degli script (x) da parte dell’utente proprietario (u), dell’utente dello stesso gruppo del proprietario (g), e di altri (o), per mezzo dell’istruzione non ricorsiva [sudo chmod ugo=rwx nomeFile/nomeCartella/nomePuntoDiMount]
ovvero dell’istruzione ricorsiva [sudo chmod -R ugo=rwx nomeFile/nomeCartella/nomePuntoDiMount].

13c1) Aprire un terminale ed impartire il comando:
lsblk -e1 -e7 -fm # Visualizza le caratteristiche delle partizioni e dei relativi punti di mount

13c2) Volendo smontare una partizione montata automaticamente con etichetta “Dati2” e file-system ntfs per poi rimontarla come /mnt/Dati2 con i permessi di lettura, scrittura, ed esecuzione, aprire un terminale ed impartire:
PNTFS="Dati2"; sudo umount /media/$USER/$PNTFS; sudo mkdir /mnt/$PNTFS; sudo mount -t ntfs LABEL=$PNTFS /mnt/$PNTFS; sudo chmod ugo=rwx /mnt/$PNTFS # Punto di mount ntfs accessibile da ugo=rwx

13c3) Volendo smontare una partizione montata automaticamente con etichetta “L1” e file-system ext per poi rimontarla come /mnt/L1 con i permessi di lettura ed esecuzione, aprire un terminale ed impartire:
PEXT4="L1"; sudo umount /media/$USER/$PEXT4; sudo mkdir /mnt/$PEXT4; sudo mount -t ext4 LABEL=$PEXT4 /mnt/$PEXT4; sudo chmod ugo=rx /mnt/$PEXT4 # Punto di mount ext4 accessibile da ugo=rx

13c4) Volendo smontare una partizione montata automaticamente con etichetta “ntfs01” e file-system vfat per poi rimontarla come /mnt/ntfs01 con i permessi di lettura ed esecuzione, aprire un terminale ed impartire:
PVFAT="ntfs01"; sudo umount /media/$USER/$PVFAT; sudo mkdir /mnt/$PVFAT; sudo mount -t vfat LABEL=$PVFAT /mnt/$PVFAT; sudo chmod ugo=rx /mnt/$PVFAT # Punto di mount vfat accessibile da ugo=rx

14) Come installare la LIVE.iso di Linux così avviata
L’installazione del Sistema Operativo che si sta provando da LIVE è possibile solo per le LIVE.iso appositamente progettate, riconoscibili per la presenza (sul desktop della live in uso) dell’apposita icona di installazione. Solo in tal caso, se si desidera installare in una partizione del disco fisso la distribuzione avviata dal medesimo disco fisso, è possibile farlo senza doverla avviare da LIVE-USB nè doverla masterizzare su CD o DVD, a condizione che, prima di avviare l’installazione, si apra un terminale in modalità SuperUtente e si impartisca il comando:
rm /etc/mtab # Rimuove /etc/mtab

L’eliminazione del file mtab inganna l’installer consentendo di installare sullo stesso disco fisso in cui è la LIVE.iso.
Alla domanda se il sistema deve smontare la partizione dove risiede la LIVE.iso, cliccare su NO

Per vedere altri esempi di utilizzo del metodo qui descritto, si veda:
https://help.ubuntu.com/community/Grub2/ISOBoot/Examples

Come provare Lubuntu 24.4 avviando l’apposita .iso tramite GRUB2
http://sargonsei.altervista.org/lubuntu244try/

Avviare da GRUB2 una LIVE.iso in una partizione USB avente UUID noto
http://sargonsei.altervista.org/607-2/

Avviare una .iso di una distribuzione di Linux direttamente da GRUB2
http://sargonsei.altervista.org/avviare-una-iso-di-una-distribuzione-di-linux-direttamente-da-grub2/

UBUNTU > Amministrazione Sistema > GRUB
https://wiki.ubuntu-it.org/AmministrazioneSistema/Grub

UBUNTU > Amministrazione Sistema > GRUB > Aggiungere e/o Togliere Voci
https://wiki.ubuntu-it.org/AmministrazioneSistema/Grub/AggiungereTogliereVoci
e
UBUNTU > Amministrazione Sistema > GRUB Customizer
https://wiki.ubuntu-it.org/AmministrazioneSistema/GrubCustomizer