Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "iononsbalgiomai/SoftwareRaid0"
Differenze tra le versioni 1 e 51 (in 50 versioni)
Versione 1 del 16/07/2021 14.35.18
Dimensione: 3238
Commento:
Versione 51 del 14/08/2021 17.40.06
Dimensione: 12174
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 3: Linea 3:
<<Indice(depth=2)>> <<Indice(depth=1)>>
Linea 6: Linea 6:
{{{#!wiki warning
Questa guida è in fase di realizzazione. Potrebbe essere incompleta, non testata, errata e potenzialmente pericolosa. '''Non attuare nessuna delle indicazione contenute in questa pagina sul proprio sistema'''.}}}
Linea 8: Linea 11:
Questa guida illustra come installare '''Ubuntu''' in un array software RAID 0 in un sistema UEFI/GPT.

A titolo di esempio, verrà preso in considerazione un sistema composto da due dischi non formattati, '''sda''' ed '''sdb''', con una partizione EFI e una partizione vuota su ciascuno di essi. Le due partizioni vuote saranno usate per creare un array software RAID 0 nel quale verrà creata un'unica partizione '''ext4''' in cui verrà installato '''Ubuntu'''.
{{{#!wiki tip
L'array RAID viene visto dal sistema come un disco a se stante che all'occorrenza può essere suddiviso in diverse partizioni.
}}}

Le partizioni EFI non possono far parte di un array RAID, ma si può copiare il contenuto della prima nella seconda e renderle entrambe avviabili, in modo da avere una ridondanza simile a quella di un array RAID 1.
Questa guida illustra come creare e gestire array Linux Software [[https://it.wikipedia.org/wiki/RAID|RAID]] adatti all'installazione di '''Ubuntu''' in sistemi [[https://wiki.ubuntu-it.org/AmministrazioneSistema/Uefi|UEFI]].

A titolo di esempio, verrà spiegato come installare '''Ubuntu''' in un sistema composto da due dischi non formattati, '''sda''' ed '''sdb''', sui quali verrà creata una configurazione RAID così composta:
 * Un array RAID 1 per la partizione EFI.
 * Un array RAID 0 per la partizione di sistema.
 * Un array RAID 1 per la partizione home.
Linea 19: Linea 20:
 0. Avviare una sessione live.

 0. Avviare '''GParted'''.
 0. Avviare una sessione live di '''Ubuntu''' in [[AmministrazioneSistema/Uefi#Avvio_della_Live|modalità UEFI]].

 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''GParted'''.
Linea 25: Linea 26:
 0. Fare clic sul menù '''''Dispositivi Crea tabella delle partizioni'''''.  0. Nel menù '''''Dispositivi''''' scegliere '''''Crea tabella delle partizioni'''''.
Linea 29: Linea 30:
 0. Creare una partizione '''FAT32''' di 300 MiB e applicare le modifiche.

 0. Fare clic col tasto destro del mouse sulla partizione appena creata e scegliere '''''Gestione flag'''''.

 0. Spuntare le voci '''esp''' e '''boot''' e fare clic su '''Chiudi'''.

 0. Nel restante spazio libero creare una partizione con file system '''pulito''' e applicare le modifiche.

 0. Selezionare il disco '''/dev/sdb''' nel menù in alto a destra e ripetere i punti da 4 a 9.


