Comment installer le serveur Ubuntu avec UEFI et RAID1 + LVM


15

J'avais l'habitude d'installer mes serveurs avec LVM sur le logiciel RAID1 et d'installer grub sur le MBR des deux disques. J'ai maintenant un serveur UEFI et le mode de compatibilité (BIOS) ne semble pas fonctionner.

J'ai donc opté pour l'installation avec UEFI.

Premier test, l'installation sur un seul lecteur fonctionne correctement.

Ensuite, j'ai essayé d'installer avec RAID1 + LVM. J'ai partagé mes deux disques de la même manière:

  • une partition système EFI, 200 Mo
  • une partition RAID physique

Ensuite, j'ai configuré: - un RAID 1 utilisant les deux disques partitions RAID - un groupe de volumes LVM sur la matrice RAID 1 - trois volumes logiques: /, / home et swap

L'installation a continué, mais au redémarrage, je reçois un shell grub et je suis bloqué.

Alors, est-il possible de faire travailler grub2-efi sur LVM sur RAID1? Quelle est la manière d'y parvenir? Existe-t-il d'autres alternatives au chargeur de démarrage (chargement linux direct depuis EFI ??)? etc...

Réponses:


11

Ok, j'ai trouvé la solution et je peux répondre à mes propres questions.

1) Puis-je utiliser LVM sur RAID1 sur une machine UEFI?

Oui définitivement. Et il pourra démarrer même si l'un des deux disques tombe en panne.

2) Comment faire cela?

Il semble y avoir un bogue dans le programme d'installation, donc le simple fait d'utiliser le programme d'installation entraîne un échec de démarrage (shell grub).

Voici une procédure de travail:

1) créez manuellement les partitions suivantes sur chacun des deux disques: - une partition de 512 Mo de type UEFI au début du disque - une partition de type RAID après cela

2) créez votre matrice RAID 1 avec les deux partitions RAID, puis créez votre groupe de volumes LVM avec cette matrice et vos volumes logiques (j'en ai créé un pour root, un pour home et un pour swap).

3) laissez l'installation se poursuivre et redémarrez. ÉCHEC ! Vous devriez obtenir un shell grub.

4) il pourrait être possible de démarrer à partir du shell grub, mais j'ai choisi de démarrer à partir d'un disque USB de secours. En mode de secours, j'ai ouvert un shell sur mon fs racine cible (c'est-à-dire celui sur le volume logique lvm racine).

5) obtenez l'UUID de cette partition racine cible avec 'blkid'. Notez-le ou prenez une photo avec votre téléphone, vous en aurez besoin à l'étape suivante.

6) montez la partition système EFI ('mount / boot / efi') et éditez le fichier grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Ici, remplacez l'UUID erroné par celui que vous avez obtenu au point 5. Enregistrez.

7) pour pouvoir démarrer à partir du deuxième disque, copiez la partition EFI sur ce deuxième disque: dd if = / dev / sda1 of = / dev / sdb1 (changez sda ou sdb avec ce qui convient à votre configuration).

8) Redémarrez. Dans votre écran de configuration UEFI, définissez les deux partitions EFI comme amorçables et définissez un ordre de démarrage.

Vous avez terminé. Vous pouvez tester, débrancher l'un ou l'autre des disques, ça devrait marcher!


Merci pour la procédure détaillée. Pourriez-vous indiquer votre Boot-Info? ( help.ubuntu.com/community/Boot-Info )
LovinBuntu

@LovinBuntu Voici la sortie de Boot-Info, démarrée à partir d'une clé USB: paste.ubuntu.com/6223137
alci

J'ai eu l'échec, mais je n'ai pas pu obtenir le shell grub.
Peter Lawrey

4
Je viens de perdre quelques jours à essayer de suivre une procédure similaire, principalement à cause de ma stupidité, mais au cas où cela pourrait aider quelqu'un d'autre à éviter le même problème, je mentionnerai que vous devez vous assurer de démarrer le USB en direct utilisant UEFI plutôt que le BIOS hérité. (Mon MB, sur "auto", a préféré démarrer en mode hérité. J'ai dû le désactiver - ou choisir manuellement de démarrer l'option EFI - pour que l'installation fonctionne.)
Jonathan Y.

1
Avec Ubuntu 16.04.1, cela ne semble plus être un problème. J'ai installé une partition EFI de 512 Mo, un SWAP et une partition RAID de 490 Go pour RAID1, et sur le nouveau périphérique md, j'ai installé le serveur Ubuntu 16.04 sans aucun problème. Après le redémarrage, il a démarré le nouveau système sans faille, pas besoin de jouer avec la partition EFI, fstab etc.
nerdoc

4

Je l'ai fait il y a un peu plus d'un an moi-même et, même si j'ai eu des problèmes, je n'ai pas eu les problèmes énumérés ici. Je ne sais pas où j'ai trouvé les conseils que j'ai faits à l'époque, alors je posterai ce que j'ai fait ici.

1) Créez des partitions efi de 128 Mo au début (dont une seule sera montée, à / boot / efi)

2) Créez une baie RAID 1 Go / boot, pas de LVM

3) Créez une grande matrice RAID1 à l'aide de LVM

Le fait que / boot soit sur une partition / baie RAID1 distincte résout les problèmes de la partition efi incapable de trouver les choses appropriées.

Et pour ceux qui recherchent plus de détails, comme je l'étais à l'époque, voici, plus précisément, comment j'ai fait ma configuration:

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)

Notez qu'un seul des fichiers / boot / efi sera réellement monté, et les deux autres sont des clones; J'ai fait cela parce que je souhaitais pouvoir continuer à démarrer la machine lors de la perte de l'un des 3 disques du RAID1. Cela ne me dérange pas de fonctionner en mode dégradé si j'ai toujours une redondance complète, et cela me donne le temps de remplacer le lecteur alors que la machine est toujours en marche.

De plus, si je n'avais pas la deuxième matrice RAID1 pour mettre les conteneurs LXC et fondamentalement toutes les bases de données et autres, / var aurait dû être BEAUCOUP plus gros. Cependant, avoir chaque LXC comme son propre volume logique était une bonne solution pour empêcher une VM / un site Web de perturber les autres en raison de journaux d'erreurs hors de contrôle, par exemple ...

Et dernière note, j'ai installé à partir de l'Ubuntu Alternate Install USB avec 12.04.01 (avant la sortie du 12.04.02), et tout fonctionnait très bien. Après m'être cogné la tête contre elle pendant 72 heures.

J'espère que cela aide quelqu'un!


1
grub2 gère le démarrage de lvm sur md directement sans partition / boot très bien, et ce depuis quelques années au moins.
psusi

@psusi Je souhaite que vous ayez raison, ma nouvelle installation ne démarre pas d'elle-même à partir du deuxième disque. Tout LVM, contrairement à la configuration de jhaagsma.
sjas

2

J'ai eu le même problème, démarrage efi avec deux disques et raid logiciel

/ dev / sda

  • / dev / sda1 - Partition efi 200 Mo
  • / dev / sda2 - 20G physique pour le raid
  • / dev / sda3 - 980G physique pour le raid

/ dev / sdb

  • / dev / sdb1 - Partition efi 200 Mo
  • / dev / sdb2 - 20G physique pour le raid
  • / dev / sdb3 - 980G physique pour le raid

Basculer sur / dev / md0 (sda2 & sdb2) Racine sur / dev / md1 (sda3 & sdb3)

Si vous entrez dans le shell grub-rescue, démarrez en utilisant:

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

Après cela, téléchargez ce fichier de correctif - https://launchpadlibrarian.net/151342031/grub-install.diff (comme expliqué sur 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.