lunes, 14 de octubre de 2019

03 - Particiones Windows 10 - BIOS/UEFI

Se puede realizar una instalación de Windows en modo legacy  BIOS para que sea compatible con el viejo particionado MBR o en modo UEFI para utilizar el nuevo particionado GPT. La instalación por defecto en el caso de que no haya particiones creadas (disco limpio), crea un esquema de particiones diferente en cada caso.


Veamos diferencias entre ambos modos a la hora de instalar Windows 10 Edu 1904 en un disco de 60GB y dejando que el SO decida por defecto. Los resultados los muestro con Gparted que tira información más detallada.

BIOS




Se crean dos particiones


Partición Reservada para el sistema de 579MB y Partición para el SO/Datos con todo el espacio restante. Ambas tienen formato ntfs


¿Para que sirve la reservada en MBR?


Contiene los ficheros de arranque de Windows (bootmgr, \Boot, etc.). A partir de W7 se pensó que era buena idea crear una partición extra para el arranque. La razón principal fue por necesidades de Bitlocker una herramienta nativa de cifrado de Windows.


¿Se puede prescindir de esta partición?


Antes de instalar el SO y si no se tiene pensado usar Bitlocker es posible evitar su creación. Después de instalar el SO se puede pero no es muy recomendable


¿Cómo evitar la creación de la reservada durante la instalación?


Desde el propio gestor gráfico de particiones, elimina (si existen) todas las particiones. Crea una nueva partición. Te saldrá el mensaje y se creará la partición reservada junto a la principal.





Sólo hay que eliminar la principal y extender la partición reservada para que ocupe el espacio que se desee. Al finalizar la instalación del SO podrás comprobar la existencia de una partición que contendrá los ficheros de arranque y el resto de ficheros del sistema.


UEFI




Si vamos a instalar Windows en modo UEFI, el SO debe ser de 64 bits, la unidad de disco que alberga la partición de Windows tiene que tener formato GPT. Si hay otras unidades de disco pueden tener formato MBR o GPT.


Se crean cuatro particiones
  • Recuperación (529MB - ntfs): Contiene herramientas del entorno de recuperación.
  • Sistema EFI (100MB - fat32): Aloja el cargador. El SO administra esta partición y arranca desde ella. No debe contener nada más.
  • Reservada de Microsoft (16MB - formato desconocido). Se añade en unidades GPT para ayudar con la administración de particiones. No puede almacenar datos.
  • Básica (mínimo 20GB - ntfs). Contiene SO/Datos.

En UEFI no se puede evitar la creación de ninguna de las particiones como en el caso de MBR. Se puede eliminar la partición de recuperación pero no es recomendable. Para borrar una partición protegida y oculta del estilo de la reservada de 16 MB se hace desde diskpart con delete partition override

Separar SO y Datos


Independientemente del modo de instalación (BIOS o UEFI), en SO Windows o Linux, es muy recomendable separar la partición que alberga el SO/Datos en dos, una para el Sistema Operativo y otra para los datos de usuario.

La partición que alberga el SO suele ser la que más daños sufre debido a diversos problemas como ataques, apagones, corrupción de información, actualizaciones entre otros muchos. En una situación difícil, podríamos tener que reinstalar el SO desde el principio y si los datos están junto al SO es posible que los pongamos en riesgo o que tengamos que sacarlos antes de la instalación, con el trabajo que eso conlleva.

Si almacenamos los datos en una partición aparte, solo tendríamos que arreglar la partición del SO sin poner en peligro los datos, y sin trabajo innecesario. Si ademas, esa partición esta en un segundo disco, todavía tendríamos un mayor nivel de seguridad ya que aunque se rompiera definitivamente el disco del SO, el de los Datos podría conservarse intacto. 

Hoy en día con las unidades de estado sólido SSD, se hace casi obligatorio almacenar los datos fuera del SSD, que normalmente alberga el SO, porque además, estas unidades en muchas situaciones no permiten recuperar los datos tan fácilmente como los discos duros.

Como veremos en una entrada posterior, además de estas razones también se reduce el impacto de la fragmentación beneficiando al rendimiento del disco.

Instalaciones UEFI

En primer lugar volvemos a recordad que instalar el SO operativo en modo UEFI implica elegir esquema de particionado GPT. También es recomendable que el disco se encuentre limpio sin particiones antes de proceder (Shift + F10 y Diskpart pueden ayudar con esto)

Además el dispositivo de arranque desde donde vamos a instalar el sistema tiene que arrancar en modo UEFI. Si es un USB, hay que montar la iso de Windows 10 con alguna herramienta tipo Rufus en modo UEFI.



