En Linux no hay “unidad C:” ni “unidad D:”: hay un solo árbol de carpetas que empieza en /, y
cada disco se monta en una carpeta de ese árbol. Lo que guardes en /srv/proyectos va al disco
que esté montado ahí; lo demás, al disco del sistema.
En este tema aprendes a ver cuánto sitio queda y qué lo ocupa, qué discos hay, a formatear y montar
uno nuevo, a hacer que se monte solo al arrancar y a leer una tarjeta sin tocarla. Los ejemplos son
de nas-estudio, el servidor de ficheros de una productora de vídeo, donde se mueven terabytes.
Cuánto sitio queda: df
df (disk free) enseña cada sistema de archivos montado: su tamaño, lo usado, lo disponible, el
porcentaje de uso y dónde está montado. Con -h, en unidades que se leen:
tecnico@nas-estudio:~$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 393M 1.1M 392M 1% /run /dev/sda2 62G 6.6G 52G 12% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 1.1G 6.0M 1.1G 1% /boot/efi /dev/sdb 3.6T 1.2T 2.3T 35% /srv/proyectos tmpfs 393M 4.0K 393M 1% /run/user/1000
Las líneas tmpfs están en la memoria, no en un disco (se vacían al apagar). Los discos de verdad
son /dev/sda2, el del sistema, montado en /; /dev/sda1, el arranque, y /dev/sdb, el de los
proyectos. Con una ruta, df -h /srv/proyectos dice solo en qué disco está esa carpeta y cómo va.
Un disco también se puede llenar de archivos aunque quede espacio: cada archivo gasta un
inodo, y hay un número fijo. df -i los enseña.
Ejercicio
Cuánto sitio queda: df
En la productora se mueven gigas cada día. Mira cuánto sitio queda en nas-estudio antes de que llegue el material de la próxima boda.
Preparando la máquina…
Qué ocupa el sitio: du
df dice cuánto queda; du (disk usage), qué lo ocupa. Suma lo que ocupa cada carpeta con
todo lo que tiene dentro. -s da solo el total; -h, legible; -d 1, un nivel de profundidad:
tecnico@nas-estudio:~$ sudo du -h -d 1 /srv/proyectos | sort -h 16K /srv/proyectos/lost+found 555G /srv/proyectos/anuncio-cafe 657G /srv/proyectos/boda-garcia 1.2T /srv/proyectos
sort -h ordena entendiendo las letras (K, M, G, T): lo grande, al final. Con sudo porque
lost+found (la carpeta donde ext4 deja lo que recupera tras un fallo) solo la lee root; sin él,
du avisa y cuenta lo demás.
Ejercicio
Qué ocupa el sitio: du
El disco de proyectos está más lleno de lo que parece. Averigua qué se lo come.
Preparando la máquina…
Qué discos hay: lsblk y blkid
lsblk lista los dispositivos de bloque (los discos y sus particiones), estén o no
formateados o montados. Es lo primero que se mira al conectar uno:
tecnico@nas-estudio:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 64G 0 disk ├─sda1 8:1 0 1G 0 part /boot/efi └─sda2 8:2 0 62.9G 0 part / sdb 8:16 0 3.6T 0 disk /srv/proyectos sdc 8:32 0 1.8T 0 disk sdd 8:48 0 931.3G 0 disk sde 8:64 1 29.7G 0 disk └─sde1 8:65 1 29.7G 0 part
Los discos se llaman sda, sdb, sdc… por orden, y sus particiones (trozos de un disco)
llevan un número: sda1, sda2. RM a 1 es extraíble (aquí, sde: la tarjeta de la cámara).
sdc no está montado en ningún sitio: es el disco nuevo. lsblk -f añade el sistema de archivos,
la etiqueta y el UUID; sudo blkid dice lo mismo, disco a disco:
tecnico@nas-estudio:~$ sudo blkid /dev/sdd /dev/sdd: LABEL="copias" UUID="dd1a90d1-dc1a-4f3e-bb1a-8dabda1a8c18" BLOCK_SIZE="4096" TYPE="ext4"
findmnt /srv/proyectos (o mount | grep proyectos) dice qué disco está montado en una carpeta y
con qué opciones.
Ejercicio
Qué discos hay: lsblk y blkid
Esta mañana han conectado discos nuevos a nas-estudio. Mira cuáles hay y qué tiene cada uno.
Preparando la máquina…
Un disco nuevo: mkfs y mount
Un disco recién sacado de la caja no tiene sistema de archivos: la estructura que organiza
carpetas y archivos. Se la da mkfs; en Ubuntu, ext4:
tecnico@nas-estudio:~$ sudo mkfs.ext4 /dev/sdc mke2fs 1.46.5 (30-Dec-2021) Discarding device blocks: done Creating filesystem with 488281250 4k blocks and 122077184 inodes Filesystem UUID: f49c8dad-f39c-4c1a-b29c-8a87f19c88f4 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
Formateado, se monta en una carpeta vacía (el punto de montaje), que hay que crear:
tecnico@nas-estudio:~$ sudo mkdir /srv/archivo
tecnico@nas-estudio:~$ sudo mount /dev/sdc /srv/archivo
tecnico@nas-estudio:~$ df -h /srv/archivo Filesystem Size Used Avail Use% Mounted on /dev/sdc 1.8T 24K 1.7T 1% /srv/archivo
Desde ahora, lo que se guarde en /srv/archivo va a sdc. sudo umount /srv/archivo (sin “n”:
umount) lo desmonta; si alguien lo está usando (una terminal dentro de la carpeta), dice
“target is busy”. Desmontado, el disco no pierde nada, pero su carpeta vuelve a ser la de antes,
vacía y en el disco del sistema: si una carpeta que debería tener datos sale vacía, df -h de esa
carpeta dice / en vez del disco.
Ejercicio
Un disco nuevo: mkfs y mount
El disco de 2 TB que acaba de llegar (sdc) será el archivo de proyectos entregados. Está sin formato: déjalo listo en /srv/archivo.
Preparando la máquina…
Que se monte al arrancar: /etc/fstab
Lo montado con mount se desmonta al apagar. Para que un disco se monte cada vez que arranca
el servidor, va en /etc/fstab: una línea por montaje, con seis campos: qué (el disco), dónde,
el tipo, las opciones, y dos números (copia con dump, casi siempre 0; y el orden de la
comprobación al arrancar: 1 la raíz, 2 los demás).
tecnico@nas-estudio:~$ tail -1 /etc/fstab UUID=c4c404e5-c3c4-4352-b2c4-01bfc1c4002c /srv/proyectos ext4 defaults 0 2
Una línea nueva se añade al final con tee -a (la -a es append; sin ella se borra el fstab
entero) y se prueba sin reiniciar con sudo mount -a, que monta todo lo de fstab que no esté
montado:
tecnico@nas-estudio:~$ echo "LABEL=copias /srv/copias ext4 defaults 0 2" | sudo tee -a /etc/fstab LABEL=copias /srv/copias ext4 defaults 0 2
tecnico@nas-estudio:~$ sudo mount -a
Si no dice nada, está bien; findmnt --verify también revisa fstab entero. Si una línea está mal,
mount -a lo dice (“parse error at line 12”, “can’t find UUID=…”): mejor saberlo ahora que en el
próximo arranque, cuando el servidor podría no levantar.
Las líneas que empiezan por # son comentarios: no cuentan. Comentar una línea quita ese
montaje sin borrarla; para devolverlo, se le quita el # y sudo mount -a.
Ejercicio
Que se monte al arrancar: /etc/fstab
El disco de las copias (sdd) ya tiene su sistema de archivos, pero no se monta al encender el servidor. Que lo haga, en /srv/copias.
Preparando la máquina…
Solo lectura: la tarjeta de la cámara
Hay discos que no se deben tocar: la tarjeta de un rodaje es el único original. Se monta con
-o ro (read-only): se lee y se copia, pero nada puede escribir en ella, ni por error:
tecnico@nas-estudio:~$ sudo mount -o ro /dev/sde1 /mnt/tarjeta
tecnico@nas-estudio:~$ touch /mnt/tarjeta/prueba touch: cannot touch '/mnt/tarjeta/prueba': Read-only file system
Sin -o ro, mount la monta con escritura: solo si hay que devolverle algo que le falte, y
después se vuelve a montar solo lectura.
Fíjate en que se monta la partición (sde1), no el disco entero (sde): el sistema de
archivos está en la partición. Copiado el material, se desmonta antes de sacarla (desde fuera de
la carpeta):
tecnico@nas-estudio:/mnt/tarjeta$ sudo umount /mnt/tarjeta umount: /mnt/tarjeta: target is busy.
Ejercicio
La tarjeta de la cámara: montar solo lectura
En el lector está la tarjeta del rodaje de ayer (sde). Copia sus vídeos a /srv/proyectos/ingesta sin arriesgarte a tocar el original.
Preparando la máquina…