1.3 Discos, Particiones y el Proceso de Arranque
¡Prepárate!
- Aprenderás la nomenclatura que usa Linux para interactuar con discos (ej.
/dev/sda,/dev/nvme0n1). - Entenderás las limitaciones del antiguo MBR frente al moderno GPT. - Memorizarás la etapa crítica de arranque desde la BIOS hasta quesystemdtoma el control con PID 1.
Para un administrador de sistemas operando servidores, un fallo en el disco duro o un sistema que se queda “congelado” durante el arranque (kernel panic) son el pan de cada día. Entender con exactitud cómo detecta Linux los discos y qué archivos intervienen para llegar a la pantalla de inicio de sesión es vital.
1. Tratamiento de Discos en Linux
Sección titulada “1. Tratamiento de Discos en Linux"En Linux, los discos duros y otros medios de almacenamiento de bloques se representan como archivos en el directorio /dev.
La nomenclatura depende del tipo de conexión física o bus:
- Discos SATA/SAS (Tradicionales y SSDs):
/dev/sda(primer disco),/dev/sdb(segundo disco), etc. - Discos NVMe (Alto rendimiento PCIe):
/dev/nvme0n1(primer disco),/dev/nvme1n1(segundo disco). - Lectores SD / eMMC:
/dev/mmcblk0.
Cuando particionamos un disco, a cada partición se le asigna un número:
- Las particiones de
/dev/sdase llaman/dev/sda1,/dev/sda2, etc. - Las particiones de
/dev/nvme0n1se llaman/dev/nvme0n1p1,/dev/nvme0n1p2, etc.
MBR vs GPT
Sección titulada “MBR vs GPT"- MBR (Master Boot Record): Es el estándar antiguo. Limitado a un máximo de 4 particiones primarias y no soporta discos mayores de 2 Terabytes. Se almacena en el primer sector absoluto del disco.
- GPT (GUID Partition Table): Es el estándar moderno atado a motherboards UEFI. Permite hasta 128 particiones por defecto en Linux y soporta discos de tamaños masivos de Zettabytes. Contiene copias de seguridad de sí misma al final del disco para evitar corrupción.
2. Sistemas de Archivos (Filesystems)
Sección titulada “2. Sistemas de Archivos (Filesystems)"Pintar las “rayas de la pista” en un disco para que Linux sepa organizar carpetas requiere formatearlas con un sistema de archivos.
- ext4 (Fourth Extended Filesystem): Es el estándar tradicional de facto en la familia Debian y la mayoría de Linux. Es rápido, tiene excelente compatibilidad y es journaling (mantiene un registro (journal) de lo que va a escribir antes de hacerlo, para evitar corrupciones si hay un apagón).
- xfs: El estándar por defecto en la familia RHEL. Está ultra-optimizado para manejar archivos paralelamente y de tamaños gigantescos.
- btrfs y ZFS: Sistemas de próxima generación (Copy-on-Write) que gestionan el particionamiento y los archivos simultáneamente, permitiendo “snapshots” (fotografías del sistema en el tiempo) nativos sin herramientas extra.
3. Esquemas de Particionamiento Habituales
Sección titulada “3. Esquemas de Particionamiento Habituales"El instalador de distribuciones como Ubuntu o Debian suele preguntarte si quieres todo junto o separar /home. Aquí están los tres escenarios más comunes:
La opción más sencilla: todo en una sola partición raíz. Válida para VMs, entornos de prueba o equipos con poco espacio.
| Partición | Punto de montaje | Sistema de archivos | Tamaño orientativo |
|---|---|---|---|
/dev/sda1 | /boot/efi | FAT32 | 512 MB |
/dev/sda2 | [SWAP] | swap | RAM × 1-2 |
/dev/sda3 | / | ext4 | Todo el resto |
Directorio/ Todo el sistema en una sola partición
Directorioboot/
Directorioefi/
sda1— FAT32, 512 MB- …
Directoriohome/
sda3— mismo disco que el sistemaDirectoriousuario/
- …
Directoriovar/
Directoriolog/
- …
Directorioetc/
- …
Directoriotmp/
- …
La opción que típicamente te ofrece el instalador gráfico de Ubuntu. Separar /home permite reinstalar el sistema sin perder los datos del usuario.
| Partición | Punto de montaje | Sistema de archivos | Tamaño orientativo |
|---|---|---|---|
/dev/sda1 | /boot/efi | FAT32 | 512 MB |
/dev/sda2 | [SWAP] | swap | RAM × 1-2 |
/dev/sda3 | / | ext4 | 30–50 GB |
/dev/sda4 | /home | ext4 | Todo el resto |
Directorio/
sda3— ext4, 30-50 GBDirectorioboot/
Directorioefi/
sda1— FAT32, 512 MB- …
Directorioetc/
- …
Directoriovar/
Directoriolog/
- …
Directoriotmp/
- …
Directoriohome/
sda4— ext4, partición independienteDirectoriousuario/
Directoriodocumentos/
- …
Directorioproyectos/
- …
En entornos de servidor se aíslan /var y opcionalmente /tmp para evitar que logs o bases de datos descontrolados colapsen el sistema. Es el esquema recomendado para el LFCS.
| Partición | Punto de montaje | Sistema de archivos | Tamaño orientativo |
|---|---|---|---|
/dev/sda1 | /boot/efi | FAT32 | 512 MB |
/dev/sda2 | [SWAP] | swap | RAM × 1 |
/dev/sda3 | / | ext4 / xfs | 20–30 GB |
/dev/sda4 | /var | ext4 / xfs | 20–100 GB |
/dev/sda5 | /home | ext4 | Lo que quede |
Directorio/
sda3— ext4/xfs, 20-30 GBDirectorioboot/
Directorioefi/
sda1— FAT32, 512 MB- …
Directorioetc/
- …
Directoriotmp/
- …
Directoriovar/
sda4— ext4/xfs, 20-100 GBDirectoriolog/ Logs del sistema — pueden crecer sin límite
- …
Directoriolib/
Directoriopostgresql/
- …
Directoriomysql/
- …
Directoriowww/
Directoriohtml/
- …
Directoriohome/
sda5— ext4, espacio restanteDirectoriodeploy/
- …
Directorioadmin/
- …
4. El Proceso de Arranque (Desde Botón de Encendido a Servidor Activo)
Sección titulada “4. El Proceso de Arranque (Desde Botón de Encendido a Servidor Activo)"¿Qué pasa desde el segundo que enciendes la máquina de metal hasta que puedes escribir comandos?
graph TD
A[1. BIOS / UEFI] -->|POST & Hardware Init| B[2. Bootloader / GRUB2]
B -->|Selects OS| C[3. Linux Kernel]
C -->|Mounts Initramfs| D[4. Initramfs Temporary Root]
D -->|Loads Drivers| E[5. Real Root / Mounted]
E -->|Starts Init Process| F[6. systemd PID 1]
F -->|Parallel Execution| G[7. Targets & Login]
- Firmware (BIOS/UEFI): Inicializa el hardware rudimentario (CPU, memoria, teclado). Comprueba que nada está en cortocircuito (POST) y busca la partición
/boot/efipara encontrar el gestor de arranque. - Bootloader (GRUB2): Lee su configuración (
/boot/grub/grub.cfg) que dice dónde se encuentra físicamente el Kernel. Carga el Kernel y un archivo llamadoinitramfsen la memoria RAM, y le cede el control. - El Kernel (
vmlinuz): Autodetecta el hardware a bajo nivel. Comienza a gestionar la memoria. Es el cerebro absoluto. - Initramfs (Initial RAM Filesystem): El Kernel inicialmente no sabe cómo leer el disco duro real (
ext4, volúmenes LVM, o si está cifrado con contraseña). Elinitramfses un “mini-Linux” que se carga en la RAM que contiene solo los drivers (módulos) necesarios para saber leer el disco duro central de verdad. - Montaje de Raíz: Una vez superado el
initramfs, el sistema monta el disco de verdad en la raíz (/). - Init (
systemd): El Kernel ejecuta el primer programa real:/sbin/init(que en sistemas modernos es siempresystemd). Se le asigna el ID de Proceso 1 (PID 1). - Systemd Targets:
systemdlee su configuración e inicia servicios en paralelo para llegar a un “Target” objetivo. Por ejemplo, elmulti-user.targetpara servidores. Inicializa la red, SSH, monta bases de datos, y finalmente, muestra el Prompt de Login.
Comprueba tus conocimientos
Sección titulada “Comprueba tus conocimientos"-
Estás instalando Linux en un servidor con un disco NVMe ultra-rápido. ¿Bajo qué ruta y nombre de archivo lo buscarías típicamente en la terminal para particionarlo?
-
¿Cuál de las siguientes es una limitación histórica crítica del esquema de particiones MBR (Master Boot Record) que fue superada por GPT?
-
Durante el proceso de arranque de Linux, ¿qué pieza de software se encarga de cargar en RAM un “mini-Linux” temporal con los controladores justos para poder montar el disco duro real?