Si el SO no está certificado (firmado por Microsoft), habría que desactivar el arranque seguro en la UEFI porque la instalación fallaría a la hora de actualizar la configuración de arranque. Si el SO no esta preparado para instalación UEFI además habrá que seleccionar en la UEFI el modo CSM que permite arranques compatibles con BIOS y montar la iso con Rufus de la forma que corresponde.



Arranque seguro (Secure Boot)

Es un firmware propio de UEFI,  embebido en la máquina, que exige que el SO y sus drivers estén firmados digitalmente y que dicha firma concuerde con el firmware embebido.

Microsoft, con la excusa de evitar la carga de malware o aplicaciones no fiables,  lo implementa en la propia arquitectura del SO a partir de W8, obligando a que el SO y sus drivers estén firmados digitalmente. Además para que los equipos comercializados con W8 puedan tener la pegatina oficial tienen que implementar arranque seguro UEFI.

El arranque seguro debe ser posible desactivarlo ya que muchos sistemas operativos no lo implementan y por lo tanto no podrían instalarse. La mayoría de fabricantes permiten la posibilidad de desactivarlo en UEFI pero ya no es obligatorio y algunos no lo hacen generando malestar.

Actualmente gran parte de Linux 64 bit modernos ya entregan sus SO firmados para poder utilizar arranque seguro.



https://www.xataka.com/basics/que-secure-boot-uefi-como-puedes-desactivarlo

Ejercicio

Practica inicios de instalación de Windows en ambos modos para ver los distintos esquemas que se crean por defecto. Comprueba que BIOS permite prescindir de la reservada. Verifica que con UEFI se vuelven a generar reservada y EFI aunque las elimines, pero si se puede prescindir de la de recuperación. Aprende a separar partición de datos de la del sistema. No es necesario terminar la instalación, puedes empezarla, reiniciar la máquina y ver que particiones se han creado. Puedes usar particionado Gráfico o Diskpart (Shift + F10).

02 - Esquema GPT. Arranque UEFI

Esquema GPT

El nuevo estándar GPT (GUID Partition Table) está sustituyendo a MBR y está asociado con los nuevos sistemas UEFI. Su nombre viene de que a cada partición se le asocia un único identificador global, GUID. A día de hoy, GPT no tiene ningún límite más allá que los que establezcan los propios SO, tanto en tamaño de disco (mas de 2TB), como en número de particiones (por ejemplo, Windows tiene un límite de 128 particiones).


LBA= 512 bytes. LBA negativo= por el final
MBR heredado


Se ha mantenido un MBR al principio del disco para evitar que las herramientas antiguas de manejo de discos basados en MBR, que no reconocen GPT, se confundan y puedan estropear el disco. Este MBR de seguridad especifica, contiene una única entrada de partición que abarca toda la unidad GPT.

Cabecera de tabla de particiones (primaria)


Define el número y tamaño de las entradas de partición que conforman la tabla de particiones y los bloques de disco que pueden ser utilizados por el usuario.


Contiene el GUID del disco y registra su propio tamaño y localización (LBA 1), y el tamaño y la localización de la cabecera y tabla de la GPT secundarias (siempre en el último sector del disco).

Entradas de partición

Contienen el GUID, tipo, comienzo, final, nombre y otros atributos de partición.

Cabecera de tabla de particiones (secundaria)


Copia redundante de la cabecera de tabla de particiones primaria que sirve de seguridad para poderse recuperar en caso de error.

Consideraciones


Mientas que en MBR la tabla de particiones se almacena en el primer sector del disco, con los consiguientes problemas en caso de que dicho sector se pierda, corrompa o sobrescriba, con GPT obtendremos mayor seguridad en nuestro disco duro en cuanto a la pérdida de datos, ya que tenemos una copia de la propia tabla de particiones replicada en nuestro disco.

Arranque UEFI


El arranque UEFI es radicalmente opuesto a MBR.
  • Mantiene un cargador propio EFI (Extendible Firmware Interface) en una partición EFI de tipo FAT (Ej. en Windows 10 ocupa 100 MB y se etiqueta como Sistema)
  • Dispone también de un gestor de arranque propio que incorpora entradas según los SO que se vayan instalando en modo UEFI además de entradas tradicionales Legacy (compatibilidad con MBR).
  • Se ejecuta el cargador EFI y se pasa el control al dispositivo de la lista del gestor de arranque en el orden que esté establecido (si no fuera válido se pasaría al siguiente).

Ejemplo de gestor de arranque EFI

El cargador de arranque EFI es mucho más complejo y tiene mucho mayor conocimiento de los arranques posibles de los diferentes SO, de esa forma quedan integrados dentro del propio cargador acelerándose el proceso de carga del Kernel.


