lpic/101/023_partizioni_filesystem.md

5.1 KiB

Introduzione

Su qualsiasi OS, un disco deve essere partizionato, prima di poter essere utilizzato. Una partizione e' un sottoinsieme logico di un disco fisico; le informazioni sulle partizioni sono archiviate in una tabella delle partizioni.

Su Linux, ogni partizione e' assegnata a una directory sotto /dev, come /dev/sda1.

MBR e GPT

Esistono due modi principali per memorizzare le informazioni sulle partizioni:

  • MBR (Master Boot Record)
  • GPT (Guid Partition Table)

MBR

La tabella delle partizioni é memorizzata nel primo settore di un disco, chiamato Boot Sector, insieme a un bootloader, solitamente GRUB. Ha diverse limitazioni:

  • incapacità di indirizzare dischi di dimensione superiore ai 2TB
  • un massimo di 4 partizioni primarie per disco
  • per rendere il disco avviabile, la prima partizione deve essere primaria

Un disco MBR puo' avere due tipi differenti di partizioni: primaria ed estesa. In Linux sono trattate ugualmente, per cui non ci sono vantaggi nell'uso dell'una piuttosto che dell'altra.

GPT

Risolve molti dei limiti di MBR. Non esiste un limite alla dimensione del disco e il numero massimo di partizioni dipende dal OS.

fdisk

L'utilità standard per la gestione delle partizioni. Esiste anche cfdisk.

fdisk -l /dev/sda

Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: CT500BX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E224383F-FD8C-4067-8F01-09A7965B7EFA

Device     Start       End   Sectors   Size Type
/dev/sda1   2048 976773119 976771072 465.8G Linux filesystem

dove:

  • Device: il dispositivo assegnato alla partizione
  • Start: il settore in cui inizia la partizione
  • End: il settore in cui termina la partizione
  • Sectors: il numero totale di settori della partizione
  • Size: la dimensione della partizione

gdisk

Utilità equivalente a fdisk e con comandi molto simili.

sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.10

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 937703088 sectors, 447.1 GiB
Model: KINGSTON SA400S3
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 2393AA2C-252F-46A4-AAB9-35EE402D3D71
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 2048, last usable sector is 937703054
Partitions will be aligned on 2048-sector boundaries
Total free space is 1679 sectors (839.5 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048       937701375   447.1 GiB   8300
  • Ogni disco ha un identificatore (GUI) univoco: si tratta di un numero esadecimale a 128 bit, assegnato casualmente quando viene creata la tabella delle partizioni
  • Un disco GPT puo' avere fino a 128 partizioni
  • Le partizioni GPT possono essere facilmente riordinare o riorganizzate, utilizzando il comando s
  • Rispetto a fdisk, durante la creazione delle partizione, é possibile specificare il tipo di partizione (Linux, Windows, ecc.)
  • Fornisce utilità per aiutare nel ripristino, accessibili col comando r
  • Con GPT, la dimensione di una partizione non é limitata dalla quantità massima di spazio contiguo non allocato.

Creare un file-system

Prima di utilizzare una partizione, occorre creare un file-system. Controlla il modo in cui i dati vengono archiviati e acceduti. Lo strumento standard utilizzato é mkfs.

ext2/ext3/ext4

L'extended file-system (ext) é stato il primo file-system per Linux e nel corso degli anni é stato sostituito da nuove versioni, chiamate ext2, ext3 e ext4.

Le utilità mkfs.ext2, mkfs.ext3 e mkfs.ext4 sono utilizzate per creare file-system ext2, ext3 e ext4. Queste utilità sono collegamenti simbolici a mke2fs.

Sintassi

mkfs.ext4 TARGET

mke2fs -t ext4 TARGET

dove TARGET é il nome della partizione. Alcuni dei parametri principali:

  • -L o Volume_Label: imposta un'etichetta
  • -n: simula la creazione del file-system
  • -q: modalità silenziosa
  • -c: controllo dei blocchi danneggiati prima di creare un file-system
  • -d (DIRECTORY): copia il contenuto della directory specificata nel nuovo file-system

FAT o VFAT

Il file-system FAT ha avuto origine con MS-DOS e negli anni ha ricevuto diverse versioni, culminate in FAT32, rilasciato nel 1996. VFAT é a estensione di FAT16 con supporto a nomi di file lunghi (fino a 255 caratteri). Entrambi sono gestiti da mkfs.fat.

FAT16 supporta volumi di massimo 4GB e file con una dimensione massima di 2GB. FAT32 aumenta la dimensione massima dei file a 4GB e dei dischi a 2 PB.

mkfs.fat TARGET

exFAT

É stato creato da Microsoft nel 2006, al fine di superare i limiti di FAT32: supporta file di dimensione massima di 16 exabyte e dischi di 128 petabyte. Ottima scelta per garantire l'interoperabilitá Linux-Windows. L'utilità predefinita é mkfs.exfat:

mkfs.exfat TARGET

Btrfs