Cómo instalar el servidor Ubuntu con UEFI y RAID1 + LVM


15

Solía ​​instalar mis servidores con LVM a través del software RAID1, e instalar grub en el MBR de ambas unidades. Ahora tengo un servidor UEFI, y el modo de compatibilidad (BIOS) no parece funcionar.

Así que fui por la instalación con UEFI.

Primera prueba, la instalación de un solo disco funciona bien.

Luego intenté instalar con RAID1 + LVM. Particioné mis dos unidades de la misma manera:

  • una partición del sistema EFI, 200 MB
  • una partición RAID física

Luego configuré: - un RAID 1 usando ambas particiones RAID de discos - un grupo de volúmenes LVM en la matriz RAID 1 - tres volúmenes lógicos: /, / home y swap

La instalación continuó, pero al reiniciar, obtengo un grub shell y estoy atascado.

Entonces, ¿es posible hacer que grub2-efi funcione en LVM sobre RAID1? ¿Cuál es la forma de lograr esto? ¿Hay otras alternativas de gestor de arranque (carga directa de Linux desde EFI ??)? etc ...

Respuestas:


11

Ok, encontré la solución y puedo responder mis propias preguntas.

1) ¿puedo usar LVM sobre RAID1 en una máquina UEFI?

Sí definitivamente. Y podrá arrancar incluso si falla uno de los dos discos.

2) ¿Cómo hacer esto?

Parecen ser un error en el instalador, por lo que solo usar el instalador da como resultado un error de arranque (grub shell).

Aquí hay un procedimiento de trabajo:

1) cree manualmente las siguientes particiones en cada uno de los dos discos: - una partición de 512 MB con el tipo UEFI al comienzo del disco - una partición del tipo RAID después de eso

2) cree su matriz RAID 1 con las dos particiones RAID, luego cree su grupo de volúmenes LVM con esa matriz y sus volúmenes lógicos (creé uno para root, uno para el hogar y otro para el intercambio).

3) deje que la instalación continúe y reinicie. FALLO! Deberías conseguir un cascarón.

4) podría ser posible arrancar desde el shell grub, pero elegí arrancar desde un disco usb de rescate. En el modo de rescate, abrí un shell en mi raíz fs objetivo (esa es la del volumen lógico raíz lvm).

5) obtenga el UUID de esta partición raíz de destino con 'blkid'. Anótelo o tome una foto con su teléfono, lo necesitará en el siguiente paso.

6) monte la partición del sistema EFI ('mount / boot / efi') y edite el archivo grub.cfg: vi /boot/efi/EFI/ubuntu/grub.cfg Aquí, reemplace el UUID erróneo con el que obtuvo en el momento 5. Guardar.

7) para poder arrancar desde el segundo disco, copie la partición EFI en este segundo disco: dd if = / dev / sda1 of = / dev / sdb1 (cambie sda ​​o sdb con lo que se adapte a su configuración).

8) reiniciar. En la pantalla de configuración de UEFI, configure las dos particiones EFI como de arranque y establezca un orden de arranque.

Ya terminaste Puede probar, desconectar uno u otro de los discos, ¡debería funcionar!


Gracias por el procedimiento detallado. ¿Podría indicar su información de arranque? ( help.ubuntu.com/community/Boot-Info )
LovinBuntu

@LovinBuntu Aquí está la salida de Boot-Info, iniciada desde una clave usb: paste.ubuntu.com/6223137
alci

Obtuve el fallo, pero no pude obtener el cascarón de la comida.
Peter Lawrey

44
Acabo de perder un par de días tratando de seguir un procedimiento similar, principalmente por ser estúpido, pero en caso de que esto pueda ayudar a alguien a evitar el mismo problema, mencionaré que debes asegurarte de arrancar el USB en vivo usando UEFI en lugar de BIOS heredado. (Mi MB, en la configuración 'automática', prefería arrancar en modo heredado. Tuve que apagarlo, o elegir manualmente arrancar la opción EFI, para que la instalación funcione.)
Jonathan Y.

1
Usando Ubuntu 16.04.1, esto ya no parece un problema. Configuré una partición EFI de 512 MB, un SWAP y una partición RAID de 490 GB para RAID1, y en el nuevo dispositivo md instalé el servidor Ubuntu 16.04 completamente sin problemas. Después de reiniciar, inició el nuevo sistema sin problemas, sin necesidad de meterse con la partición EFI, fstab, etc.
nerdoc

4

Lo hice hace poco más de un año y, aunque tuve problemas, no tuve los problemas enumerados aquí. No estoy seguro de dónde encontré el consejo que hice en ese momento, así que publicaré lo que hice aquí.

1) Cree particiones efi de 128 MB al inicio (solo una de las cuales se montará, en / boot / efi)

2) Crear una matriz RAID1 de 1 GB / arranque, sin LVM

3) Crear una gran matriz RAID1 usando LVM

Tener / boot en una partición separada / matriz RAID1 resuelve los problemas de que la partición efi no pueda encontrar las cosas apropiadas.

Y para aquellos que buscan más detalles, como lo estaba en ese momento, así es, más precisamente, cómo hice mi configuración:

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)

Tenga en cuenta que solo se montará uno de / boot / efi, y los dos siguientes son clones; Hice esto porque quería poder hacer que la máquina aún se inicie al perder cualquiera de los 3 discos en el RAID1. No me importa ejecutar en modo degradado si todavía tengo redundancia completa, y eso me da tiempo para reemplazar la unidad mientras la máquina todavía está activa.

Además, si no tuviera la segunda matriz RAID1 para colocar los contenedores LXC y, básicamente, todas las bases de datos y demás, / var tendría que haber sido MUCHO más grande. Sin embargo, tener cada LXC como su propio volumen lógico fue una buena solución para evitar que una VM / sitio web interrumpa a los demás debido a registros de errores fuera de control, por ejemplo ...

Y nota final, instalé desde el Ubuntu Alternate Install USB con 12.04.01 (antes de que saliera el 12.04.02), y todo funcionó bastante bien. Después de golpearme la cabeza contra él durante 72 horas.

Espero que ayude a alguien!


1
grub2 maneja el arranque de lvm en md directamente sin una partición / boot muy bien, y lo ha hecho durante al menos algunos años.
psusi

@psusi Ojalá estuvieras en lo cierto, mi nueva instalación no arrancará desde el segundo disco por sí sola. Todo LVM, a diferencia de la configuración de jhaagsma.
sjas

2

Tenía el mismo probem, arranque de efi con dos discos y raid de software

/ dev / sda

  • / dev / sda1: partición efi de 200 MB
  • / dev / sda2 - 20G físico para incursión
  • / dev / sda3 - 980G físico para incursión

/ dev / sdb

  • / dev / sdb1: partición efi de 200 MB
  • / dev / sdb2 - 20G físico para incursión
  • / dev / sdb3 - 980G físico para incursión

Swap on / dev / md0 (sda2 & sdb2) Root on / dev / md1 (sda3 & sdb3)

Si ingresa al shell grub-rescue, arranque usando:

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

Después de eso, descargue este archivo de parche: https://launchpadlibrarian.net/151342031/grub-install.diff (como se explica en 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.