Administración de servidores GNU/Linux

Clase 12: Discos, sistemas de archivos y montaje

Módulo 1 — Operación de Sistemas Operativos GNU/Linux

Temas de la clase 12

Objetivos de la clase

Al finalizar vas a poder:

  • Explicar qué es un disco, una partición y un sistema de archivos.
  • Ampliar una partición y su sistema de archivos.
  • Particionar, formatear y montar un disco nuevo.
  • Dejarlo montado al arrancar y probar /etc/fstab antes de reiniciar.
  • Distinguir un enlace duro de uno simbólico.

Lo que vimos en la clase 3

  • Los discos aparecen en /dev: /dev/sda, /dev/sda1.
  • MBR y GPT, la ESP, la swap y ext4.
  • Montar es colgar un sistema de archivos en un punto del árbol.

Hoy hacemos el recorrido completo:

disco  →  partición  →  sistema de archivos  →  montaje  →  fstab

Discos

Dónde se guardan los datos.

¿A qué llamamos disco?

Un dispositivo de almacenamiento que el sistema ve como una serie de bloques numerados, donde puede leer y escribir en cualquier posición.

  • Linux los llama dispositivos de bloques.
  • Los trata a todos igual: plato magnético, memoria flash o un archivo.

Discos físicos

Tipo Cómo es
HDD Platos que giran y un cabezal. Barato por GB, lento para saltar de un lugar a otro.
SSD SATA Memoria flash, sin partes móviles, por la interfaz SATA.
NVMe SSD conectado directo al bus PCIe. Mucho más rápido.
Flash Pendrives, tarjetas SD y eMMC soldada a la placa.

Discos virtuales

Para una VM, el disco es un archivo del anfitrión.

Formato De dónde viene
VDI VirtualBox
VMDK VMware (VirtualBox también lo usa)
VHD / VHDX Hyper-V
qcow2 KVM, QEMU, Proxmox
  • El sistema invitado lo ve como un disco más: VBOX HARDDISK.
  • Con tamaño dinámico, el archivo crece a medida que se usa.
  • Se le puede agregar capacidad.

Nombres en /dev

Disco Particiones Qué es
sda, sdb sda1, sda2 SATA, SAS, USB, discos de VirtualBox
nvme0n1 nvme0n1p1 NVMe
mmcblk0 mmcblk0p1 Tarjeta SD, eMMC
vda vda1 Disco virtio en KVM o Proxmox
sr0 Lectora de CD o DVD

El orden de las letras puede cambiar entre arranques.

lsblk

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  967M  0 part /boot/efi
├─sda2   8:2    0 18,1G  0 part /
└─sda3   8:3    0 1005M  0 part [SWAP]
sdb      8:16   0    2G  0 disk 
sr0     11:0    1 1024M  1 rom  
  • disk: el disco entero. part: una partición. rom: la lectora.
  • sdb es un disco nuevo: sin particiones y sin montar.

Particiones

Dividir el disco.

¿Qué es una partición?

Un tramo del disco con un comienzo y un fin, anotados en la tabla de particiones.

/dev/sda (20 GB)
┌───────────┬──────────────────────────┬────────────┐
│ sda1      │ sda2                     │ sda3       │
│ ESP 967M  │ /  18,1G                 │ swap 1005M │
└───────────┴──────────────────────────┴────────────┘

Una partición sola no guarda archivos: es lugar reservado. Necesita un sistema de archivos.

¿Para qué se divide un disco?

  • La ESP tiene que ser una partición propia para que UEFI arranque.
  • Separar sistema y datos: se reinstala sin tocar los datos, y si los datos llenan su lugar, el sistema sigue.
  • Cada partición puede tener otro sistema de archivos u otras opciones.
  • La swap puede ir en una partición propia.

Dónde empieza y termina cada partición queda anotado en la tabla de particiones: MBR o GPT, como vimos en la clase 3.

fdisk -l

sudo fdisk -l /dev/sda
Tipo de etiqueta de disco: gpt

