Installa il desktop Ubuntu 18.04 con RAID 1 e LVM sulla macchina con BIOS UEFI


11

Ho una macchina con BIOS UEFI. Voglio installare Ubuntu 18.04, versione desktop con RAID 1 (e LVM) in modo che il mio sistema continui a funzionare anche se una delle unità si guasta. Non ho trovato un HOWTO su come farlo. Il programma di installazione desktop non supporta RAID. La risposta a questa domanda funziona quasi, ma richiede un po 'di disco USB GRUB / salvataggio USB e impostazioni magiche UEFI. Qualcuno è a conoscenza di una procedura che funziona senza le parti magiche?

Risposte:


18

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

  1. Scarica il programma di installazione del server alternativo.
  2. Installa con partizionamento manuale, EFI + RAID e LVM su partizione RAID.
  3. Clonare la partizione EFI dalla partizione installata sull'altra unità.
  4. Installa la seconda partizione EFI nella catena di avvio UEFI.
  5. Per evitare una lunga attesa durante l'avvio nel caso in cui un'unità si rompa, rimuovere gli btrfsscript di avvio.

In dettaglio

1. Scarica il programma di installazione

2. Installare con il partizionamento manuale

  • Durante l'installazione, al Partition diskspassaggio, 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 volumefino a quando tutti i volumi non sono stati eliminati.
      • Scegliere Delete volume groupfino a quando tutti i gruppi di volumi non sono stati eliminati.
    • Se è presente un dispositivo RAID, selezionare Configure software RAID.
      • Scegliere Delete MD devicefino 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/sda2e /dev/sdb2.
  • Imposta LVM
    • Selezionare Configure the Logical Volume Manager.
    • Crea un gruppo di volumi vgsul /dev/md0dispositivo.
    • 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 swappartizione, selezionare Use as: swap.
    • Per le altre partizioni, selezionare Use as: ext4i 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 mddispositivo. 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

  • Controllare quale partizione EFI è stata montata. Molto probabilmente /dev/sda1.

    montare | avvio grep

  • Controlla lo stato RAID. Molto probabilmente si sta sincronizzando.

    cat / proc / mdstat

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 -ve nota il nome del file per la ubuntuvoce 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 -vche si ha lo stesso nome di file per le ubuntue ubuntu2avvio 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/mdstatTuttavia, è 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-toolse 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-desktopper 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-amd64viene 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-amd64sta 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/sdb1fosse la fonte clone:

sudo dd if=/dev/sdb1 of=/dev/sda1

Se /dev/sda1fosse 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.


Come utilizzeresti LUKS, per un mirror set crittografato / RAID 1, evitando che la crittografia avvenga due volte (es. LUKS seduto sotto mdadm, in modo che l'Io si verifichi due volte, ma la crittografia stessa avvenga solo una volta, questo in realtà non accade con alcune configurazioni , come quelli consigliati per ZFS, in cui i volumi vengono crittografati due volte, una volta per dispositivo, duplicando efficacemente il costo del lato della crittografia). Non sono stato in grado di trovare istruzioni recenti su questa configurazione.
Soze

2
@soze, sfortunatamente non ho esperienza con le partizioni Linux crittografate. Vorrei fare qualche prova ed errore in una macchina virtuale per scoprirlo. NB: ho aggiunto una sezione sopra sui gotcha della macchina virtuale.
Niclas Börlin,

Grazie @ NiclasBörlin! Ho avuto difficoltà con la creazione di una partizione di avvio in RAID e LVM e la tua risposta è stata cristallina. Molte grazie!
Gui Ambros,

Mucca sacra! Bello!
pileofrogs,

Sembra che questo non funzioni più con Focal Fossa poiché l'installer alternativo è sparito. Il programma di installazione di Focal non ha le opzioni di partizionamento menzionate e insiste su un dispositivo /bootse si tenta di seguire il percorso di installazione automatica del raid.
wedi,

3

RAID-1 + XFS + UEFI

Sono stato in grado di ottenere circa il 99% del percorso con la risposta di @Niclas Börlin, grazie!

Ho anche tratto aiuto dalle seguenti risposte:

Ecco i modi in cui ho incasinato le cose

  1. Avere il BIOS in modalità "Auto", che ha consentito l'avvio della chiave USB NON in modalità UEFI. Ciò ha causato l'installazione non corretta di Grub. Sono passato alla modalità solo UEFI, ho riavviato ed eliminato tutti i volumi logici, i gruppi raid e le partizioni e ho ricominciato. Ho anche provato a reinstallare grub sulle partizioni EFI, il che ha solo peggiorato le cose.
  2. Avere la /bootpartizione su XFS. Apparentemente grub2 fornito con Ubuntu 18.04LTS non lo gestisce. Anche se questo non è documentato da nessuna parte. Ho creato una /bootpartizione EXT-4 separata . Si noti che questo è ancora sul volume LVM RAID-1 e non su partizioni separate come quelle EFI! Molte risposte più vecchie affermano che ciò non è possibile, ma sembra esserlo ora. Ho finito per ottenere grub ma ho riscontrato errori di file system sconosciuti (ad es. Come risolvere l'errore ": filesystem sconosciuto. Grub rescue> ) che mi ha dato la nozione di XFS /bootcome no-go.
  3. Da qualche parte nel mezzo ho finito con grub installato ma un prompt di grub vuoto, nessun menu di grub. (ad es. https://help.ubuntu.com/community/Grub2/Tro troubleshooting#Specific_Tro troubleshooting ). Ciò era dovuto al fatto di /bootnon essere accessibile.

Cosa ha funzionato per me

Inizia con la risposta di @Niclas Börlin e cambia alcune cose minori.

Tabella delle partizioni

Prediligo una grande /partizione, quindi questo riflette quella scelta. La modifica principale è una /bootpartizione EXT4 anziché una XFS.

sda/
          GPT     1M (auto-added)
   sda1 - EFI - 512M
   sda2 - MD0 - 3.5G

sdb/
          GPT     1M (auto-added)
   sdb1 - EFI - 512M
   sdb2 - MD0 - 3.5G

md0/
   vg/
     boot - 1G   - EXT4 /boot
     swap - 16G  - SWAP 
     root - rest - XFS  /

Dopo l'installazione completato ho potuto ddil contenuto di sda1a sdb2come dettagliato nel altra risposta. Sono stato anche in grado di aggiungere la seconda unità alla catena di avvio usando efibootmgrcome dettagliato.


molto utile! Ho riscontrato lo stesso problema con Ubuntu Server 18.04 + UEFI + RAID1 + LVM. Seguire il tuo schema di partizione mi ha aiutato molto. Grazie!
Lucas Aimaretto,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.