UEFI permite configurar el comportamiento de arranque del sistema desde el propio SO a través de herramientas como efibootmgr.

lunes, 30 de septiembre de 2019

01 - Esquema MBR. Arranque BIOS

A la hora de dar formato a un disco duro, el estilo de tablas de particiones más conocido es MBR. Este estilo de formato lleva más de 30 años funcionando en la mayor parte de SO. Una de las principales limitaciones de MBR es el tamaño máximo de partición con el que puede trabajar: 2 TB. Además el número de particiones primarias que se pueden crear está limitado a 4. Si se quiere aumentar la cantidad de particiones debemos recurrir a una estrategia lógica denominada partición extendida.

Registro maestro de arranque (MBR)


Cada disco duro tiene un sector inicial de 512 bytes conocido como MBR que contiene varias piezas fundamentales: Tabla de particiones, Código de arranque rudimentario y Firma de arranque.



SECTOR 0 DEL DISCO


Tabla de particiones


Es un conjunto de registros (máximo 4) de 16 bytes cada uno, ubicada en el MBR, cuya función es definir las posibles particiones primarias, almacenando información esencial: Sistema de ficheros, Tamaño, Sector de arranque, Marca de arranque etc. Sólo una partición debe tener la marca de arranque.


Bootstrap


Pequeña porción de código (440 bytes) que se encarga de buscar la partición activa en la tabla de particiones (sólo puede haber una activa). Una vez que la encuentra, busca al principio de dicha partición otra porción de código denominada sector de arranque y la carga en memoria.



SECTOR DE ARRANQUE DE PARTICIÓN ACTIVA

El código de arranque del MBR lo podemos considerar como cargador de arranque de etapa 1 mientras que el código de arranque del sector de arranque de la partición activa, cargador de arranque de etapa 2

Firma de arranque


Son los dos bytes finales del MBR que la BIOS usa para saber si la unidad de arranque seleccionada es realmente arrancable o no. En un disco que contiene un código de arranque válido, los dos últimos bytes del MBR siempre deben ser 0x55 0xAA. Si no es así, asume que el disco no es arrancable y continúa con el siguiente dispositivo en la lista de orden de arranque que tenga configurada.

Si ningún dispositivo de la lista tiene la firma de inicio correcta, la BIOS muestra error "No hay ningún dispositivo de inicio disponible" o "Reiniciar y seleccionar el dispositivo de inicio adecuado".

El sector de arranque de la partición activa tiene también al final una comprobación de sector de arranque válido similar a la firma del MBR.

Proceso de arranque BIOS/MBR



  • Se ejecuta el POST, unas rutinas almacenadas en BIOS que hacen un testeo para verificar e inicializar el hardware: placa, procesador, gráfica, RAM, teclado, etc. Justo después es posible el acceso a la BIOS.
  • La BIOS comprueba las unidades de almacenamiento disponibles y se selecciona una unidad de arranque (suele ser una unidad de disco).
  • Se carga el MBR de la unidad de arranque en memoria.
  • Se ejecuta el cargador de arranque del MBR (etapa 1) que se encarga de consultar la tabla de particiones y localizar la partición activa.
  • Se carga el sector de arranque de dicha partición en memoria.
  • Se ejecuta el cargador de arranque del sector de arranque de la partición (etapa 2).
  • Se carga la configuración del cargador de arranque que suele estar almacenada en una base de datos.
  • El cargador de arranque muestra un menú con la lista de SO que pueden lanzarse (si es que hay varios).
  • El cargador de arranque localiza y carga el núcleo del SO y se inicia el sistema de forma desatendida.


Windows Bootmgr


Cada SO tiene su propio gestor de arranque, diseñado específicamente para leer su sistema de archivos y localizar el núcleo que debe cargarse para que se ejecute. Bootmgr es el gestor de arranque utilizado actualmente en Windows en versiones desktop y server. Es un gestor de arranque autónomo especialmente diseñado para ser compatible con las funcionalidades más nuevas de los SO modernos, como el arranque EFI y el particionado GPT.

Almacena su configuración en un archivo llamado BCD, abreviatura de Boot Configuration Database, una base de datos binaria que no se puede abrir y editar a mano pero si a través de comandos como bcdedit.exe y utilidades GUI fáciles de usar como EasyBCD para leer y modificar la lista de SO.

Casi todos los gestores de arranque, como Bootmgr o GRUB2, separan el ejecutable real del gestor de su configuración (base de datos que contiene información sobre los SO a cargar). De esta forma ofrecen soporte para cargar múltiples SO, un proceso conocido como "arranque dual" o "arranque múltiple".