GNU/Linux >> Tutoriales Linux >  >> Linux

¿Es posible una memoria USB híbrida de Linux para UEFI y BIOS heredada?

Es posible, y es muy frecuente hecho tanto con memorias USB externas como con unidades internas.

Con respecto a los tipos de tablas de particiones:

  • BIOS normalmente no necesita cualquier tabla de particiones. Solo le interesa el código de arranque parte que son los primeros 440 bytes de su MBR. (Aunque hay excepciones. Algunas implementaciones de BIOS en realidad fallan si no pueden encontrar un MBR con uno de los tipos de partición habituales. Con suerte, esos son raros).

    La tabla de particiones GPT no físicamente reemplace un MBR:siempre comienza en el sector 1, mientras que el MBR está en el sector 0, por lo que es posible que un disco tenga ambos. De hecho, la mayoría de los discos GPT lo hacen tenga un "MBR de protección" que contenga solo una partición que cubra todo el disco, para evitar que las herramientas de partición de MBR más antiguas destruyan accidentalmente los datos.

    Entonces puede instalar, por ejemplo, el sector de arranque de Syslinux en su MBR, y se iniciará. (El syslinux-install_update script hará esto por ti, pero puedes buscar gptmbr.bin en su paquete syslinux para hacerlo manualmente).

    Al igual que el indicador "activo" en las particiones MBR, Syslinux buscará el indicador "BIOS de arranque heredado" en las particiones GPT (bit 2:especificación UEFI 2.4, sección 5.3.3, tabla 20); el script mencionado anteriormente también establece esa bandera automáticamente si tiene sgdisk (de gptfdisk) instalado.

    También se puede usar GRUB, pero también es un poco más molesto. Dado que GRUB 2 quiere "incrustar" partes de sí mismo en los sectores 1-62 tradicionalmente no utilizados, sobrescribiría un GPT que está almacenado en la misma ubicación. Por lo tanto, es posible que deba crear una partición dedicada de 2 a 4 MB y marcarla como de arranque del BIOS, de modo que grub-install encontraría un lugar de incrustación.

  • Por otro lado, la especificación UEFI requieren soporte para tipos de partición MBR (sección 12.3.1) y asignan el tipo de partición MBR 0xEF a la partición del sistema EFI (sección 5.2.2).

    Entonces, si por alguna razón no puede hacer que su disco funcione con GPT, aún puede crear una partición de sistema EFI en MBR, y se usará siempre que tenga el sistema de archivos correcto y todos los archivos necesarios (sección 12.3.1.3):

    Para los dispositivos de medios extraíbles, solo debe haber una partición del sistema compatible con UEFI, y esa partición debe contener un directorio definido por UEFI en el directorio raíz. El directorio se llamará EFI . Todos los cargadores y aplicaciones del sistema operativo se almacenarán en un subdirectorio debajo de EFI llamado BOOT . Solo debe haber una imagen EFI ejecutable para cada arquitectura de procesador compatible en el BOOT directorio. Para que los medios extraíbles puedan iniciarse con EFI, deben construirse de acuerdo con las reglas establecidas en la Sección 3.4.1.1.

Con respecto a los sistemas operativos, a Linux generalmente no le importa lo más mínimo si se inicia desde BIOS hoy y desde UEFI mañana. Tuve que reiniciar mi computadora portátil desde el modo UEFI al modo de "compatibilidad con BIOS" y volver tal vez cien veces esta semana, mientras intentaba encontrar un error en el soporte UEFI 3.17...

Tenga en cuenta que el artículo "Transformación de BIOS a UEFI" trata sobre un tema bastante diferente. Describe cómo instalar UEFI mismo – una implementación de UEFI llamada "DUET" – para iniciarse desde un sistema solo de BIOS. No tiene nada que ver con arrancar un sistema operativo directamente desde BIOS.


Sí, esto es posible.

La idea básica es crear una partición GPT en su memoria USB de esta manera:

  1. Partición de arranque del BIOS (tipo GPT 1686148-6449-6E6F-744E-656564454649 ) - 1 MiB, sin sistema de archivos
  2. Partición del sistema EFI (tipo GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B ) - 200 MiB, sistema de archivos VFAT
  3. Partición de arranque de Linux (tipo GPT 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) - 1 GiB, sistema de archivos ext4
  4. Sistema de archivos principal/raíz de Linux (tipo GPT 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) - espacio restante, sistema de archivos XFS o Btrfs

Esta partición nos permite arrancar en sistemas heredados porque con GPT todavía hay espacio para un MBR (por razones de compatibilidad con versiones anteriores) y Grub2 tiene suficiente espacio para instalar alguna etapa intermedia en la partición de arranque del BIOS. Los BIOS heredados no se preocupan por el esquema de partición y el núcleo Grub2/Linux no tiene problemas para comprender GPT en los sistemas heredados.

En los sistemas UEFI, el firmware UEFI ignora el MBR y utiliza la partición del sistema EFI como punto de entrada.

Por ejemplo, con Fedora, básicamente tienes que hacer lo siguiente:

Asegúrese de que el sistema de archivos de arranque de Linux esté montado en /boot y ese sistema de archivos de partición del sistema EFI está montado en /boot/efi .

(Re)instale los cargadores de arranque heredados y UEFI:

grub2-pc grub2-efi-x64 shim-x64 efibootmgr

(Vuelva a) generar los archivos de configuración de grub para el arranque heredado y UEFI:

# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg

Dependiendo de si su sistema arrancó en modo heredado o UEFI, debe corregir el primer o el segundo archivo y reemplazar (linux|initrd)16 con (linux|initrd)efi o al revés.

Instale grub en el MBR:

# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device

Listo.


Linux
  1. Linux:¿es posible falsificar una ruta específica para un proceso?

  2. Linux:¿usar el espacio antes de la primera partición de la memoria USB como clave Luks?

  3. ¿Por qué se recomienda una partición de arranque ext2 de 100 MB para Linux?

  4. ¿Por qué USB no funciona en Linux cuando funciona en UEFI/BIOS?

  5. ¿Cuál es el tamaño recomendado para una partición Linux /boot?

Una introducción a bpftrace para Linux

Elegir una impresora para Linux

Gestión de particiones de Linux

Habilite la compatibilidad con UEFI para máquinas virtuales KVM en Linux

Mueva su Linux del BIOS heredado a UEFI en su lugar con un tiempo de inactividad mínimo

Zorin OS para principiantes de Linux