Diferencia entre particiones arrancables y no arrancables

8

¿Cuál es la diferencia entre una partición de arranque y no de arranque? Sé que un usuario no puede iniciar un sistema desde una partición marcada como no arrancable y puede hacerlo desde una marcada como arrancable.

Quiero saber sobre las diferencias subyacentes entre estos indicadores de partición.

Sam
fuente
1
Puede saber qué es el proceso de arranque de Linux podría ayudarlo. ibm.com/developerworks/linux/library/l-linuxboot
@anon_anon Uh, ese artículo, aunque sin duda uno bueno, es un poco viejo. Es de 2006 y analiza GRUB Legacy. Creo que las cosas han cambiado un poco con GRUB 2. (Si nada más, usan diferentes nombres para las " etapas " de arranque en GRUB 2 :). Traté de localizar una actualización de DeveloperWorks del artículo que vinculó para GRUB 2, pero no lo hice. Lo más cerca que pude llegar fue esto: migrar a GRUB 2 .
John irracional
@Rony Ooops. Actualicé mi respuesta.
John irracional
posible duplicado de ¿Qué es la opción "Bandera de arranque" al instalar una distribución?
Gilles 'SO- deja de ser malvado'

Respuestas:

6

Aunque fue rechazado ... posiblemente porque alguien pensó que no estaba respondiendo la pregunta ... Creo que la respuesta de @ Rony es un buen comienzo para explicar de qué bootse trata la bandera. (En realidad estaba planeando comenzar mi respuesta con un ejemplo similar al que él proporcionó).

Estaba preparado para divagar sobre una respuesta sobre cómo la bootbandera es, en este momento, un remanente histórico a menudo ignorado (como muestra el ejemplo de @ Rony) de un período en que los discos duros eran más pequeños y los cargadores de arranque eran mucho menos sofisticados.

Pero luego descubrí que esto ya se había dicho en esta respuesta a esta pregunta: ¿Cuál es la opción "Bandera de arranque" al instalar una distribución?

Además, también había un enlace a un breve artículo sobre la bandera de arranque que dice

  • " Su función principal es indicar a un / cargador de arranque MS-DOS MS Windows de tipo qué partición de arranque En algunos casos se utiliza por Windows XP / 2000 para asignar la partición activa de la letra. 'C:'. "

Bueno, esto es vergonzoso ...

Cuando afirmé que la bootbandera era un " remanente histórico ", asumí que este era el caso porque claramente GRUB no tenía necesidad de usarla. Seguramente Microsoft también habría " seguido ".

La conocida cita generalmente atribuida a Oscar Wilde resultó ser demasiado cierta en este caso.

Parece que los cargadores MBR y PBR (Partition Boot Record) utilizados por los sistemas operativos Windows esperan que el bootindicador se configure correctamente.

Para probar esto, borré el indicador de arranque de todas las particiones de una VM con Windows 8. (Vea a continuación. Si tiene curiosidad, aquí hay un enlace al pastebin del resultado completo de BootInfo Script )

Drive: sda     
Disk /dev/sda: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders, total 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1               2,048       718,847       716,800   7 NTFS / exFAT / HPFS
/dev/sda2             718,848    52,426,751    51,707,904   7 NTFS / exFAT / HPFS

Cuando borré la bandera de ambas particiones, recibí el mensaje de error FATAL: INT18: BOOT FAILUREcuando intenté arrancar. (No estoy seguro si eso es del cargador de arranque de Windows MBR o el equivalente de VM de un BIOS).

Solo para ver qué sucedería, también configuré la bootbandera en la partición "incorrecta", en /dev/sda2lugar de /dev/sda1. Hacer eso resultó en la ventana que se muestra en la imagen a continuación.

Windows no pudo iniciar la ventana de error

<sigh/>

Esta experiencia me hace preguntarme si Microsoft todavía está usando el mismo cargador de sector de arranque MBR que usaron para MS-DOS y Windows 3.0 / 3.1.

John irracional
fuente
3

Sé que un usuario no puede iniciar un sistema desde una partición marcada como no arrancable y puede hacerlo desde una marcada como arrancable.

Desde disco duro portátil

# fdisk  -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x47b94fbe

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     1999999      998976   83  Linux
/dev/sda2         2000000     9999999     4000000   82  Linux swap / Solaris
/dev/sda3        10000000    89999999    40000000   83  Linux
/dev/sda4        90000000   976773167   443386584   83  Linux

Desde USB de arranque Linux

# fdisk  -l /dev/sdb

Disk /dev/sdb: 8004 MB, 8004304896 bytes
247 heads, 62 sectors/track, 1020 cylinders, total 15633408 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a5395

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2097151     1047552   83  Linux
/dev/sdb2         2097152    15632383     6767616   83  Linux

No tienen una única partición de arranque, mientras que todas son de arranque.

Rony
fuente
2

Solo una bandera en la tabla de particiones. El MBR busca la bandera en las particiones y se ejecuta desde la partición con la bandera de "arranque".

Rufo El Magufo
fuente
0

Cuando se usa el Microsoft MBR tradicional, el código en el MBR identifica cómo hacer E / S de disco y pasa por las particiones para ver cuál está marcado con el indicador de arranque. Solo una partición debe estar tan marcada. Luego verifica el primer sector de esa partición, y si está marcado apropiadamente, lee ese sector y le transfiere el control. Si no recuerdo mal, esa verificación es que el sector termina con 0x55 0xaa.

El resto de la responsabilidad del arranque recae en el código de ese sector y el código que, a su vez, carga.

GRUB2 muy a menudo usa su propio MBR y proceso, ignorando este bit.

John S Gruber
fuente