Dimensione: 8227
Commento:
|
Dimensione: 8306
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 133: | Linea 133: |
Di seguito viene spiegato come creare uno script che sincronizza la partizione efi principale con la partizione di backup e poi come creare un servizio che esegua lo script prima di ogni riavvio o spegnimento. |
|
Linea 182: | Linea 180: |
Di seguito viene spiegato come creare uno script che sincronizza la partizione efi principale con la partizione di backup. Viene poi spiegato come creare un servizio che esegue lo script prima di ogni riavvio o spegnimento. == Creazione dello script == |
|
Linea 185: | Linea 187: |
#!/bin/bash | # !/bin/bash |
Linea 210: | Linea 212: |
== Creazione del servizio == |
Guida verificata con Ubuntu: 20.04
Introduzione
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, sui quali verrà creata una configurazione raid così composta:
- Una partizione EFI non RAID su ciascun disco.
- Un array RAID 0 per la partizione di sistema.
- Un array RAID 1 per la partizione home.
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.
Preparazione dei dischi
- Avviare una sessione live.
- Assicurarsi che il sistema sia connesso a Internet.
Avviare GParted.
Selezionare /dev/sda nel menù in alto a destra.
Nel menù Dispositivi scegliere Crea tabella delle partizioni.
Selezionare il tipo di tabella gpt e fare clic su Applica.
Creare una partizione fat32 di 300 MiB e applicare le modifiche.
Fare clic col tasto destro del mouse sulla partizione appena creata, scegliere Gestione flag e spuntare le voci esp e boot.
Creare una partizione con file system pulito con una dimensione pari alla metà dello spazio che si intende dedicare alla partizione di sistema 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.
Creare un'altra partizione con file system pulito con una dimensione pari allo spazio che si intende dedicare alla partizione home e applicare le modifiche.
Selezionare il disco /dev/sdb nel menù in alto a destra e ripetere i punti da 4 a 10.
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 dell'array
Installare il pacchetto mdadm digitando il seguente comando nel terminale:
sudo apt install -y mdadm
Creare l'array RAID 0 per la partizione di sistema digitando il seguente comando nel terminale:
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda2 /dev/sdb2
Creare l'array RAID 1 per la partizione home digitando il seguente comando nel terminale:
sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
Se richiesto, confermare le operazioni.Avviare GParted.
Selezionare /dev/md0 nel menù in alto a destra.
Nel menù Dispositivi scegliere Crea tabella delle partizioni.
Selezionare il tipo di tabella gpt e fare clic su Applica.
Creare una partizione ext4 che occupi tutto lo spazio disponibile e applicare le modifiche.
Selezionare /dev/md1 nel menù in alto a destra e ripetere i punti da 6 a 8.
Chiudere GParted
Al termine di questa procedura saranno quindi presenti le seguenti partizioni:
/dev/md0p1 ext4
/dev/md1p1 ext4
/dev/sda1 fat32
/dev/sda2 linux-raid (montata in /dev/md0)
/dev/sda2 linux-raid (montata in /dev/md1)
/dev/sdb1 fat32
/dev/sdb2 linux-raid (montata in /dev/md0)
/dev/sdb2 linux-raid (montata in /dev/md1)
Installazione di Ubuntu
Digitare il seguente comando nel terminale:
sudo ubiquiy -b
Nella schermata Tipo d'installazione scegliere Altro.
- Impostare le partizioni come segue:
/dev/md0p1
- Usare come: File System ext4 con journaling
- ✔️ Formattare la partizione
- Punto di mount: /
/dev/md1p1- Usare come: File System ext4 con journaling
- Punto di mount: /home
/dev/sda1- Usare come: Partizione EFI
/dev/sdb1- Usare come: Partizione EFI
- Procedere con l'installazione.
Al termine fare clic su Continua a provare.
Installazione del bootloader
Montare il sistema appena installato e la partizione EFI 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
Eseguire il chroot digitando il seguente comando:
sudo chroot /mnt
Installare il pacchetto grub-efi-amd64 digitando il seguente comando:
apt install -y grub-efi-amd64
Se Secure Boot è attivo, installare il pacchetto shim-signed digitando il seguente comando:
apt install -y shim-signed
Installare il pacchetto mdadm digitando il seguente comando:
apt install -y mdadm
Installare e configurare Grub digitando i seguenti comandi:
grub-install update-grub
Montare la partizione EFI di backup digitando il seguente comando:
mount /dev/sdb1 /mnt
Copiare il contenuto della partizione EFI principale nella partizione di backup digitando il seguente comando:
rsync -a /boot/efi/* /mnt
Una volta installato il sistema sarà possibile automatizzare la sincronizzazione delle due partizioni EFI come spiegato nel paragrafo successivo
- 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'
Ripetere l'installazione di Grub per reimpostare la voce di avvio che fa riferimento alla partizione EFI principale come prima voce di avvio. A tal fine digitare il seguente comando:
grub-install
Uscire dal chroot digitando il seguente comando:
exit
- Riavviare il sistema.
Mantenere sincronizzate le partizioni EFI
Di seguito viene spiegato come creare uno script che sincronizza la partizione efi principale con la partizione di backup. Viene poi spiegato come creare un servizio che esegue lo script prima di ogni riavvio o spegnimento.
Creazione dello script
Aprire un editor di testo con privilegi di amministrazione il file /usr/bin/efisync.
Cancellare l'eventuale contenuto ed inserire le seguenti righe:
# !/bin/bash mountdir='/mnt/efibak' efibak='/dev/sdb1' if [ "$(id -u)" != '0' ]; then echo 'Eseguire con privilegi elevati' exit fi if [ -n "$(df | grep "$efibak")" ]; then umount "$efibak" fi if [ ! -d "$mountdir" ]; then mkdir "$mountdir" fi mount "$efibak" "$mountdir" rsync -a --del --force '/boot/efi/' "$mountdir" umount "$efibak" rm -r "$mountdir"
- Salvare il file e chiudere l'editor.
Creazione del servizio
Aprire un editor di testo con privilegi di amministrazione il file /lib/systemd/system/efisync.service.
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/bin/efisync TimeoutStartSec=0 [Install] WantedBy=halt.target reboot.target shutdown.target
- Salvare il file e chiudere l'editor.
Creare un collegamento simbolico al servizio efisync.service nella cartella /etc/systemd/system/ digitando il seguenti comando nel terminale:
sudo ln -s /lib/systemd/system/efisync.service /etc/systemd/system/efisync.service
Ricaricare la configurazione di systemd.