Come installare il server Ubuntu con UEFI e RAID1 + LVM


15

Prima installavo i miei server con LVM sul software RAID1 e installavo su MBR su entrambe le unità. Ora ho un server UEFI e la modalità di compatibilità (BIOS) non sembra funzionare.

Quindi ho seguito la procedura di installazione con UEFI.

Primo test, l'installazione a unità singola funziona correttamente.

Quindi ho provato a installare con RAID1 + LVM. Ho suddiviso le mie due unità allo stesso modo:

  • una partizione di sistema EFI, 200 MB
  • una partizione RAID fisica

Quindi ho configurato: - un RAID 1 che utilizzava entrambe le partizioni RAID dei dischi - un gruppo di volumi LVM sull'array RAID 1 - tre volumi logici: /, / home e swap

L'installazione è andata avanti, ma al riavvio ottengo una shell GRUB e sono bloccato.

Quindi, è possibile far funzionare grub2-efi su LVM su RAID1? Qual è il modo per raggiungere questo obiettivo? Esistono altre alternative al bootloader (caricamento diretto di Linux da EFI ??)? eccetera...

Risposte:


11

Ok, ho trovato la soluzione e posso rispondere alle mie domande.

1) posso usare LVM su RAID1 su una macchina UEFI?

Sì, sicuramente. E sarà in grado di avviarsi anche se uno dei due dischi si guasta.

2) Come si fa?

Sembrano essere un bug nel programma di installazione, quindi il solo utilizzo del programma di installazione comporta un errore di avvio (grub shell).

Ecco una procedura di lavoro:

1) creare manualmente le seguenti partizioni su ciascuno dei due dischi: - una partizione da 512 MB con tipo UEFI all'inizio del disco - una partizione di tipo RAID dopo

2) crea il tuo array RAID 1 con le due partizioni RAID, quindi crea il tuo gruppo di volumi LVM con quell'array e i tuoi volumi logici (ne ho creati uno per root, uno per home e uno per swap).

3) attendere l'installazione e riavviare. FALLIMENTO ! Dovresti prendere una granata.

4) potrebbe essere possibile eseguire l'avvio dalla shell di grub, ma ho scelto di eseguire l'avvio da un disco USB di ripristino. In modalità di salvataggio, ho aperto una shell sul mio root fs di destinazione (quello sul volume logico di root lvm).

5) ottenere l'UUID di questa partizione root di destinazione con 'blkid'. Annotalo o scatta una foto con il telefono, ti servirà il passaggio successivo.

6) montare la partizione di sistema EFI ('mount / boot / efi') e modificare il file grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Qui, sostituire l'UUID errato con quello ottenuto 5. Salva.

7) per poter eseguire l'avvio dal secondo disco, copia la partizione EFI su questo secondo disco: dd if = / dev / sda1 di = / dev / sdb1 (cambia sda o sdb con qualunque cosa si adatti alla tua configurazione).

8) Riavvia. Nella schermata delle impostazioni UEFI, imposta le due partizioni EFI come avviabili e imposta un ordine di avvio.

Hai finito. Puoi testare, scollegare l'uno o l'altro dei dischi, dovrebbe funzionare!


Grazie per la procedura dettagliata. Per favore, potresti indicare le tue informazioni di avvio? ( help.ubuntu.com/community/Boot-Info )
LovinBuntu il

@LovinBuntu Ecco l'output di Boot-Info, avviato da una chiave USB: paste.ubuntu.com/6223137
alci,

Ho avuto l'errore, ma non sono riuscito a ottenere il grub shell.
Peter Lawrey,

4
Ho appena perso un paio di giorni cercando di seguire una procedura simile, principalmente a causa del mio essere stupido, ma nel caso in cui ciò possa aiutare qualcun altro a evitare lo stesso problema, menzionerò che è necessario assicurarsi di avviare il USB live utilizzando UEFI anziché BIOS legacy. (Il mio MB, con l'impostazione "auto", ha preferito avviarsi in modalità legacy. Ho dovuto disattivarlo - o scegliere manualmente di avviare l'opzione EFI - per far funzionare l'installazione.)
Jonathan Y.

1
Usando Ubuntu 16.04.1, questo non sembra più un problema. Ho installato una partizione EFI da 512 MB, uno SWAP e un partiton RAID da 490 GB per RAID1 e sul nuovo dispositivo md ho installato il server Ubuntu 16.04 completamente senza problemi. Dopo il riavvio, ha avviato il nuovo sistema in modo impeccabile, non è necessario pasticciare con la partizione EFI, fstab ecc.
Nerdoc

4

L'ho fatto poco più di un anno fa me stesso e, sebbene avessi problemi, non avevo i problemi elencati qui. Non sono sicuro di dove ho trovato i consigli che ho fatto in quel momento, quindi posterò quello che ho fatto qui.

1) Crea partizioni efi da 128 MB all'avvio (solo una delle quali monterà, su / boot / efi)