Disposit.  Comienzo    Final Sectores Tamaño Tipo
/dev/sda1      2048  1982463  1980416   967M Sistema EFI
/dev/sda2   1982464 39882751 37900288  18,1G Sistema de ficheros de Linux
/dev/sda3  39882752 41940991  2058240  1005M Linux swap
  • «Etiqueta de disco» es el tipo de tabla.
  • Cada partición tiene comienzo, fin y tipo.
  • Sin sudo: orden no encontrada.

Sistemas de archivos

El orden dentro de la partición.

¿Qué es un sistema de archivos?

La organización que se arma dentro de la partición para guardar archivos con nombre. Lleva la cuenta de:

  • qué archivos y carpetas hay;
  • dueño, permisos, tamaño y fechas de cada uno;
  • en qué bloques están los datos;
  • qué bloques están libres.

Formatear es crear esa estructura vacía.

mkfs

sudo mkfs.ext4 /dev/sdb1
Creating filesystem with 523776 4k blocks and 131072 inodes
Filesystem UUID: 39d5b8e5-b934-46ef-95d8-e6c778027a96
Creating journal (8192 blocks): done
  • Bloques de 4 KiB y una cantidad fija de inodos.
  • Un UUID para identificarlo.
  • Un journal para recuperarse después de un corte.

Hay un mkfs por tipo: mkfs.ext4, mkfs.xfs, mkfs.vfat...

Sistemas de archivos en Linux

Sistema Dónde se usa Qué lo distingue
ext4 Debian, Ubuntu Conocido y simple. Se achica desmontado.
XFS Rocky, RHEL Archivos grandes. No se puede achicar.
Btrfs openSUSE, Fedora Instantáneas, subvolúmenes, compresión.
ZFS TrueNAS, Proxmox Volúmenes e integridad de datos. Fuera del kernel.
tmpfs /tmp, /run En RAM: se pierde al reiniciar.

FAT32, exFAT y NTFS

Sistema Uso típico Límite
FAT32 (vfat) ESP, pendrives viejos Archivos de hasta 4 GB
exFAT Pendrives y tarjetas grandes Sin límite de 4 GB
NTFS Discos de Windows Pensado para Windows
  • Linux los lee y escribe.
  • No guardan dueños ni permisos de Unix: no sirven para /.

lsblk -f y blkid

lsblk -f
sudo blkid
  • Muestran el tipo de sistema de archivos y el UUID.
  • El UUID lo escribe mkfs y viaja con el sistema de archivos.
  • sda, sdb pueden cambiar; el UUID no.

Por eso /etc/fstab usa UUID.

Particionado

Herramientas para crear, borrar y cambiar particiones.

fdisk

Crea la tabla de particiones y crea, borra y redimensiona particiones.

Orden Qué hace
p Muestra la tabla
g / o Tabla GPT / MBR nueva
n / d Crea / borra una partición
t Cambia el tipo
e Cambia el tamaño
w / q Escribe y sale / sale sin escribir

Nada se escribe en el disco hasta w.

parted y GParted

  • parted: lo mismo en una sola línea, útil en scripts. Escribe cada orden en el momento.
  • GParted: la versión gráfica. Se ven las particiones como una barra y se cambian con el mouse.
  • GParted Live: una ISO que arranca con GParted listo, para trabajar sobre el disco del sistema sin que esté en uso.

GParted

GParted con las particiones de un disco NVMe

Cada partición, con su sistema de archivos y su punto de montaje.

Ampliar una partición

  1. Agrandar el disco: el VDI, o el volumen en la nube.
  2. Agrandar la partición: el espacio libre tiene que estar justo detrás.
  3. Agrandar el sistema de archivos: resize2fs en ext4.

ext4 crece montado: se puede ampliar en caliente.

Lo haremos en el Lab.

Montaje

Colgar el sistema de archivos en el árbol.

mount y umount

Montar es asociar un sistema de archivos a un directorio, el punto de montaje. Lo explicamos en la clase 3.

sudo mkdir -p /srv/datos
sudo mount /dev/sdb1 /srv/datos
findmnt /srv/datos
sudo umount /srv/datos
  • El directorio tiene que existir.
  • Lo que había adentro queda tapado mientras dura el montaje.
  • umount lleva una sola n.

Permisos del disco nuevo

