¿Qué hace que una tabla de particiones sea válida?

3

PREGUNTA : ¿Qué hace que una tabla de particiones sea reconocible y válida para un sistema operativo? (Linux específicamente)?

Información de fondo opcional: pensé que había algún tipo de "firma" que define una tabla de particiones válida y si no se encuentra la firma, entonces Linux (o cualquier sistema operativo) simplemente no informaría sobre las particiones.

Estoy usando un editor hexadecimal para inspeccionar datos aparentemente aleatorios (nuevo borrado aleatorio o cifrado de una unidad completa) y algo al respecto hace que la unidad sea reconocida como teniendo particiones (a veces 2, 3 o 4 particiones de tamaño aleatorio después de haber sido borradas o encriptado).

He inspeccionado los bytes 446 a 509 (donde se supone que se debe almacenar la tabla de particiones; usando un índice que comienza desde 0) y parece que no puedo entender qué haría pensar a Linux que las particiones son válidas --- son solo datos aleatorios y hubiera pensado que es estadísticamente improbable que una partición se defina mediante datos aleatorios escritos en el MBR.

También he usado el software de gestión de particiones GParted para Linux para ver si reconoce las particiones y no . Sin embargo, otro software y Linux en sí reconoce estas "particiones". Nota: Las particiones son de tamaño no válido y no se suman correctamente para igualar el tamaño de la unidad física y parecen ser de tamaño aleatorio.

Mikeweb49
fuente

Respuestas:

3

Respuesta: nada en particular.

Un MBR contiene una firma de arranque al final para indicar que hay (o debería haber) código ejecutable para una PC x86 con un BIOS. En el MBR, el código lee la tabla de particiones y arranca la partición activa. El sector de arranque de esa partición también tendría una firma de arranque. Los sectores de arranque en disquetes tienen una firma de arranque. La idea es evitar que algún otro tipo de máquina cargue ciegamente el código de arranque y lo ejecute; pero en la práctica se espera que la firma esté allí. Si no es así, eso podría indicar que todo el sector está dañado y no debe ir más allá, ya que no desea ejecutar código aleatorio.

Pero un sistema operativo puede intentar tan duro (o tan poco) como quiera intentar interpretar la tabla de particiones. Supongamos que estaba jugando con un editor hexadecimal de disco y logró destrozar algunas entradas en la tabla de particiones. Tal vez algunas de las otras particiones siguen siendo válidas, por lo que vale la pena intentarlo; nada se está ejecutando, todavía. GParted probablemente realiza una comprobación real y, cuando "no se acumula", considera que el disco está dañado y es adecuado para volver a particionar.

El nuevo formato GPT emplea un CRC32 para detectar corrupción. Aun así, un sistema operativo, que ahora sabe con certeza que algo está mal, podría hacer un gran esfuerzo para ver lo que se puede leer de todos modos.

Conocer
fuente
Ken, gracias por tu respuesta. De acuerdo con esto: en.wikipedia.org/wiki/Master_boot_record#Sector_layout La "Firma de arranque" es 55h AAh en las posiciones de byte 510 y 511 (indexada a partir de 0). Entonces, lo que ha dicho tiene sentido para indicar si hay un código de arranque válido para ejecutar. Su mención del sistema operativo que intenta interpretar la tabla de particiones, independientemente de que tenga sentido, coincide bastante con lo que estaba adivinando; Ahora estoy en una búsqueda para descubrir de qué se está ocupando Linux específicamente para pensar que mi disco tiene particiones. Aceptando su respuesta, ¡gracias!
Mikeweb49