Con un po 'di aiuto da Come installare il server Ubuntu con UEFI e RAID1 + LVM , il RAID impostato in Ubuntu 18.04 e il supporto RAID nel programma di installazione di Ubuntu 18.04 Desktop? e come sbarazzarsi della "scansione per i file system btrfs" all'avvio? , Sono riuscito a mettere insieme un HOWTO funzionante usando solo i comandi linux.
In breve
- Scarica il programma di installazione del server alternativo.
- Installa con partizionamento manuale, EFI + RAID e LVM su partizione RAID.
- Clonare la partizione EFI dalla partizione installata sull'altra unità.
- Installa la seconda partizione EFI nella catena di avvio UEFI.
- Per evitare una lunga attesa durante l'avvio nel caso in cui un'unità si rompa, rimuovere gli
btrfs
script di avvio.
In dettaglio
1. Scarica il programma di installazione
2. Installare con il partizionamento manuale
- Durante l'installazione, al
Partition disks
passaggio, selezionare Manual
.
- Se i dischi contengono delle partizioni, rimuoverle.
- Se sono presenti volumi logici sulle unità, selezionare
Configure the Logical Volume Manager
.
- Scegliere
Delete logical volume
fino a quando tutti i volumi non sono stati eliminati.
- Scegliere
Delete volume group
fino a quando tutti i gruppi di volumi non sono stati eliminati.
- Se è presente un dispositivo RAID, selezionare
Configure software RAID
.
- Scegliere
Delete MD device
fino a quando tutti i dispositivi MD non sono stati eliminati.
- Elimina ogni partizione sulle unità fisiche selezionandole e selezionando
Delete the partition
.
- Crea partizioni fisiche
- Su ogni unità, creare una partizione da 512 MB (che ho visto altri utilizzano 128MB) all'inizio del disco, Usa come:
EFI System Partition
.
- Su ogni unità, creare una seconda partizione con dimensioni 'max', Usa come:
Physical Volume for RAID
.
- Configura RAID
- Selezionare
Configure software RAID
.
- Selezionare
Create MD device
, digitare RAID1
, 2 dischi attivi, 0 dischi di riserva e selezionare i dispositivi /dev/sda2
e /dev/sdb2
.
- Imposta LVM
- Selezionare
Configure the Logical Volume Manager
.
- Crea un gruppo di volumi
vg
sul /dev/md0
dispositivo.
- Creare volumi logici, ad es
swap
a 16G
root
a 35G
tmp
a 10G
var
a 5G
home
a 200G
- Imposta come utilizzare le partizioni logiche
- Per la
swap
partizione, selezionare Use as: swap
.
- Per le altre partizioni, selezionare
Use as: ext4
i punti corretto montaggio ( /
, /tmp
, /var
, /home
, rispettivamente).
- Selezionare
Finish partitioning and write changes to disk
.
- Consentire al programma di installazione di terminare e riavviare.
Se si reinstalla su un'unità che in precedenza aveva una configurazione RAID, il passaggio sopra riportato potrebbe non riuscire e non si ottiene mai un md
dispositivo. In tal caso, potrebbe essere necessario creare una chiavetta USB Live Ubuntu, gparted
avviarla , eseguire per cancellare tutte le tabelle delle partizioni, prima di riavviare questo HOWTO.
3. Ispezionare il sistema
4. Clonare la partizione EFI
EFI bootloaded avrebbe dovuto essere installato /dev/sda1
. Poiché tale partizione non è speculare tramite il sistema RAID, è necessario clonarla.
sudo dd if=/dev/sda1 of=/dev/sdb1
5. Inserire la seconda unità nella catena di avvio
Questo passaggio potrebbe non essere necessario, poiché se una delle unità si spegne, il sistema dovrebbe avviarsi dalle partizioni EFI (identiche). Tuttavia, sembra prudente assicurarsi che sia possibile eseguire l'avvio da entrambi i dischi.
- Esegui
efibootmgr -v
e nota il nome del file per la ubuntu
voce di avvio. Sulla mia installazione lo era \EFI\ubuntu\shimx64.efi
.
- Corri
sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi
. A seconda della shell, potrebbe essere necessario sfuggire alle barre rovesciate.
- Verificare con
efibootmgr -v
che si ha lo stesso nome di file per le ubuntu
e ubuntu2
avvio elementi e che sono i primi due nell'ordine di avvio.
- Ora il sistema dovrebbe avviarsi anche se una delle unità si guasta!
7. Aspetta
Se si desidera provare a rimuovere o disabilitare fisicamente qualsiasi unità per testare l'installazione, è necessario prima attendere il completamento della sincronizzazione RAID! Monitorare l'avanzamento con cat /proc/mdstat
Tuttavia, è possibile eseguire il passaggio 8 di seguito durante l'attesa.
8. Rimuovere BTRFS
Se un'unità si guasta (al termine della sincronizzazione), il sistema si avvierà comunque. Tuttavia, la sequenza di avvio impiegherà molto tempo a cercare i file system btrfs. Per rimuovere quell'attesa inutile, esegui
sudo apt-get purge btrfs-progs
Questo dovrebbe rimuovere btrfs-progs
, btrfs-tools
e ubuntu-server
. L'ultimo pacchetto è solo un meta pacchetto, quindi se non ci sono altri pacchetti elencati per la rimozione, dovresti essere a posto.
9. Installa la versione desktop
Esegui sudo apt install ubuntu-desktop
per installare la versione desktop. Successivamente, probabilmente la sincronizzazione è stata eseguita e il sistema è configurato e dovrebbe sopravvivere a un errore del disco!
10. Aggiorna la partizione EFI dopo l'aggiornamento di grub-efi-amd64
Quando il pacchetto grub-efi-amd64
viene aggiornato, i file sulla partizione EFI (montata su /boot/efi
) potrebbero cambiare. In tal caso, l'aggiornamento deve essere clonato manualmente nella partizione mirror. Fortunatamente, dovresti ricevere un avviso dal gestore aggiornamenti che grub-efi-amd64
sta per essere aggiornato, quindi non devi controllare dopo ogni aggiornamento.
10.1 Scopri la fonte dei cloni, modo rapido
Se non si è riavviato dopo l'aggiornamento, utilizzare
mount | grep boot
per scoprire quale partizione EFI è montata. Tale partizione, in genere /dev/sdb1
, dovrebbe essere utilizzata come origine del clone.
10.2 Scopri la fonte del clone, in modo paranoico
Crea punti di montaggio e monta entrambe le partizioni:
sudo mkdir /tmp/sda1 /tmp/sdb1
sudo mount /dev/sda1 /tmp/sda1
sudo mount /dev/sdb1 /tmp/sdb1
Trova il timestamp del file più recente in ogni albero
sudo find /tmp/sda1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sda1
sudo find /tmp/sdb1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sdb1
Confronta i timestamp
cat /tmp/newest.sd* | sort | tail -n 1 | perl -ne 'm,/tmp/(sd[ab]1)/, && print "/dev/$1 is newest.\n"'
Dovrebbe stampare /dev/sdb1 is newest
(molto probabilmente) o /dev/sda1 is newest
. Quella partizione dovrebbe essere usata come sorgente del clone.
Smonta le partizioni prima della clonazione per evitare incoerenze cache / partizioni.
sudo umount /tmp/sda1 /tmp/sdb1
10.3 Clone
Se /dev/sdb1
fosse la fonte clone:
sudo dd if=/dev/sdb1 of=/dev/sda1
Se /dev/sda1
fosse la fonte clone:
sudo dd if=/dev/sda1 of=/dev/sdb1
Fatto!
11. Gotcha per macchine virtuali
Se vuoi provarlo prima in una macchina virtuale, ci sono alcuni avvertimenti: apparentemente, la NVRAM che contiene le informazioni UEFI viene ricordata tra i riavvii, ma non tra i cicli di spegnimento e riavvio. In tal caso, potresti finire sulla console Shell UEFI. I seguenti comandi dovrebbero avviarti nel tuo computer da /dev/sda1
(usare FS1:
per /dev/sdb1
):
FS0:
\EFI\ubuntu\grubx64.efi
La prima soluzione nella risposta principale di avvio UEFI in virtualbox - Ubuntu 12.04 potrebbe anche essere utile.