¿Cómo creo un entorno de arranque múltiple usando LVM para sus sistemas operativos * buntu en una unidad de sistema con formato GPT, en un sistema basado en UEFI?

9

Mi razón para usar LVM es que reinstalo, actualizo y, en general, me equivoco tanto con las instalaciones de mi sistema operativo que he descubierto que LVM me brinda una flexibilidad fantástica para mover, expandir, clonar y realizar copias de seguridad de las particiones de mi sistema operativo en mi tiempo libre sin los riesgos asociados. con otros métodos de partición. Sin embargo, hace que el arranque múltiple de sus sistemas operativos sea un poco complicado e impredecible a veces, especialmente en hardware más nuevo, donde el proceso gana otro nivel de complejidad.

De lo que estoy hablando es de las nuevas placas base UEFI (a diferencia de BIOS), que le permiten utilizar todo el potencial y arrancar desde discos duros de 3 TB + (cuando está formateado en GPT en lugar de MBR). Las cosas pueden volverse increíblemente complicadas y complicadas porque cada vez que instales un nuevo sistema operativo en tu máquina, sobrescribirá los archivos del cargador de arranque EFI (.efi) de tu instalación anterior y terminarás con una serie de entradas rotas en tu EFI La lista de arranque "BIOS" y una carga de cargadores de arranque grub prácticamente redundantes repartidos por sus particiones. Esto me ofende en muchos niveles, no menos estéticamente.

Rich.T.
fuente

Respuestas:

6

NOTA: Esta fue la respuesta del OP. Lo moví aquí abajo como CW para que no se cerrara. Si un mod ve esto, reparent propiedad al OP como una respuesta propia.

A continuación, detallaré cómo lograr que todo funcione de manera armoniosa y, en cierta medida, resolver el problema.

Primera parte: instalación.

Tenga en cuenta que si va a tener Windows 7 (¿u 8?) Instalado en su máquina, probablemente tendrá que instalarlo primero , preferiblemente en su propio disco duro, y no podrá ponerlo en su grupo de volúmenes lógicos. Esto se debe a que el instalador GPT / EFI de Windows 7 es muy básico y no le permitirá hacer el tipo de cosas que hará aquí. Después de la instalación de Windows, puede cambiar el tamaño y volver a particionar, agregando las particiones que necesita para una instalación de arranque múltiple. La partición del sistema EFI que Windows crea siempre se puede reutilizar para las instalaciones de Linux, utilizando una variación del método detallado a continuación.

En primer lugar , ayuda a limpiar la unidad del sistema deseada usando gparted (o similar) e inicializarlo como un disco GPT, antes de hacer cualquier otra cosa. Si está un poco nervioso por usar un particionador no gráfico para configurar su disco desde cero, entonces definitivamente vale la pena y se puede hacer fácilmente desde un instalador de CD o USB de escritorio estándar en vivo. No lo hagas en Windows. No estoy seguro de que esto sea absolutamente necesario, pero es lo que hice. También puede llevar a cabo la partición básica para las particiones que no son LVM en esta etapa, ya que no dañaría y le da un marco para la instalación adecuada.

Ahora grabe sus CD / USB de instalación. Si está utilizando el ISO de escritorio alternativo de Ubuntu (recomendado), debe grabarlo en un CD, ya que simplemente no funcionará desde una memoria USB. Cuando se usa para una instalación de LVM, se detiene con un error crítico cuando intenta comenzar a cargar e instalar software con aptitude / taskel, ¡así que use un CD si sabe lo que es bueno para usted!

  • Ubuntu Server se instala absolutamente bien desde un USB en todos los casos (AFAIK), pero encuentro que si quiero construir un sistema de escritorio Ubuntu / Mythbuntu sobre el Servidor, introduce todo tipo de peculiaridades no deseadas que luego necesitan tiempo para resolverlas. Así que quédate con Desktop, si eso es lo que buscas.

  • Quantal (12.10) tiene LVM como una opción en el instalador gráfico (¡lo cual es genial!) Y, por lo tanto, se ha eliminado el ISO alternativo. Sin embargo, la interfaz de partición manual me pareció inflexible, carente de opciones de LVM, y simplemente no funcionó para el arranque múltiple. Esto puede deberse al problema de USB mencionado anteriormente, pero para ser sincero, tuve tantos problemas con un sistema Quantal que probé que me di por vencido bastante rápido y volví a Precise (12.04.1).

  • La otra opción principal es usar el instalador de arranque de red, del cual no tengo ninguna experiencia real (excepto en mi Raspberry Pi), pero creo que hay mini ISO con instaladores basados ​​en texto y GUI (GTK), que se puede quemar y arrancar desde. Estos extraen la mayoría de los archivos de instalación directamente de un repositorio y son altamente personalizables.

