|
Dimensione: 6201
Commento:
|
Dimensione: 10411
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 8: | Linea 8: |
| 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. |
Questa guida illustra come creare e gestire array 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: * Due partizioni EFI non RAID, una per disco. |
| Linea 15: | Linea 15: |
| 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. | La partizione EFI su '''sdb''' fungerà da backup della partizione EFI su '''sda'''. Per funzionare correttamente le partizioni EFI non devono far parte di un array RAID. Tuttavia verrà illustrato come mantenere le due partizioni sincronizzate in modo simili a quanto accadrebbe se fossero in RAID 1. |
| Linea 25: | Linea 25: |
| 0. Fare clic sul menù '''''Dispositivi → Crea tabella delle partizioni'''''. | 0. Nel menù '''''Dispositivi''''' scegliere '''''Crea tabella delle partizioni'''''. |
| Linea 29: | Linea 29: |
| 0. Creare una partizione '''FAT32''' di 300 MiB e applicare le modifiche. | 0. Creare una partizione di 300 MiB con file system '''fat32''' e applicare le modifiche. |
| Linea 33: | Linea 33: |
| 0. 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. | 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. |
| Linea 37: | Linea 37: |
| 0. 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. | 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. |
| Linea 41: | Linea 41: |
| 0. Chiudere '''GParted''' |
|
| Linea 43: | Linea 45: |
| * '''/dev/sda1''' FAT32 | * '''/dev/sda1''' fat32 |
| Linea 47: | Linea 49: |
| * '''/dev/sda2''' sconosciuto * '''/dev/sdb1''' FAT32 |
* '''/dev/sda3''' sconosciuto * '''/dev/sdb1''' fat32 |
| Linea 53: | Linea 55: |
| * '''/dev/sdb2''' sconosciuto = Creazione dell'array = 0. Installare il pacchetto ''mdadm'' digitando il seguente comando nel terminale: {{{ |
* '''/dev/sdb3''' sconosciuto = Creazione degli array = 0. Assicurarsi che il sistema sia connesso a Internet. 0. Installare il pacchetto ''[[https://it.wikipedia.org/wiki/Mdadm|mdadm]]'' digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ |
| Linea 61: | Linea 64: |
| 0. Creare l'array RAID 0 per la partizione di sistema digitando il seguente comando nel terminale: {{{ |
0. Creare l'array RAID 0 per la partizione di sistema digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ |
| Linea 65: | Linea 67: |
| 0. Creare l'array RAID 1 per la partizione home digitando il seguente comando nel terminale: {{{ |
0. Creare l'array RAID 1 per la partizione home digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ |
| Linea 68: | Linea 69: |
| Se richiesto, confermare le operazioni. | 0. Digitare '''y''' e premere '''Invio''' per dare conferma. |
| Linea 74: | Linea 76: |
| 0. Fare clic sul menù '''''Dispositivi → Crea tabella delle partizioni'''''. | 0. Nel menù '''''Dispositivi''''' scegliere '''''Crea tabella delle partizioni'''''. |
| Linea 78: | Linea 80: |
| 0. Creare una partizione '''ext4''' che occupi tutto lo spazio disponibile. 0. Selezionare '''/dev/md1''' nel menù in alto a destra e ripetere i punti da 6 a 8. |
0. Creare una partizione che occupi tutto lo spazio disponibile con file system '''ext4''' e applicare le modifiche. 0. Selezionare '''/dev/md1''' nel menù in alto a destra e ripetere i punti da 7 a 9. 0. Chiudere '''GParted''' |
| Linea 88: | Linea 92: |
| * '''/dev/sda1''' FAT32 * '''/dev/sda2''' sconosciuto * '''/dev/sda2''' sconosciuto * '''/dev/sdb1''' FAT32 * '''/dev/sdb2''' sconosciuto * '''/dev/sdb2''' sconosciuto |
* '''/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''') |
| Linea 102: | Linea 106: |
| 0. Digitare il seguente comando nel terminale: {{{ |
0. Avviare l'[[Installazione/InstallareUbuntu|installazione di Ubuntu]] digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ |
| Linea 106: | Linea 109: |
| 0. Nella schermata '''Tipo d'installazione''' scegliere '''Altro'''. | 0. Nella schermata '''Tipo d'installazione''' scegliere '''[[Installazione/InstallareUbuntu#manu|Altro]]'''. |
| Linea 111: | Linea 114: |
| * Usare come: File System ext4 con journaling | * Usare come: '''File System ext4 con journaling''' |
| Linea 113: | Linea 116: |
| * Punto di mount: / | * Punto di mount: '''/''' |
| Linea 116: | Linea 119: |
| * Usare come: File System ext4 con journaling * ✔️ Formattare la partizione * Punto di mount: /home |
* Usare come: '''File System ext4 con journaling''' * Punto di mount: '''/home''' |
| Linea 121: | Linea 123: |
| * Usare come: Partizione EFI | * Usare come: '''Partizione EFI''' |
| Linea 124: | Linea 126: |
| * Usare come: Partizione EFI <<BR>> 0. Procedere con l'installazione. |
* Usare come: '''Partizione EFI''' <<BR>> 0. Procedere con l'[[Installazione/InstallareUbuntu#Localit.2BAOA-|installazione di Ubuntu]]. |
| Linea 133: | Linea 135: |
| 0. Montare il sistema appena installato e la partizione EFI digitando i seguenti comandi nel terminale: {{{ |
0. Montare il sistema appena installato e la partizione EFI principale digitando i seguenti comandi nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ |
| Linea 137: | Linea 138: |
| for i in dev dev/pts proc sys etc/resolv.conf; do mount --bind /$i /mnt/$i; done}}} 0. Eseguire il chroot digitando il seguente comando: {{{ |
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:{{{ |
| Linea 143: | Linea 143: |
| 0. Installare il pacchetto ''grub-efi-amd64'' digitando il seguente comando: {{{ |
0. Installare il pacchetto ''grub-efi-amd64'' digitando il seguente comando:{{{ |
| Linea 147: | Linea 146: |
| 0. Se Secure Boot è attivo, installare il pacchetto ''shim-signed'' digitando il seguente comando: {{{ |
0. Se Secure Boot è attivo, installare il pacchetto ''shim-signed'' digitando il seguente comando:{{{ |
| Linea 151: | Linea 149: |
| 0. Installare il pacchetto ''mdadm'' digitando il seguente comando: {{{ |
0. Installare il pacchetto ''mdadm'' digitando il seguente comando:{{{ |
| Linea 155: | Linea 152: |
| 0. Installare e configurare '''Grub''' digitando i seguenti comandi: {{{ |
0. Installare e configurare '''Grub''' digitando i seguenti comandi:{{{ |
| Linea 160: | Linea 156: |
| 0. Montare la partizione EFI di backup digitando il seguente comando: {{{ |
0. Montare la partizione EFI di backup digitando il seguente comando:{{{ |
| Linea 164: | Linea 159: |
| 0. Copiare il contenuto della partizione EFI principale nella partizione di backup digitando il seguente comando: {{{ cp -r /boot/efi/* /mnt}}} {{{#!wiki note Una volta installato il sistema sarà possibile configurare tool come '''rsync''' e '''chron''' per mantenere costantemente aggiornato il contenuto della partizione di backup.}}} |
0. Copiare il contenuto della partizione EFI principale nella partizione di backup digitando il seguente comando:{{{ rsync -a /boot/efi/ /mnt}}} |
| Linea 171: | Linea 164: |
| * 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. 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: {{{ |
* 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. Reimpostare la voce di avvio che fa riferimento alla partizione EFI principale come prima voce di avvio digitando il seguente comando:{{{ |
| Linea 183: | Linea 173: |
| 0. Uscire dal '''chroot''' digitando il seguente comando: {{{ |
0. Uscire dal '''chroot''' digitando il seguente comando:{{{ |
| Linea 188: | Linea 177: |
= 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 == 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] il file `/usr/bin/efisync`. 0. Cancellare l'eventuale contenuto ed inserire le seguenti righe:{{{ #!/bin/bash mountdir='/mnt/efibak' efibak='/dev/sdb1' # 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 sia montata if [ -z "$(df | grep '/boot/efi')" ]; then echo 'La partizione EFI non è montata' exit fi # Se la directory di montaggio non esiste la crea if [ ! -d "$mountdir" ]; then mkdir "$mountdir" fi # Smonta la partizione di backup, se già montata if [ -n "$(df | grep "$efibak")" ]; then umount "$efibak" fi # Smonta la directory di montaggio, se già montata if [ -n "$(df | grep "$mountdir")" ]; then umount "$mountdir" fi # Monta la partizione di backup e la sincronizza con la partizione principale mount "$efibak" "$mountdir" rsync -a --del --force '/boot/efi/' "$mountdir" # Smonta la partizione di backup ed elimina la directory di montaggio umount "$efibak" rm -r "$mountdir"}}} 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/bin/efisync}}} {{{#!wiki note In qualsiasi momento si potrà avviare manualmente la sincronizzazione delle partizioni EFI digitando nel terminale il comando `efisync`.}}} == Creazione del servizio == 0. Aprire un editor di testo con 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/bin/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]]:{{{ systemctl enable efisync.service}}} = Accedere agli array da sessione live = 0. Assicurarsi che il sistema sia connesso a Internet. 0. Installare il pacchetto ''[[https://it.wikipedia.org/wiki/Mdadm|mdadm]]'' digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ sudo apt install -y mdadm}}} 0. Abilitare gli array software digitando il seguente comando nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ sudo mdadm --assemble --scan}}} |
Introduzione
Questa guida illustra come creare e gestire array 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:
- Due partizioni EFI non RAID, una per disco.
- Un array RAID 0 per la partizione di sistema.
- Un array RAID 1 per la partizione home.
La partizione EFI su sdb fungerà da backup della partizione EFI su sda. Per funzionare correttamente le partizioni EFI non devono far parte di un array RAID. Tuttavia verrà illustrato come mantenere le due partizioni sincronizzate in modo simili a quanto accadrebbe se fossero in RAID 1.
Preparazione dei dischi
- Avviare una sessione live.
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 di 300 MiB con file system fat32 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 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.
Creare una partizione con una dimensione pari allo spazio che si intende dedicare alla partizione home con file system pulito e applicare le modifiche.
Selezionare il disco /dev/sdb nel menù in alto a destra e ripetere i punti da 4 a 9.
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
- Assicurarsi che il sistema sia connesso a Internet.
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
Digitare y e premere Invio per dare conferma.
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 che occupi tutto lo spazio disponibile con file system ext4 e applicare le modifiche.
Selezionare /dev/md1 nel menù in alto a destra e ripetere i punti da 7 a 9.
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
Avviare l'installazione di Ubuntu digitando 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/md1p1Usare come: File System ext4 con journaling
Punto di mount: /home
/dev/sda1Usare come: Partizione EFI
/dev/sdb1Usare come: Partizione EFI
Procedere con l'installazione di Ubuntu.
Al termine fare clic su Continua a provare.
Installazione del bootloader
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
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
- 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'
Reimpostare la voce di avvio che fa riferimento alla partizione EFI principale come prima voce di avvio digitando 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 con un editor di testo e con i 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' # 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 sia montata if [ -z "$(df | grep '/boot/efi')" ]; then echo 'La partizione EFI non è montata' exit fi # Se la directory di montaggio non esiste la crea if [ ! -d "$mountdir" ]; then mkdir "$mountdir" fi # Smonta la partizione di backup, se già montata if [ -n "$(df | grep "$efibak")" ]; then umount "$efibak" fi # Smonta la directory di montaggio, se già montata if [ -n "$(df | grep "$mountdir")" ]; then umount "$mountdir" fi # Monta la partizione di backup e la sincronizza con la partizione principale mount "$efibak" "$mountdir" rsync -a --del --force '/boot/efi/' "$mountdir" # Smonta la partizione di backup ed elimina la directory di montaggio umount "$efibak" rm -r "$mountdir"
- Salvare il file e chiudere l'editor.
Assegnare i permessi di esecuzione allo script appena creato digitando il seguente comando nel terminale:
sudo chmod +x /usr/bin/efisync
In qualsiasi momento si potrà avviare manualmente la sincronizzazione delle partizioni EFI digitando nel terminale il comando efisync.
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 seguente comando nel terminale:
sudo ln -s /lib/systemd/system/efisync.service /etc/systemd/system/efisync.service
Ricaricare la configurazione di systemd digitando il seguente comando nel terminale:
sudo systemctl daemon-reload
Abilitare il servizio digitando il seguente comando nel terminale:
systemctl enable efisync.service