= Creazione dell'array =

 0. Installare il pacchetto '''mdadm'''.

 0. Digitare il seguente comando nel terminale:
 {{{
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda2 /dev/sdb2}}}

 0. Avviare '''GParted'''.

 0. Selezionare '''/dev/md0''' nel menù in alto a destra.

 0. Fare clic sul menù '''''Dispositivi → Crea tabella delle partizioni'''''.
 0. Creare una partizione di 300 MiB con file system '''fat32''' e applicare le modifiche.
 {{{#!wiki note
Se su uno dei due dischi è già presente una partizione EFI, basterà creare un'altra partizione '''fat32''' di pari dimensioni sull'altro disco. Quando le due partizioni verranno associate nell'array RAID 1 il contenuto della partizione preesistente verrà automaticamente replicato nell'altra partizione.}}}

 0. Fare clic col tasto destro del mouse sulla partizione appena creata, scegliere '''''Gestione flag''''' e spuntare le voci '''esp''' e '''boot'''.

 0. Creare una partizione con una dimensione pari alla metà dello spazio che si intende dedicare alla partizione di sistema con file system '''pulito''' e applicare le modifiche.
 {{{#!wiki note
È consigliabile una dimensione minima di 15 GiB, in modo da ottenere poi un array RAID 0 di 30 GiB per la partizione di sistema.}}}

 0. Creare una partizione con una dimensione pari allo spazio che si intende dedicare alla partizione home con file system '''pulito''' e applicare le modifiche.

 0. Selezionare '''/dev/sdb''' nel menù in alto a destra e ripetere i punti da 4 a 9.

 0. Chiudere '''GParted'''.

Al termine di questa procedura saranno quindi presenti le seguenti partizioni:

 * '''/dev/sda1''' fat32

 * '''/dev/sda2''' sconosciuto

 * '''/dev/sda3''' sconosciuto

 * '''/dev/sdb1''' fat32

 * '''/dev/sdb2''' sconosciuto

 * '''/dev/sdb3''' sconosciuto

= Creazione degli array =

 0. Assicurarsi che il sistema sia connesso a Internet.

 0. Installare il pacchetto ''[[apt://mdadm|mdadm]]''.

 0. Creare l'array RAID 1 per la partizione EFI digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mdadm --create /dev/md0 --level=1 --metadata=1.0 --raid-devices=2 /dev/sda1 /dev/sdb1}}}
 {{{#!wiki note
L'opzione `--metadata=1.0` consente di mantenere inalterato il file system delle due partizioni che compongono l'array, in modo che possono essere accessibili singolarmente quando l'array non è attivo. Ciò significa che le due partizioni EFI potranno essere lette dal firmware UEFI all'avvio del sistema e da eventuali altri sistemi operativi, come Windows, che non supportano gli array Linux software RAID. }}}

 0. Creare l'array RAID 0 per la partizione di sistema digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sda2 /dev/sdb2}}}

 0. Creare l'array RAID 1 per la partizione home digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3}}}
 
 0. Digitare '''y''' e premere '''Invio''' per dare conferma.

 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''GParted'''.

 0. Selezionare '''/dev/md1''' nel menù in alto a destra.

 0. Nel menù '''''Dispositivi''''' scegliere '''''Crea tabella delle partizioni'''''.
Linea 56: Linea 87:
 0. Creare le partizioni necessarie all'installazione di '''Ubuntu'''. In questo esempio verrà utilizzata un'unica partizione '''ext4''' denominata '''md0p1'''.  0. Creare una partizione che occupi tutto lo spazio disponibile con file system '''ext4''' e applicare le modifiche.

 0. Selezionare '''/dev/md2''' nel menù in alto a destra e ripetere i punti da 9 a 11.

 0. Chiudere '''GParted'''

Al termine di questa procedura saranno quindi presenti le seguenti partizioni:

 * '''/dev/md0''' fat32

 * '''/dev/md1p1''' ext4

 * '''/dev/md2p1''' ext4

 * '''/dev/sda1''' linux-raid (montata in '''/dev/md0''')

 * '''/dev/sda2''' linux-raid (montata in '''/dev/md1''')

 * '''/dev/sda2''' linux-raid (montata in '''/dev/md2''')

 * '''/dev/sdb1''' linux-raid (montata in '''/dev/md0''')

 * '''/dev/sdb2''' linux-raid (montata in '''/dev/md1''')

 * '''/dev/sdb2''' linux-raid (montata in '''/dev/md2''')
Linea 60: Linea 115:
 0. Digitare il seguente comando nel terminale:
 {{{
 0. Avviare l'[[Installazione/InstallareUbuntu|installazione di Ubuntu]] digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
Linea 64: Linea 118:
 0. Nella schermata '''Tipo d'installazione''' scegliere '''Altro'''.

 0. Selezionare la partizione '''/dev/md0p1''' e fare clic su '''Modifica'''.

 0. Nel campo '''Usare come''' selezionare '''File system ext4 con journaling'''.

 0. Spuntare la casella '''Formattare la partizione'''.

 0. Selezionare il punto di mount '''/'''.

 0. Fare clic su '''OK'''.

 0. Selezionare la partizione '''/dev/sda1''' e fare clic su '''Modifica'''.

 0. Nel campo '''Usare come''' selezionare '''Partizione EFI'''.

 0. Fare clic su '''OK'''.

 0. Ripetere i punti da 8 a 10 per la partizione '''/dev/sdb1'''.

 0. Procedere con l'installazione.

 0. Al termine dell'installazione fare clic su '''Continua a provare'''.
 0. Nella schermata '''Tipo d'installazione''' scegliere '''[[Installazione/InstallareUbuntu#manu|Altro]]'''.

 0. Impostare le partizioni come segue:

 '''/dev/md0'''
  * Usare come: '''Partizione EFI'''
 <<BR>>
 '''/dev/md1p1'''
  * Usare come: '''File System ext4 con journaling'''
  * ✔️ Formattare la partizione
  * Punto di mount: '''/'''
 <<BR>>
 '''/dev/md2p1'''
  * Usare come: '''File System ext4 con journaling'''
  * Punto di mount: '''/home'''
 <<BR>>
 '''/dev/sda1'''
  * Usare come: '''Partizione EFI'''
 <<BR>>
 '''/dev/sdb1'''
  * Usare come: '''Partizione EFI'''
 <<BR>>

 0. Procedere con l'[[Installazione/InstallareUbuntu#Localit.2BAOA-|installazione di Ubuntu]].

 0. Al termine fare clic su '''Continua a provare'''.
Linea 89: Linea 146:

 0. Montare il sistema appena installato e la partizione EFI principale digitando i seguenti comandi nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mount /dev/md0p1 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
for i in dev dev/pts proc sys etc/resolv.conf; do sudo mount --bind /$i /mnt/$i; done}}}

 0. Eseguire il chroot digitando il seguente comando:{{{
sudo chroot /mnt}}}

 0. Installare il pacchetto ''grub-efi-amd64'' digitando il seguente comando:{{{
apt install -y grub-efi-amd64}}}

 0. Se Secure Boot è attivo, installare il pacchetto ''shim-signed'' digitando il seguente comando:{{{
apt install -y shim-signed}}}

 0. Installare il pacchetto ''mdadm'' digitando il seguente comando:{{{
apt install -y mdadm}}}

