partizionamento e creazione di filesystem

This commit is contained in:
dado 2025-01-13 20:50:58 +01:00
parent 7d3449d95c
commit 4de06bfcfc
3 changed files with 135 additions and 57 deletions

View File

@ -1,50 +0,0 @@
Su qualsiasi OS, un disco deve essere *partizionato* prima di poter essere utilizzato. Una **partizione** é un sottoinsieme logico del disco fisico. Le informazioni sulle partizioni sono archiviate in una *tabella delle partizioni*.
## 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.
```bash
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

View File

@ -1,7 +0,0 @@
## 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`.

View File

@ -0,0 +1,135 @@
## 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`.
```bash
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.
```bash
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
```bash
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.
```bash
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`:
```bash
mkfs.exfat TARGET
```
### Btrfs