Luego , debe iniciar su sistema desde un CD o USB utilizando su entrada de inicio UEFI desde "BIOS" o el menú de inicio (generalmente uno de [F8] - [F12] en el teclado).

Te dejaré que pases por los preliminares del proceso de instalación, pero una vez que llegues a la parte de partición, elige Partición manual y luego crea (o modifica si ya has creado algunas) estas particiones:

  1. Una sola partición de tamaño 200MB, FAT32, Partición del sistema EFI, denominada / etiquetada "EFI", Boot-able, Format.

  2. Varias particiones: tamaño 256 MB, EXT2, arranque, formato;

    • Debe nombrarlos o etiquetarlos para el sistema operativo que representarán, es decir, "OS_01_Boot" ... "OS_03_Boot" ... etc.

    • Comience montando el primero de estos como "/ boot" y todos los demás como "no usar".

    • Cree una partición para cada sistema operativo que desee instalar.

  3. Una partición, que ocupa el resto del espacio de la unidad, como un volumen para LVM.

    • Configure LVM en el volumen que acaba de particionar, creando un grupo de volúmenes para todos sus sistemas operativos, dándole un nombre adecuado y mucho espacio para todos ellos. Recomiendo tener en cuenta al menos 40 GB para cada uno, dependiendo del tipo de instalación que esté planeando para cada uno.
  4. Cree un volumen lógico del mismo tamaño que la RAM física en su sistema, es decir, 8GB, asígnele el nombre "Swap", úselo como swap, formatee.

  5. Cree un volumen lógico para cada uno de los sistemas operativos dentro del grupo de volúmenes, dimensionándolos como se sugirió anteriormente y dándoles un nombre, por ejemplo, "Ubuntu_12.04", etc.

    • Formatee cada uno a EXT4, nombrando / etiquetando las particiones a medida que avanza.

    • Comience montando el primero de ellos como "/" (raíz) y todos los demás como "no usar".

¡Eso es! Ahora tiene una partición de intercambio, "/ boot" y "/" (root) para su sistema y repuestos para sus instalaciones posteriores. Ahora puede confirmar los cambios en la tabla de particiones y continuar con el resto de la instalación.

Cuando se trata de instalar su próximo sistema operativo, solo asegúrese de montar la siguiente partición "/ boot" y "/" (root), respectivamente. Asegúrese de marcar todos los demás como "no usar", incluidos los que utilizó la última vez.

Parte dos: Copia de seguridad de los archivos de arranque UEFI.

Tan pronto como haya arrancado en su nuevo sistema operativo, debe hacer una copia de seguridad de su cargador de arranque UEFI para su uso posterior y asegurarse de que no se sobrescriba en la próxima instalación. Esto se puede encontrar en "/ boot / efi / EFI", dentro de su propia carpeta, generalmente llamada "ubuntu". El archivo en cuestión tendrá un nombre similar a "grubx64.efi", dependiendo de la arquitectura de su PC; entonces "/boot/efi/EFI/ubuntu/grubx64.efi", para mi máquina.

En mi caso, para respaldarlo lo copié a través de la consola, así:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Ubuntu_12.04.1

Definitivamente valdría la pena hacer una copia adicional en su carpeta de inicio o en otro lugar seguro, por si acaso:

cp -r /boot/efi/EFI/ubuntu /home/user/Ubuntu_12.04.1

Una vez hecho esto, puede instalar de forma segura su próximo sistema operativo (siguiendo los consejos anteriores), que probablemente sobrescribirá el archivo y la carpeta originales y también se convertirá en la entrada de arranque UEFI predeterminada en "BIOS". Repita el proceso nuevamente y tantas veces como sea necesario, dando a cada carpeta un nombre diferente pero representativo:

sudo cp -r /boot/efi/EFI/ubuntu /boot/efi/EFI/Server_12.04.1
cp -r /boot/efi/EFI/ubuntu /home/user/Server_12.04.1

Parte tres: Modificación de las entradas UEFI en su "BIOS" UEFI.

Desde la terminal, ingrese:

sudo efibootmgr

Deberías obtener un resultado como este:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0000* ubuntu
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Es bastante autoexplicativo, de verdad. Debería reflejar lo que ves en tu lista de arranque del BIOS.

Tener una lectura de:

man efibootmgr

para ver qué hacen los comandos, luego modifique los comandos de ejemplo a continuación para agregar y eliminar entradas de arranque.

Primero , elimine la línea "Boot0000 * ubuntu" con:

sudo efibootmgr -b 0000 -B

Salida:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

Luego agregaremos algunas entradas para tres sistemas operativos.