2) Creare un array RAID1 da 1 GB / boot, senza LVM

3) Creare un array RAID1 di grandi dimensioni utilizzando LVM

Avere / boot su una partizione separata / array RAID1 risolve i problemi della partizione efi non riuscendo a trovare le cose appropriate.

E per chi è alla ricerca di maggiori dettagli, com'ero in quel momento, questo è, più precisamente, come ho fatto la mia configurazione:

6x 3TB Drives

Have 4 RAID arrays:
/dev/md0 = 1GB RAID1 across 3 drives
   --> /boot (no LVM)
/dev/md1 = 500GB RAID1 across 3 drives
   LVM:
      --> /     =  40GB
      --> /var  = 100GB
      --> /home = 335GB
      --> /tmp  =  10GB

/dev/md2 = 500GB RAID1 across 3 drives (for VM's/linux containers)
   LVM:
      --> /lxc/container1 =  50GB
      --> /lxc/container2 =  50GB
      --> /lxc/container3 =  50GB
      --> /lxc/container4 =  50GB
      --> /lxc/extra      = 300GB (for more LXC's later)

/dev/md3 = 10TB RAID6 across 6 drives (for media and such)
   --> /mnt/raid6 (no LVM)


Disks are setup thus:

/sda => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdb => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdc => /boot/efi (128 MB) | /dev/md0 (1 GB) | /dev/md1 (500GB) | /dev/md3 (2.5TB)
/sdd => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sde => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)
/sdf => ----- left empty for simplicity ---- | /dev/md2 (500GB) | /dev/md3 (2.5TB)

Nota che solo uno dei / boot / efi verrà effettivamente montato, e i secondi due sono cloni; L'ho fatto perché volevo riuscire a riavviare la macchina quando perdevo uno dei 3 dischi nel RAID1. Non mi dispiace correre in modalità degradata se ho ancora piena ridondanza e questo mi dà il tempo di sostituire l'unità mentre la macchina è ancora in funzione.

Inoltre, se non avessi il secondo array RAID1 per mettere i container LXC e praticamente tutti i database e simili, / var avrebbe dovuto essere MOLTO più grande. Avere ogni LXC come proprio volume logico era, tuttavia, una buona soluzione per impedire a una VM / sito Web di interrompere le altre a causa di registri di errori fuori controllo, ad esempio ...

E nota finale, ho installato da Ubuntu Alternate Install USB con 12.04.01 (prima che uscisse 12.04.02), e tutto ha funzionato abbastanza bene. Dopo aver sbattuto la testa contro di essa per 72 ore.

Spero che aiuti qualcuno!


1
grub2 gestisce l'avvio di lvm su md direttamente senza una partizione / boot e ha funzionato per alcuni anni.
psusi,

@psusi Vorrei che avessi ragione, la mia nuova installazione non si avvierà dal secondo disco da sola. Tutto LVM, a differenza della configurazione di Jhaagsma.
sjas,

2

Ho avuto lo stesso probem, avvio efi con due dischi e raid software

/ Dev / sda

  • / dev / sda1 - partizione efi da 200 MB
  • / dev / sda2 - 20G fisici per il raid
  • / dev / sda3 - 980G fisico per raid

/ Dev / sdb

  • / dev / sdb1 - partizione efi da 200 MB
  • / dev / sdb2 - 20G fisici per il raid
  • / dev / sdb3 - 980G fisico per raid

Scambia su / dev / md0 (sda2 e sdb2) Root su / dev / md1 (sda3 & sdb3)

Se si accede alla shell grub-rescue, avviare utilizzando:

set root=(md/1)
linux /boot/vmlinuz-3.8.0-29-generic root=/dev/md1
initrd /boot/initrd.img-3.8.0-29-generic
boot

Successivamente, scarica questo file di patch - https://launchpadlibrarian.net/151342031/grub-install.diff (come spiegato su https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1229738 )

cp /usr/sbi/grub-install /usr/sbi/grub-install.backup
patch /usr/sbin/grub-install patch
mount /dev/sda1 /boot/efi
grub-install /dev/sda1
umount /dev/sda1
mount /dev/sdb1 /boot/efi
grub-install /dev/sdb1
reboot
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.