PROCEDURA STANDARD

 0. Creare una voce di avvio per la partizione di backup digitando il seguente comando:

  * Se Secure Boot non è attivo:{{{
efibootmgr -c -g -d /dev/sdb -p 1 -L 'ubuntu (efi2)' -l '\EFI\ubuntu\grubx64.efi'}}}

  * Se Secure Boot è attivo:{{{
efibootmgr -c -g -d /dev/sdb -p 1 -L 'ubuntu (efi2)' -l '\EFI\ubuntu\shimx64.efi'}}}

 0. Installare '''Grub''' nella partizione EFI principale e aggiornare la sua configurazione digitando i seguenti comandi:{{{
grub-install
update-grub}}}

 0. Montare la partizione EFI di backup digitando il seguente comando:{{{
mount /dev/sdb1 /mnt}}}

 0. Sincronizzare la partizione EFI principale con la EFI di backup digitando il seguente comando:{{{
rsync -a /boot/efi/ /mnt}}}

 0. Uscire dal '''chroot''' digitando il seguente comando:{{{
exit}}}

 0. Riavviare il sistema.

PROCEDURA ALTERNATIVA

 0. Installare '''Grub''' nelle due partizioni EFI e aggiornare la sua configurazione digitando i seguenti comandi:{{{
/lib/grub/grub-multi-install /dev/sdb1
update-grub}}}

 0. Montare la partizione EFI di backup digitando il seguente comando:{{{
mount /dev/sdb1 /mnt}}}

 0. Sincronizzare la partizione EFI principale con la EFI di backup digitando il seguente comando:{{{
rsync -a /boot/efi/ /mnt}}}

 0. Uscire dal '''chroot''' digitando il seguente comando:{{{
exit}}}

 0. Riavviare il sistema.

