Un sistema de fitxers (filesystem) és l’estructura que utilitza el sistema operatiu per organitzar, emmagatzemar i recuperar dades en un dispositiu d’emmagatzematge (disc dur, SSD, memòria USB, etc.).
La unitat mínima d’emmagatzematge en un disc. Típicament té una mida de 4 KB. Fins i tot un fitxer d’1 byte ocupa un bloc sencer.
Estructura de metadades que descriu un fitxer o directori. Conté:
rwxrwxrwx)UID / GID)L’inode no conté el nom del fitxer. El nom es guarda al directori, que associa noms a números d’inode.
Un directori és simplement un fitxer especial que conté una taula de parells nom → número d’inode.
Zona del sistema de fitxers que guarda la informació global: tipus de filesystem, mida dels blocs, nombre total d’inodes, nombre de blocs lliures, etc.
| Sistema | Característiques principals |
|---|---|
| ext4 | El més habitual a Linux. Journaling, suporta fitxers fins a 16 TB. |
| XFS | Alt rendiment amb fitxers grans. Usat a servidors (RHEL per defecte). |
| Btrfs | Funcions avançades: snapshots, compressió, RAID integrat. |
| tmpfs | En memòria RAM. Es perd en apagar. Usat per /tmp i /run. |
| proc / sysfs | Pseudosistemes de fitxers virtuals que exposen informació del kernel. |
| Sistema | Característiques principals |
|---|---|
| NTFS | El principal a Windows. Permisos, journaling, fitxers grans. |
| FAT32 | Compatible amb tot. Límit de 4 GB per fitxer. |
| exFAT | Llapis de memòria i targetes. Sense límit pràctic de mida. |
| Sistema | Característiques principals |
|---|---|
| APFS | Modern, snapshots, encriptació nativa, còpies en escriptura. |
| HFS+ | L’anterior a APFS, encara present en alguns discs. |
L’estàndard FHS (Filesystem Hierarchy Standard) defineix l’estructura de directoris:
/
├── bin/ → Ordres essencials del sistema (ls, cp, bash...)
├── boot/ → Kernel i fitxers d'arrencada (GRUB)
├── dev/ → Dispositius com a fitxers (/dev/sda, /dev/null...)
├── etc/ → Fitxers de configuració del sistema
├── home/ → Directoris personals dels usuaris
├── lib/ → Biblioteques compartides essencials
├── media/ → Punt de muntatge per a dispositius extraïbles
├── mnt/ → Muntatges temporals manuals
├── opt/ → Programari optatiu de tercers
├── proc/ → Informació del kernel i processos (virtual)
├── root/ → Directori personal del superusuari
├── run/ → Dades en temps d'execució (PID, sockets...)
├── srv/ → Dades de serveis (web, FTP...)
├── sys/ → Informació del maquinari (virtual)
├── tmp/ → Fitxers temporals (s'esborra en reiniciar)
├── usr/ → Programes i dades d'usuari (la majoria d'aplicacions)
└── var/ → Dades variables: logs, cues, bases de dades...A Linux, tots els sistemes de fitxers s’integren en un únic arbre. Per accedir a un dispositiu cal muntar-lo en un punt de muntatge.
mount /dev/sdb1 /mnt/usb # Munta la partició sdb1 a /mnt/usb
mount -t ext4 /dev/sdb1 /mnt/ # Especificant el tipus de filesystem
umount /mnt/usb # Desmunta
mount # Llista tots els sistemes muntats
lsblk # Mostra dispositius de bloc i muntatges
df -h # Espai usat i disponible (llegible per humans)Fitxer de configuració que defineix els muntatges automàtics en l’arrencada:
# Dispositiu Punt de muntatge Tipus Opcions dump pass
UUID=abc123... / ext4 defaults 0 1
UUID=def456... /home ext4 defaults 0 2
UUID=ghi789... swap swap sw 0 0
tmpfs /tmp tmpfs defaults,size=1G 0 0Cada fitxer té permisos per a tres actors: propietari, grup i resta.
-rwxr-xr-- 1 ramon users 4096 gen 10 12:00 script.sh
|| || |└┬┘
|| |└┬┘ └── Altres: r-- (lectura)
|└┬┘ └───── Grup: r-x (lectura + execució)
| └──────── Propietari: rwx (tot, lectura + escriptura + execució)
└────────── Tipus: - (fitxer regular), d (directori), l (enllaç)chmod 755 script.sh # rwxr-xr-x (octal)
chmod u+x script.sh # Afegeix execució al propietari
chmod go-w fitxer.txt # Treu escriptura a grup i altres
chown ramon fitxer.txt # Canvia el propietari
chown ramon:users fitxer.txt # Canvia propietari i grupApunta directament al mateix inode que el fitxer original. No es pot fer entre sistemes de fitxers ni sobre directoris.
ln original.txt enllaç_dur.txtÉs com una drecera: un fitxer especial que conté el camí al fitxer original.
ln -s /ruta/original.txt enllaç_simb.txt
ls -l enllaç_simb.txt
# lrwxrwxrwx 1 ramon users ... enllaç_simb.txt -> /ruta/original.txtstat fitxer.txt # Informació detallada (inode, permisos, temps...)
file fitxer.txt # Tipus de fitxer (text, binari, ELF...)
ls -li # Llista amb número d'inode
df -h # Espai lliure per partició
du -sh /home/ramon/ # Mida total d'un directori
lsblk # Dispositius de bloc i particions
blkid # UUID i tipus de cada particiómkfs.ext4 /dev/sdb1 # Formata com ext4
mkfs.xfs /dev/sdb1 # Formata com XFS
mkfs.vfat -F32 /dev/sdb1 # Formata com FAT32
fsck /dev/sdb1 # Comprova i repara errors
e2fsck -f /dev/sdb1 # Comprova ext2/3/4 en profunditat
tune2fs -l /dev/sda1 # Mostra paràmetres del superbloc (ext)El journaling és un mecanisme que registra els canvis pendents en un diari (journal) abans d’aplicar-los al disc. Si el sistema falla a mig escriure, el journal permet recuperar un estat coherent en la pròxima arrencada, sense fer una comprovació completa del disc.
Sistemes de fitxers amb journaling: ext3, ext4, XFS, NTFS.
Permeten limitar l’espai que pot usar cada usuari o grup.
quotacheck -cug /home # Inicialitza les quotes
edquota -u ramon # Edita les quotes de l'usuari ramon
repquota /home # Mostra l'ús actual de quotes| Concepte | Descripció breu |
|---|---|
| Inode | Metadades d’un fitxer (sense el nom) |
| Bloc | Unitat mínima d’emmagatzematge en disc |
| Superbloc | Informació global del sistema de fitxers |
| Muntatge | Integrar un dispositiu a l’arbre de directoris |
| Journaling | Registre de canvis per evitar corrupció |
| Hard link | Nom addicional per al mateix inode |
| Symlink | Drecera que apunta a un camí |
| FHS | Estàndard de l’estructura de directoris Linux |