OS # 1:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu 12.04.1" -l \\EFI\\Ubuntu_12.04.1\\grubx64.efi

Salida:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0006,0007,0005
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0000* Ubuntu 12.04.1

OS # 2:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Ubuntu Server 12.04.1" -l \\EFI\\Server_12.04.1\\grubx64.efi

Salida:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0001* Ubuntu Server 12.04.1

OS # 3:

sudo efibootmgr -c -g -d /dev/sda -p 1 -w -L "Mythbuntu 12.04.1" -l \\EFI\\Mythbuntu_12.04.1\\grubx64.efi

Salida:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0002,0001,0000,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive 
Boot0002* Mythbuntu 12.04.1

Para cambiar el orden de arranque:

sudo efibootmgr -o 0000,0001,0002,0006,0007,0005

Salida:

BootCurrent: 0000
Timeout: 3 seconds
BootOrder: 0000,0001,0002,0006,0007,0005
Boot0000* Ubuntu 12.04.1
Boot0001* Ubuntu Server 12.04.1
Boot0002* Mythbuntu 12.04.1
Boot0005* Hard Drive 
Boot0006* UEFI: MATSHITABD-MLT UJ240AS
Boot0007* CD/DVD Drive

¡Hecho!

Hay una sintaxis bastante extraña involucrada, especialmente alrededor de las rutas de los archivos, pero es bastante sencillo si tienes una buena guía (que espero que sea).

Gracias por leer. :)

https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#efibootmgr

Llámame V
fuente
Gracias, Abraham Van Helping. Estaba tratando de responder, pero creo que soy demasiado novato aquí. Trataré de arreglar esto más tarde; ¡el formato es terrible! ¡Aquí es la 1:30 am, así que me rendiré por el momento!
Rich.T.
2

Cualquier instalador del sistema operativo que borre los archivos del cargador de arranque EFI de otros sistemas operativos u otros está dañado. Ubuntu tuvo este problema en el pasado, pero supuestamente se solucionó con la versión 12.04. (Digo "supuestamente" porque he visto un par de informes de problemas a lo largo de estas líneas que me hacen pensar que el error aún puede existir para una minoría de sistemas). Dicho esto, haciendo una copia de seguridad de su Partición del sistema EFI (ESP) antes de un La nueva instalación del sistema operativo es una póliza de seguro útil. Una copia de seguridad a nivel de archivo debería ser suficiente, ya que EFI no se basa en el código guardado en los sectores de arranque. (Sin embargo, se basa en el GUID de la partición, por lo que si algo elimina el ESP y crea uno nuevo, las entradas del cargador de arranque del EFI podrían dejar de funcionar).

En términos generales, para su tipo de configuración, recomiendo crear un ESP, tantas /bootparticiones como crea que pueda necesitar, y una gran partición LVM. Si espera instalar distribuciones de Linux junto con otros sistemas operativos, haga que tres o cuatro particiones LVM de diferentes tamaños que luego se fusionen en un grupo de volúmenes; de esa manera, puede extraer una partición (volumen lógico) de su grupo de volúmenes y dedicarla a un sistema operativo que no sea Linux. Las /bootparticiones que no son LVM le dan la opción de usar cargadores de arranque que no entienden LVM (es decir, cargadores de arranque no GRUB2).

Cuando instala un nuevo sistema operativo, probablemente instalará su propio cargador de arranque como predeterminado. En una configuración compleja como la suya, esto es probablemente la cosa incorrecta que hacer la mayor parte del tiempo. Para corregirlo, es útil tener una unidad flash USB o CD-R con su cargador de arranque preferido instalado. Es probable que algo que pueda detectar automáticamente otros cargadores de arranque, como rEFIt o su derivado rEFInd, funcione bien en este contexto. (Tenga en cuenta que los archivos binarios en el sitio web de rEFIt solo funcionan en Mac; rEFInd es una opción más segura para PC basadas en UEFI). Alternativamente o además, una forma de iniciar un shell EFI puede ser útil, ya que puede mover archivos, ajustar las opciones de arranque y solucionar una serie de problemas desde un shell EFI. Muchos gestores de arranque y gestores de arranque EFI pueden lanzar shells EFI. (Vereste wiki de Arch Linux para descargar enlaces a algunos shells de EFI.) Tanto las imágenes de CD de rEFIt como de rEFInd incluyen shells de EFI.

Rod Smith
fuente
2

No tiene que usar EFI para arrancar un disco de 2 + TB; solo tiene que usar GPT y crear una partición bios_grub de 1 MB debajo de la marca de 2Tb. Si encuentra que EFI es problemático, esto puede funcionar mejor para usted.

psusi
fuente