= Mantenere sincronizzate le partizioni EFI =

Di seguito viene spiegato come creare uno script che sincronizza la partizione EFI principale con la EFI di backup. Viene poi spiegato come creare un servizio che esegue lo script prima di ogni riavvio o spegnimento.

== Creazione dello script ==

 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/usr/sbin/efisync`

 0. Cancellare l'eventuale contenuto ed inserire le seguenti righe:{{{
 #!/bin/bash

espmain='/dev/sda1' # Partizione EFI principale
mntmain='/boot/efi' # Punto di montaggio della EFI principale
espbak='/dev/sdb1' # Partizione EFI di backup
mntbak='/var/lib/efisync/esp' # Punto di montaggio di backup

 # Verifica che lo script venga eseguito con privilegi elevati
if [ "$(id -u)" != '0' ]; then
  echo 'Eseguire con privilegi elevati'
  exit
fi

 # Verifica che la partizione EFI principale sia montata nel percorso previsto
if [ -z "$(df | grep "$espmain".*"$mntmain")" ]; then
  echo 'La partizione EFI non è montata'
  exit
fi

 # Se il punto di montaggio di backup non esiste, lo crea
if [ ! -d "$mntbak" ]; then
  mkdir -p "$mntbak"
fi

 # Se la partizione EFI di backup non è già montata,
 # la monta nel punto di montaggio di backup
mntpoint="$(findmnt -notarget "$espbak")"
if [ -z "$mntpoint" ]; then
  mntpoint="$mntbak"
  mount "$espbak" "$mntpoint"
fi

 # Sincronizza la partizione ESP di backup con la principale
rsync -a --del --force "$mntmain" "$mntpoint"

 # Se il punto di montaggio è quello di backup, lo smonta
if [ "$mntpoint" = "$mntbak" ]; then
  umount "$mntpoint"
fi}}}

 0. Salvare il file e chiudere l'editor.

 0. Assegnare i permessi di esecuzione allo script appena creato digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo chmod +x /usr/sbin/efisync}}}

{{{#!wiki note
In qualsiasi momento si potrà avviare manualmente la sincronizzazione delle partizioni EFI digitando nel terminale il comando `sudo efisync`.}}}

== Creazione del servizio ==

 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/lib/systemd/system/efisync.service`

 0. Cancellare l'eventuale contenuto ed inserire le seguenti righe:{{{
[Unit]
Description=Sincronizzazione della partizione EFI con /dev/sdb1
DefaultDependencies=no
Before=halt.target reboot.target shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/efisync
TimeoutStartSec=0

[Install]
WantedBy=halt.target reboot.target shutdown.target}}}

 0. Salvare il file e chiudere l'editor.

 0. Creare un collegamento simbolico al servizio `efisync.service` nella cartella `/etc/systemd/system/` digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo ln -s /lib/systemd/system/efisync.service /etc/systemd/system/efisync.service}}}

 0. Ricaricare la configurazione di '''systemd''' digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo systemctl daemon-reload}}}

 0. Abilitare il servizio digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo systemctl enable efisync.service}}}

= Accedere agli array da altri sistemi =