ls -ld /srv/datos
  • La raíz de un ext4 nuevo es de root, modo 755, con lost+found.
  • Los permisos se cambian con el disco montado.
  • Si se cambian antes, al montar se ven los de la raíz del disco.

target is busy

umount: /srv/datos: el destino está ocupado.
  • Algún proceso usa algo ahí. Alcanza con una terminal parada adentro.
  • Salir con cd y volver a probar.
  • fuser -vm /srv/datos muestra quién lo usa.

df y du

df -h
du -sh /var/log
sudo du -h --max-depth=1 /var | sort -h
  • df: ¿se está llenando el disco?
  • du: ¿qué lo está llenando?

/etc/fstab

Montar al arrancar.

¿Qué es /etc/fstab?

Un archivo de texto con la lista de sistemas de archivos que se montan al arrancar. El nombre viene de file systems table.

  • Una línea por montaje: qué, dónde, de qué tipo y con qué opciones.
  • Al arrancar, systemd lo lee y monta cada línea.
  • mount también lo consulta: sudo mount /srv/datos busca el resto de los datos ahí.

Si una línea está mal, el sistema puede no arrancar.

Lo que dejó el instalador

cat /etc/fstab
UUID=771f6e7f-...  /          ext4  errors=remount-ro  0  1
UUID=223E-B092     /boot/efi  vfat  umask=0077         0  1
UUID=bc71ad71-...  none       swap  sw                 0  0
/dev/sr0  /media/cdrom0  udf,iso9660  user,noauto  0  0

Cada línea es un montaje.

Los seis campos

UUID=39d5...7a96  /srv/datos  ext4  defaults,nofail  0  2
Campo Qué indica
UUID=... Qué montar
/srv/datos Dónde
ext4 Tipo
defaults,nofail Opciones, con coma y sin espacios
0 Respaldo con dump: siempre 0
2 Orden de fsck: 1 para /, 2 para el resto

nofail

  • Si el disco no está, el sistema arranca igual sin él.
  • Sin nofail, un disco de datos que falta frena el arranque.
  • Va en los discos de datos. Nunca en /.

Probar antes de reiniciar

sudo umount /srv/datos
sudo systemctl daemon-reload
sudo findmnt --verify
sudo mount -a
findmnt /srv/datos
Comprobación Detecta
findmnt --verify UUID inexistente, punto de montaje o tipo equivocado
mount -a Además, opciones mal escritas

Si fstab tiene un error

  • Sin nofail, el arranque espera el disco 90 segundos y entra en modo de emergencia.
  • En nuestra VM root no tiene contraseña:
You are in emergency mode. ...
No se puede dar acceso a la consola; la cuenta root está bloqueada.
  • La salida es arrancar desde GRUB. Queda como tarea opcional del laboratorio.

Inodos y enlaces

Varios nombres para un archivo.

¿Qué es un inodo?

El sistema de archivos guarda cada archivo en dos partes:

  • el contenido, en bloques del disco;
  • los datos sobre el archivo, en un registro numerado: el inodo.

El inodo guarda el tipo, el dueño, los permisos, el tamaño, las fechas, cuántos nombres tiene y en qué bloques está el contenido.

El nombre no está en el inodo.

¿Dónde está el nombre?

En el directorio: una lista de nombres, cada uno con su número de inodo.

directorio /srv/datos      inodo 13                 bloques
┌───────────────────┐      ┌───────────────────┐    ┌──────┐
│ lost+found  → 11  │      │ dueño: cristian   │    │ hola │
│ a.txt       → 13  │ ───► │ permisos: rw-rw-r │ ─► └──────┘
└───────────────────┘      │ tamaño: 5 bytes   │
                           │ nombres: 1        │
                           └───────────────────┘
  • Para abrir a.txt, el sistema busca el nombre en el directorio, toma el número y va al inodo.
  • Mover un archivo dentro del mismo disco solo cambia el renglón: por eso es instantáneo.

Ver el inodo

ls -i a.txt
stat a.txt
  Fichero: a.txt
  Tamaño: 5         	Bloques: 8          Bloque E/S: 4096   regular file
