Dispositivos, Sistemas de Archivos y FHS
Domina la gestión de discos, particiones, permisos, enlaces y la jerarquía de directorios en Linux.
104.1 Creación de particiones y sistemas de archivos
Antes de usar un disco en Linux, debe estar particionado. Una partición es una división lógica del disco físico. En Linux, las particiones se identifican como /dev/sda1, /dev/sda2, etc.
MBR y GPT
Existen dos tipos principales de tablas de particiones:
- MBR (Master Boot Record): Almacena la tabla en el primer sector del disco (sector de arranque), donde Linux instala GRUB.
- Limitado a 2.2 TB por partición (direccionamiento 32 bits).
- Máximo 4 particiones primarias. - GPT (GUID Partition Table): Soluciona las limitaciones de MBR.
- Soporta tamaños de hasta 9.4 zettabytes (direccionamiento 64 bits).
- Permite hasta 128 particiones por defecto.
Herramientas de particionado
- fdisk (para MBR):
fdisk /dev/sda.
Opciones:p(muestra tabla),n(nueva),F(espacio libre),d(eliminar),t(cambiar tipo). - gdisk (para GPT):
gdisk /dev/sda.
Opciones adicionales:s(reorganizar número),r(menú recuperación/convertir). - parted:
parted /dev/sda.
Comandos:select,print,mklabel msdos/gpt,mkpart,resizepart,rm,rescue.
En /etc/fstab, es mejor usar LABEL o UUID (visto con lsblk -f o blkid) que nombres de dispositivo.
Creación de sistemas de archivos
Después de crear una partición, se debe formatear. Si se ejecuta mkfs sin opciones, por defecto crea ext2.
- ext (ext2, ext3, ext4):
mkfs.ext4 /dev/sda1omke2fs -t ext4 /dev/sda1.
Opciones:-t(tipo),-c(verifica),-L etiqueta,-v(detallado),-n(simula).
- Por defecto, ext4 reserva el 5% del espacio para root (evita llenado total). Se cambia contune2fs -m 2 /dev/sda1.
-tune2fs -i 200 /dev/sda1: Intervalo de 200 días entre verificaciones forzadas. - xfs:
mkfs.xfs /dev/sda1. Opciones:-N(simula),-l logdev=/dev/sda2.
- Para corregir inconsistencias:xfs_repair /dev/sda3(debe estar desmontado). - FAT/vFAT:
mkfs.vfat -F 32 /dev/sda1. - btrfs:
mkfs.btrfs /dev/sda1.
- Múltiples discos:mkfs.btrfs -d single -m single /dev/sda /dev/sdb.
- Subvolúmenes:btrfs subvolume create /mnt/disco/BKUP.
- Montar subvolúmenes:mount -t btrfs -o subvol=BKUP /dev/sda1 /mnt/backup.
- Snapshots:btrfs subvolume snapshot /mnt/BKUP /home/sysriser(usa-rpara solo lectura).
SWAP (Intercambio)
El tipo de partición swap en MBR es 82 (Linux swap).
- Partición:
1.mkswap /dev/sda2
2.swapon /dev/sda2(desactivar conswapoff). - Archivo:
1.dd if=/dev/zero of=/swapfile bs=1M count=1024(1GB).
2.mkswap /swapfile.
3.swapon /swapfile.
Ver swap activo con swapon -s o solo swapon.
104.2 Mantener la integridad de los sistemas de archivos
Comprobación del uso del disco (du)
Muestra el tamaño de archivos y directorios.
- Opciones:
-h(legible),-a(todos),-S(sin subdirs),-c(total),-dX(profundidad).
root@zero:~# du -hc 4,0K ./.ssh 76K . 76K total
Comprobación de espacio libre (df)
Muestra el espacio libre en los sistemas de archivos montados.
- Opciones:
-h(legible),-x tipo(excluye),-t tipo(filtra),-T(muestra tipo),--output=campo.
root@zero:~# df -hT S.ficheros Tipo Tamaño Usados Disp Uso% Montado en /dev/mapper/... ext4 48G 3,4G 42G 8% /
Mantenimiento de ext2/3/4
fsck/e2fsck: Verifica y repara. Desmontar primero.
--A: Chequea todos en/etc/fstab.
--R: Con-A, ignora raíz.
--p: Repara auto.
--y: Sí a todo.
--C: Barra progreso.tune2fs: Modifica parámetros.
--l: Muestra parámetros.
--c N: Montajes antes de chequear.
--i N: Intervalo días (ej.1m).
--L etiqueta: Etiqueta.
--j: Añade journal (ext2 a ext3).
--e comportamiento: Acción ante errores (continue,remount-ro,panic).
Mantenimiento de XFS
xfs_repair: Repara XFS.
--n: Simula.
--d: Repara montado (peligroso).xfs_db: Depura/analiza.xfs_fsr: Desfragmenta.
104.3 Controlar el montaje y desmontaje de sistemas de archivos
Montar y desmontar
mount:mount -t tipo dispositivo punto.
Opciones:-a(todo fstab),-o ro/rw,-o remount.umount:umount puntoo dispositivo.
Opciones:-a,-f(forzar),-r(solo lectura si falla).
Usarlsof /dev/sda1para ver qué lo bloquea.- Buenas prácticas:
/mnt(manual),/media(automático).
Montaje en el arranque (/etc/fstab)
Define 6 campos: dispositivo, punto_montaje, tipo, opciones, volcado, orden_fsck.
- Opciones comunes:
-defaults: Incluyerw, suid, dev, exec, auto, nouser, async.
-atime/noatime: Actualiza tiempo acceso.
-auto/noauto: Monte automático.
-dev/nodev: Interpretar dispositivos.
-exec/noexec: Ejecutar binarios.
-user/nouser: Permitir monte usuario.
-suid/nosuid: Permisos especiales.
-sync/async: Síncrono/Asíncrono.
UUID y Etiquetas
Evita problemas si cambia el nombre del dispositivo.
- Ver UUID:
lsblk -foblkid. - Configurar fstab:
UUID=1234-5678 /mnt/datos xfs defaults 0 2.
Montaje con systemd
Unidades .mount y .automount en /etc/systemd/system. El archivo debe llamarse según la ruta (ej. mnt-disco.mount).
[Unit]
Description=Montaje de prueba
[Mount]
What=/dev/disk/by-uuid/1234-5678
Where=/mnt/disco
Type=xfs
Options=defaults
[Install]
WantedBy=multi-user.target
Activar con systemctl daemon-reload, systemctl start mnt-disco.mount, systemctl enable mnt-disco.mount.
104.5 Administrar permisos y propietarios de archivos
Consultar información
ls -l: Muestra tipo, permisos, enlaces, propietario, grupo, tamaño, fecha, nombre.ls -ld: Info del directorio (evita listar contenido).ls -a: Archivos ocultos (ej..bashrc).
stat muestra info detallada e inodo.
Tipos de archivos
-: Regular.d: Directorio.l: Enlace simbólico.b: Bloques.c: Caracteres.s: Socket.
Comprensión de permisos
Categorías: Usuario, Grupo, Otros.
- Tipos:
r(4 lectura),w(2 escritura),x(1 ejecución/entrar). chmod(recursivo-R):
- Numérico:chmod 644 archivo(rw-r--r--).
- Simbólico:chmod u+x script.sh(u=user, g=group, o=other; +, -, =).
El valor umask 0027 asegura que nuevos directorios sean rwxr-x--- y archivos rw-r-----.
Propietarios y grupos
chown usuario:grupo archivo: Cambia ambos. Recursivo-R.chgrp grupo archivo: Cambia grupo. Recursivo-R.groups usuario: Muestra grupos del usuario.
Permisos predeterminados (umask)
Resta valores de 666 (archivos) o 777 (directorios).
- Ver valor:
umask. - Simbólico:
umask -S(ej.u=rwx,g=rx,o=rx). - Ejemplo:
umask 022-> Archivos 644, Directorios 755.
Permisos especiales
| Permiso | Valor | Descripción |
|---|---|---|
| SUID | 4 | Ejecuta con permisos del propietario. Se usa en passwd. Muestra s en usuario (rwsr-xr-x). Comando: chmod 4755 archivo. |
| SGID | 2 | Ejecuta con permisos del grupo. En directorios, los nuevos archivos heredan el grupo. Muestra s en grupo (rwxr-sr-x). Comando: chmod 2755 archivo. |
| Sticky bit | 1 | En directorios, evita borrar archivos de otros (ej: /tmp). Muestra t en otros (rwxrwxrwt). Comando: chmod 1755 directorio. |
Para que nuevos archivos en un directorio sean del grupo "sales", usa SGID: chmod g+s sales.
104.6 Crear y cambiar enlaces duros y simbólicos
Tipos de enlaces
- Enlaces duros:
- Apuntan al mismo inodo (identificador único de datos).
- Si se borra el original, el enlace duro sigue funcionando (datos persisten mientras haya un enlace).
- Solo dentro del mismo sistema de archivos.
- Incrementan contador de enlaces. - Enlaces simbólicos:
- Atajo que apunta a la ruta.
- Si se borra el original, el enlace se rompe ("dangling").
- Pueden cruzar sistemas de archivos.
- No afectan contador de enlaces.
Gestión (ln)
- Duro:
ln archivo enlace_duro. Verificar conls -li(mismo inodo). - Simbólico:
ln -s archivo enlace_simbolico. Verificar conls -lh(muestra-> destino).
$ ls -li
12345 -rw-r--r-- 2 user user 1024 Apr 27 12:00 archivo.txt
12345 -rw-r--r-- 2 user user 1024 Apr 27 12:00 enlace_duro.txt
lrwxrwxrwx 1 user user 10 Apr 27 12:00 enlace_simb.txt -> archivo.txt
Al crear un enlace duro, solo cambia el contador de enlaces; permisos y propietario son idénticos en todos los enlaces.
104.7 Encontrar archivos de sistema y FHS
FHS (Jerarquía del Sistema de Archivos)
- /: Raíz.
- /bin: Binarios esenciales.
- /boot: Archivos arranque (kernel, GRUB).
- /dev: Dispositivos físicos/virtuales.
- /etc: Configuración específica del sistema.
- /home: Perfiles de usuario.
- /lib: Librerías para /bin y /sbin.
- /media: Medios extraíbles montados por usuario.
- /mnt: Montaje temporal.
- /opt: Paquetes software de aplicaciones.
- /root: Home del superusuario.
- /run: Datos temporales (se borran al reinicio).
- /sbin: Binarios esenciales para admin.
- /usr: Datos usuario solo lectura (/usr/bin, /usr/sbin, /usr/lib).
- /proc: Virtual, datos procesos.
- /var: Datos variables (logs, servicios).
Ubicaciones clave: Manuales en /usr/share/man/, binarios admin en /usr/local/bin/, cmdline kernel en /proc/cmdline.
Temporales: /tmp (se borra reinicio), /var/tmp (persiste), /run (se borra reinicio).
Buscar archivos (find)
Búsqueda en tiempo real.
- Por atributos:
-user usuario,-group grupo,-readable/-writable/-executable,-empty,-perm NNN,-size N(ej:+100M),-maxdepth N. - Por tiempo:
-amin/-cmin/-mmin(minutos),-atime/-ctime/-mtime(días). - xargs: Usar
-print0para nombres con espacios.
Buscar archivos (locate)
Usa base de datos (/var/lib/mlocate.db), actualizada con updatedb.
- Opciones:
-i(ignora mayúsculas),-A(varios patrones),-c(cuenta). - Config:
/etc/updatedb.conf(variablesPRUNEFS,PRUNENAMES,PRUNEPATHS).
Binarios
which: Ruta completa (-atodas).type: Info comando (-tsolo tipo).whereis: Binario, manual y fuente (-bbinario,-mmanual).
Otros
file: Determina tipo archivo usando DB definiciones.watch: Ejecuta comando periódicamente.