{{{#!wiki note
Le seguenti istruzioni sono valide anche per accedere agli array software da una sessione live.}}}

 0. Assicurarsi che il sistema sia connesso a Internet.

 0. Installare il pacchetto ''[[apt://mdadm|mdadm]]''.

 0. Abilitare gli array software digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mdadm --assemble --scan}}}


Guida verificata con Ubuntu: 20.04

Questa guida è in fase di realizzazione. Potrebbe essere incompleta, non testata, errata e potenzialmente pericolosa. Non attuare nessuna delle indicazione contenute in questa pagina sul proprio sistema.

Introduzione

Questa guida illustra come creare e gestire array Linux Software RAID adatti all'installazione di Ubuntu in sistemi UEFI.

A titolo di esempio, verrà spiegato come installare Ubuntu in un sistema composto da due dischi non formattati, sda ed sdb, sui quali verrà creata una configurazione RAID così composta:

  • Un array RAID 1 per la partizione EFI.
  • Un array RAID 0 per la partizione di sistema.
  • Un array RAID 1 per la partizione home.

Preparazione dei dischi

  1. Avviare una sessione live di Ubuntu in modalità UEFI.

  2. Avviare GParted.

  3. Selezionare /dev/sda nel menù in alto a destra.

  4. Nel menù Dispositivi scegliere Crea tabella delle partizioni.

  5. Selezionare il tipo di tabella gpt e fare clic su Applica.

  6. Creare una partizione di 300 MiB con file system fat32 e applicare le modifiche.

    Se su uno dei due dischi è già presente una partizione EFI, basterà creare un'altra partizione fat32 di pari dimensioni sull'altro disco. Quando le due partizioni verranno associate nell'array RAID 1 il contenuto della partizione preesistente verrà automaticamente replicato nell'altra partizione.

  7. Fare clic col tasto destro del mouse sulla partizione appena creata, scegliere Gestione flag e spuntare le voci esp e boot.

  8. Creare una partizione con una dimensione pari alla metà dello spazio che si intende dedicare alla partizione di sistema con file system pulito e applicare le modifiche.

    È consigliabile una dimensione minima di 15 GiB, in modo da ottenere poi un array RAID 0 di 30 GiB per la partizione di sistema.

  9. Creare una partizione con una dimensione pari allo spazio che si intende dedicare alla partizione home con file system pulito e applicare le modifiche.

  10. Selezionare /dev/sdb nel menù in alto a destra e ripetere i punti da 4 a 9.

  11. Chiudere GParted.

Al termine di questa procedura saranno quindi presenti le seguenti partizioni:

  • /dev/sda1 fat32

  • /dev/sda2 sconosciuto

  • /dev/sda3 sconosciuto

  • /dev/sdb1 fat32

  • /dev/sdb2 sconosciuto

  • /dev/sdb3 sconosciuto

Creazione degli array

  1. Assicurarsi che il sistema sia connesso a Internet.
  2. Installare il pacchetto mdadm.

  3. Creare l'array RAID 1 per la partizione EFI digitando il seguente comando nel terminale:

    sudo mdadm --create /dev/md0 --level=1 --metadata=1.0 --raid-devices=2 /dev/sda1 /dev/sdb1

    L'opzione --metadata=1.0 consente di mantenere inalterato il file system delle due partizioni che compongono l'array, in modo che possono essere accessibili singolarmente quando l'array non è attivo. Ciò significa che le due partizioni EFI potranno essere lette dal firmware UEFI all'avvio del sistema e da eventuali altri sistemi operativi, come Windows, che non supportano gli array Linux software RAID.

  4. Creare l'array RAID 0 per la partizione di sistema digitando il seguente comando nel terminale:

    sudo mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sda2 /dev/sdb2
  5. Creare l'array RAID 1 per la partizione home digitando il seguente comando nel terminale:

    sudo mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
  6. Digitare y e premere Invio per dare conferma.

  7. Avviare GParted.

  8. Selezionare /dev/md1 nel menù in alto a destra.

  9. Nel menù Dispositivi scegliere Crea tabella delle partizioni.

  10. Selezionare il tipo di tabella gpt e fare clic su Applica.

  11. Creare una partizione che occupi tutto lo spazio disponibile con file system ext4 e applicare le modifiche.

  12. Selezionare /dev/md2 nel menù in alto a destra e ripetere i punti da 9 a 11.

  13. Chiudere GParted