Device: 8,17	Inode: 13          Links: 1
Acceso: (0664/-rw-rw-r--)  Uid: ( 1000/cristian)   Gid: ( 1000/cristian)
Modificación: 2026-10-04 19:39:39.737755254 -0300
  • Inode: 13: el número. ls -i muestra solo eso.
  • Links: 1: cuántos nombres apuntan a este inodo.

Dos formas de dar otro nombre

  • Enlace duro (hard link): otro nombre en un directorio que apunta al mismo inodo. El archivo tiene dos nombres, y los dos valen lo mismo.
  • Enlace simbólico (symbolic link): un archivo aparte que guarda una ruta. Como un acceso directo.
duro:       a.txt ─┐
                   ├─► inodo 13 ─► datos
            b.txt ─┘

simbólico:  acceso.txt ─► "/srv/datos/a.txt" ─► a.txt ─► inodo 13

Hard link

ln a.txt b.txt
ls -li a.txt b.txt
13 -rw-rw-r-- 2 cristian cristian 5 oct  4 16:11 a.txt
13 -rw-rw-r-- 2 cristian cristian 5 oct  4 16:11 b.txt
  • Mismo inodo (13). El contador de nombres está en 2.
  • Si se borra a.txt, b.txt sigue.
  • rm borra un nombre. Los datos se liberan cuando no queda ninguno.

Límites del hard link

$ cd /srv/datos
$ ln a.txt ~/c.txt
ln: fallo al crear el enlace duro '/home/cristian/c.txt' => 'a.txt':
Enlace cruzado entre dispositivos no permitido
$ ln dd dd2
ln: dd: no se permiten enlaces fuertes para directorios
  • No cruza sistemas de archivos: el número de inodo vale dentro de cada uno.
  • No se hace sobre directorios.

Symbolic link

ln -s /srv/datos/a.txt ~/acceso.txt
ls -l ~/acceso.txt
lrwxrwxrwx 1 cristian cristian 16 oct  4 16:11 acceso.txt -> /srv/datos/a.txt
  • Tiene su propio inodo y guarda una ruta.
  • Cruza sistemas de archivos y puede apuntar a directorios.
  • Si se borra el destino, queda roto.

Un caso real: usr-merge

ls -l /
lrwxrwxrwx   1 root root     7 ago 27 12:05 bin -> usr/bin
lrwxrwxrwx   1 root root     7 ago 27 12:05 lib -> usr/lib
lrwxrwxrwx   1 root root     8 ago 27 12:05 sbin -> usr/sbin

Todo está en /usr. /bin y /sbin quedan como enlaces para que /bin/bash siga funcionando.

Hard link o symbolic link

Hard Symbolic
Qué es Otro nombre del mismo inodo Un archivo con una ruta
Entre sistemas de archivos No Sí
A directorios No Sí
Si se borra el original El contenido sigue Queda roto

Consultas

  • ¿Qué le falta a una partición recién creada para guardar archivos?
  • ¿Por qué fstab usa UUID y no /dev/sdb1?
  • Después de agrandar una partición, ¿por qué df puede seguir mostrando el tamaño viejo?
  • ¿Dónde está guardado el nombre de un archivo?
  • ¿Por qué un hard link no puede ir de /srv/datos a /home?

Resumen

disco  →  partición  →  sistema de archivos  →  montaje  →  fstab
  • Una partición necesita un sistema de archivos para guardar datos.
  • Ampliar: disco, partición y sistema de archivos, en ese orden.
  • En fstab: UUID y nofail para los discos de datos.
  • Antes de reiniciar: findmnt --verify y mount -a.
  • El inodo guarda todo del archivo menos el nombre.
  • Enlace duro: otro nombre del mismo inodo. Simbólico: una ruta.

Actividades prácticas y laboratorios

Actividad práctica — Laboratorios 11.1 y 11.2

Objetivo: ampliar la partición raíz de la VM y agregarle un disco de datos que se monte al arrancar.

  • 11.1: sacar la swap y ampliar / y su sistema de archivos en caliente.
  • 11.2: agregar un disco de 2 GB, particionarlo, formatearlo y montarlo, probar enlaces y dejarlo montado desde fstab. Opcional: recuperar un fstab roto desde GRUB.

Referencias

Volver al índice del curso