GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo saber si el sistema específico necesita una partición de arranque?

Conozco la historia general de por qué históricamente tenemos particiones de arranque separadas:

¿Para qué sirve realmente la partición /boot?

y en una computadora nueva, es posible que no me moleste con una. Sin embargo, estoy instalando Linux en un sistema de 20 años, con un BIOS que no es UEFI (que ni siquiera puede arrancar desde USB). Esta no será una máquina de arranque múltiple, ni nada complicado:sin LVM, sin cifrado de disco, sin RAID, etc.

¿Cómo puedo saber si mi específica computadora, con mi específica HDD, ¿necesita una partición de arranque?

Nota:

  • En caso de que importe, la distribución que pretendía instalar es antiX Linux 19.3 i386. Invoca a gparted para permitirle editar las particiones.
  • El gestor de arranque será naturalmente el que instale mi distribución, que AFAICT es grub2.

Respuesta aceptada:

Si un sistema es del año 1994 o anterior, es posible que su BIOS no pueda manejar discos con una geometría de clústeres/cabezales/sectores mayor que 1024/16/63, lo que equivale a un límite de 504 MiB (528,4 MB). La razón de esto fue una interacción inconveniente de dos conjuntos de límites:

  • la función clásica BIOS INT 13h no extendida aceptaba una geometría de disco máxima de 1024/255/63
  • el hardware IDE (PATA) aceptaría una geometría máxima de 65536/16/63
  • Hasta ahora, las implementaciones triviales solo eligieron el límite más pequeño en cada valor, lo que resultó en un límite de 1024/16/63.

En julio de 1994, se desarrolló una nueva función de BIOS, "Servicios de unidad de disco mejorados" (EDD, por sus siglas en inglés), para sortear este límite. Cambió bits entre las partes de los clústeres y los cabezales de la geometría entre la representación del BIOS y la interfaz de hardware IDE (llamada "traducción de geometría"), como una solución para este límite.

Algunas versiones de BIOS también tenían errores en la geometría del disco 4096/16/16 o su forma "traducida" 1024/64/63.

Con una geometría de disco de 16383/16/63 (o 1024/255/63 en forma traducida), se alcanzó el límite máximo del direccionamiento de disco C/H/S clásico:los formatos de entrada de datos de las funciones BIOS manejan este tipo de direccionamiento de disco simplemente no tenía suficientes bits para manejar discos más grandes que este. Este límite se alcanzó con un tamaño de disco de 7,87 GiB (8,45 GB), o exactamente 16 450 560 bloques de disco.

La especificación IDE (PATA) incluía una función que podría solucionar este problema, pero inicialmente se especificó como una función opcional y no todos los BIOS la implementaron. Se llamó Direccionamiento de bloques lógicos, o LBA para abreviar. A medida que crecía el tamaño de los discos, la mayoría de los discos lanzados después de 1996 admitían LBA.

Pero luego se descubrió otro error del BIOS:algunos BIOS tenían una implementación LBA defectuosa que fallaba si se requerían más de 26 bits para representar el número de bloque del disco. Esto afectó a algunas versiones de BIOS lanzadas en agosto de 1999 o anteriores, y provocó un límite en el tamaño del disco de exactamente 32 GiB (33,8 GB).

La especificación LBA que se publicó en 1994 había asignado solo 28 bits para el número de bloque de disco, y esto provocó otro límite de tamaño de disco de exactamente 128 GiB. La especificación ATA-6 lanzada en el año 2003 especificaba versiones de 48 bits de las funciones de acceso al disco LBA, que es lo que estamos usando actualmente con los discos SATA modernos. Debería funcionar hasta que el tamaño del disco aumente a 128 PiB.

Relacionado:¿Cómo usar "por" y "hasta" en estos contextos específicos?

A menudo era posible solucionar estas limitaciones especificando deliberadamente una geometría de disco incorrecta en BIOS, diciéndole que el disco era más pequeño que el límite ofensivo y haciendo /boot una partición que encaja completamente dentro de la geometría falsa.

A veces (después de que se introdujera la compatibilidad con LBA) bastaba con que /boot la partición estaba dentro del límite de tamaño apropiado.

El cargador de arranque usaría las rutinas del BIOS para cargar el kernel de Linux (y, opcionalmente, un archivo initrd) desde esta partición, y una vez que se iniciara el kernel, sus controladores tomarían el control del acceso al disco, omitiendo el BIOS por completo y haciendo que sus limitaciones sean irrelevantes siempre que el sistema operativo estaba corriendo. En este punto, el kernel normalmente detectaría automáticamente la geometría real del disco.

Entonces, ¿qué significa esto?

  • si su sistema tiene una fecha de lanzamiento del BIOS del año 2004 o anterior, es posible que deba crear un /boot partición que se ajuste por completo a los primeros 128 GiB del disco, de lo contrario, el BIOS podría fallar al iniciar el sistema operativo. (Esto suele ser un problema solo para el arranque dual y otras configuraciones de varios sistemas operativos).
  • si su sistema tiene una fecha de lanzamiento del BIOS anterior al año 2000, es posible que desee crear un /boot separado partición dentro de los primeros 32 GiB del disco, solo para estar a salvo de errores de implementación de LBA.
  • si el sistema es de 1996 o anterior y no menciona "LBA" en ninguna parte de la configuración del BIOS, es posible que deba especificar una geometría de disco falsa y asegurarse de que su /boot la partición está dentro de la geometría falsa y dentro de los primeros 7,87 GiB del disco.
  • cualquier cosa anterior a eso:"Pertenece a un museo". 🙂 Pero si es necesario, consulte más arriba los límites relevantes.

Si la fecha de lanzamiento del BIOS de un sistema es justo después de la fecha de una actualización de especificación en particular, es posible que tenga o no la especificación actualizada:después de que se lanzó cada actualización de especificación, tomó algún tiempo para que las nuevas implementaciones se hicieran omnipresentes.


Linux
  1. ¿Cómo copiar el diseño de partición de un disco completo usando herramientas estándar?

  2. ¿Cómo montar automáticamente la partición de Windows en el arranque?

  3. ¿Cómo agregar una nueva entrada de arranque del sistema operativo al menú de Grub2?

  4. ¿En qué partición está instalado el gestor de arranque?

  5. Cambiar el tamaño de la partición de arranque

Cómo eliminar una partición en Linux

Cómo cifrar la partición en Linux

¿Cómo mover la partición Ext4 delante de la partición de arranque?

¿Cómo puedo saber si estoy en una pantalla?

¿Cómo saber qué proceso tiene abierto un puerto específico en Linux?

¿Cómo puedo saber si el servidor admite unidades de intercambio en caliente?