Al termine di questa procedura saranno quindi presenti le seguenti partizioni:

  • /dev/md0 fat32

  • /dev/md1p1 ext4

  • /dev/md2p1 ext4

  • /dev/sda1 linux-raid (montata in /dev/md0)

  • /dev/sda2 linux-raid (montata in /dev/md1)

  • /dev/sda2 linux-raid (montata in /dev/md2)

  • /dev/sdb1 linux-raid (montata in /dev/md0)

  • /dev/sdb2 linux-raid (montata in /dev/md1)

  • /dev/sdb2 linux-raid (montata in /dev/md2)

Installazione di Ubuntu

  1. Avviare l'installazione di Ubuntu digitando il seguente comando nel terminale:

    sudo ubiquiy -b
  2. Nella schermata Tipo d'installazione scegliere Altro.

  3. Impostare le partizioni come segue:

    /dev/md0

    • Usare come: Partizione EFI


    /dev/md1p1

    • Usare come: File System ext4 con journaling

    • ✔️ Formattare la partizione
    • Punto di mount: /


    /dev/md2p1

    • Usare come: File System ext4 con journaling

    • Punto di mount: /home


    /dev/sda1

    • Usare come: Partizione EFI


    /dev/sdb1

    • Usare come: Partizione EFI


  4. Procedere con l'installazione di Ubuntu.

  5. Al termine fare clic su Continua a provare.

Installazione del bootloader

  1. Montare il sistema appena installato e la partizione EFI principale digitando i seguenti comandi nel terminale:

    sudo mount /dev/md0p1 /mnt
    sudo mount /dev/sda1 /mnt/boot/efi
    for i in dev dev/pts proc sys etc/resolv.conf; do sudo mount --bind /$i /mnt/$i; done
  2. Eseguire il chroot digitando il seguente comando:

    sudo chroot /mnt
  3. Installare il pacchetto grub-efi-amd64 digitando il seguente comando:

    apt install -y grub-efi-amd64
  4. Se Secure Boot è attivo, installare il pacchetto shim-signed digitando il seguente comando:

    apt install -y shim-signed
  5. Installare il pacchetto mdadm digitando il seguente comando:

    apt install -y mdadm

PROCEDURA STANDARD

  1. Creare una voce di avvio per la partizione di backup digitando il seguente comando:
    • Se Secure Boot non è attivo:

      efibootmgr -c -g -d /dev/sdb -p 1 -L 'ubuntu (efi2)' -l '\EFI\ubuntu\grubx64.efi'
    • Se Secure Boot è attivo:

      efibootmgr -c -g -d /dev/sdb -p 1 -L 'ubuntu (efi2)' -l '\EFI\ubuntu\shimx64.efi'
  2. Installare Grub nella partizione EFI principale e aggiornare la sua configurazione digitando i seguenti comandi:

    grub-install
    update-grub
  3. Montare la partizione EFI di backup digitando il seguente comando:

    mount /dev/sdb1 /mnt
  4. Sincronizzare la partizione EFI principale con la EFI di backup digitando il seguente comando:

    rsync -a /boot/efi/ /mnt
  5. Uscire dal chroot digitando il seguente comando:

    exit
  6. Riavviare il sistema.

PROCEDURA ALTERNATIVA

  1. Installare Grub nelle due partizioni EFI e aggiornare la sua configurazione digitando i seguenti comandi:

    /lib/grub/grub-multi-install /dev/sdb1
    update-grub
  2. Montare la partizione EFI di backup digitando il seguente comando:

    mount /dev/sdb1 /mnt
  3. Sincronizzare la partizione EFI principale con la EFI di backup digitando il seguente comando:

    rsync -a /boot/efi/ /mnt
  4. Uscire dal chroot digitando il seguente comando:

    exit
  5. Riavviare il sistema.

Mantenere sincronizzate le partizioni EFI

Di seguito viene spiegato come creare uno script che sincronizza la partizione EFI principale con la EFI di backup. Viene poi spiegato come creare un servizio che esegue lo script prima di ogni riavvio o spegnimento.

Creazione dello script

  1. Aprire con un editor di testo e con i privilegi di amministrazione il file /usr/sbin/efisync

  2. Cancellare l'eventuale contenuto ed inserire le seguenti righe:

     #!/bin/bash
    
    espmain='/dev/sda1'           # Partizione EFI principale
    mntmain='/boot/efi'           # Punto di montaggio della EFI principale
    espbak='/dev/sdb1'            # Partizione EFI di backup
    mntbak='/var/lib/efisync/esp' # Punto di montaggio di backup
    
     # Verifica che lo script venga eseguito con privilegi elevati
    if [ "$(id -u)" != '0' ]; then
      echo 'Eseguire con privilegi elevati'
      exit
    fi
    
     # Verifica che la partizione EFI principale sia montata nel percorso previsto
    if [ -z "$(df | grep "$espmain".*"$mntmain")" ]; then
      echo 'La partizione EFI non è montata'
      exit
    fi
    
     # Se il punto di montaggio di backup non esiste, lo crea
    if [ ! -d "$mntbak" ]; then
      mkdir -p "$mntbak"
    fi
    
     # Se la partizione EFI di backup non è già montata,
     # la monta nel punto di montaggio di backup
    mntpoint="$(findmnt -notarget "$espbak")"
    if [ -z "$mntpoint" ]; then
      mntpoint="$mntbak"
      mount "$espbak" "$mntpoint"
    fi
    
     # Sincronizza la partizione ESP di backup con la principale
    rsync -a --del --force "$mntmain" "$mntpoint"
    
     # Se il punto di montaggio è quello di backup, lo smonta
    if [ "$mntpoint" = "$mntbak" ]; then
      umount "$mntpoint"
    fi
  3. Salvare il file e chiudere l'editor.
  4. Assegnare i permessi di esecuzione allo script appena creato digitando il seguente comando nel terminale:

    sudo chmod +x /usr/sbin/efisync

In qualsiasi momento si potrà avviare manualmente la sincronizzazione delle partizioni EFI digitando nel terminale il comando sudo efisync.

Creazione del servizio

  1. Aprire con un editor di testo e con i privilegi di amministrazione il file /lib/systemd/system/efisync.service

  2. Cancellare l'eventuale contenuto ed inserire le seguenti righe:

    [Unit]
    Description=Sincronizzazione della partizione EFI con /dev/sdb1
    DefaultDependencies=no
    Before=halt.target reboot.target shutdown.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/sbin/efisync
    TimeoutStartSec=0
    
    [Install]
    WantedBy=halt.target reboot.target shutdown.target
  3. Salvare il file e chiudere l'editor.
  4. Creare un collegamento simbolico al servizio efisync.service nella cartella /etc/systemd/system/ digitando il seguente comando nel terminale:

    sudo ln -s /lib/systemd/system/efisync.service /etc/systemd/system/efisync.service
  5. Ricaricare la configurazione di systemd digitando il seguente comando nel terminale:

    sudo systemctl daemon-reload
  6. Abilitare il servizio digitando il seguente comando nel terminale:

    sudo systemctl enable efisync.service

Accedere agli array da altri sistemi

Le seguenti istruzioni sono valide anche per accedere agli array software da una sessione live.

  1. Assicurarsi che il sistema sia connesso a Internet.
  2. Installare il pacchetto mdadm.

  3. Abilitare gli array software digitando il seguente comando nel terminale:

    sudo mdadm --assemble --scan