mywiki/linux/filesystem/formatfs.md

201 lines
7.4 KiB
Markdown

# Formattare un device da terminale
## Identificare la periferica
Per identificare la periferica in questione si possono utilizzare diversi comandi:
```bash
sudo fdisk -l
sudo blkid
df
```
Ecco un esempio:
```bash
sudo blkid
[sudo] password di davide:
/dev/mapper/luks-44d72477-5d0f-4d0d-a54b-f721a7e5a320: UUID="cd370d97-dd7c-41d1-9b53-1504c89f64fd" TYPE="swap"
/dev/nvme0n1p1: UUID="487ce502-4541-488c-b07f-ea2ac4e91b9f" TYPE="crypto_LUKS" PARTUUID="0559b9a4-01"
/dev/nvme0n1p2: UUID="44d72477-5d0f-4d0d-a54b-f721a7e5a320" TYPE="crypto_LUKS" PARTUUID="0559b9a4-02"
/dev/mapper/luks-487ce502-4541-488c-b07f-ea2ac4e91b9f: UUID="ce884a78-4404-4ea9-b6e7-d543bfb38a41" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sda1: BLOCK_SIZE="2048" UUID="2022-12-17-13-13-38-00" LABEL="d-live nf 11.6.0 kd amd64" TYPE="iso9660" PTUUID="66641822" PTTYPE="dos" PARTUUID="66641822-01"
/dev/sda2: SEC_TYPE="msdos" UUID="DEB0-0001" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="66641822-02"
```
oppure
```bash
df
File system 1K-blocchi Usati Disponib. Uso% Montato su
udev 7084012 0 7084012 0% /dev
tmpfs 1426036 2380 1423656 1% /run
/dev/dm-0 446217344 113436124 310041144 27% /
tmpfs 7130160 6748 7123412 1% /dev/shm
tmpfs 5120 16 5104 1% /run/lock
tmpfs 1426032 164 1425868 1% /run/user/1000
/dev/sda1 3600960 3600960 0 100% /media/davide/d-live nf 11.6.0 kd amd64
```
La chiavetta USB è identificata in questo caso come `/dev/sda` (/dev/sda1 e /dev/sda2 sono le due partizioni).
Per il comando `blkid` e sull'uuid vedere [qui](./uuid.md)
## Partizionare un disco con fdisk
Il programma più comune per partizionare un disco utilizzando la shell è `fdisk`. Il comando fdisk chiederà di specificare come argomento il nome del disco fisso da partizionare:
```bash
fdisk /dev/hdb
```
Nell'elenco che segue sono riportati i comandi di utilizzo più comune:
```bash
m: visualizza l'help
p: visualizza la tabella corrente delle partizioni
d: cancella una partizione
n: crea una nuova partizione
w: scrive la tabella delle partizioni sul disco
t: imposta il tipo di filesystem previsto per la partizione
a: abilita/disabilita il flag che rende la partizione avviabile (boot flag)
l: visualizza l'elenco dei tipi di filesystem utilizzabili
q: chiude fdisk senza modificare il disco
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
```
fdisk supporta diversi schemi di partizionamento. `MBR` e `GPT` sono i due standard più popolari. GPT è uno standard più recente che consente molti vantaggi rispetto all'MBR.
I punti principali da considerare quando si sceglie quale standard di partizionamento usare:
- Utilizzare MBR per avviare il disco in modalità BIOS legacy;
- Utilizzare GPT per avviare il disco in modalità UEFI;
- Lo standard MBR supporta la creazione di una partizione del disco fino a 2 TiB. Altrimenti usare GPT;
- MBR ha un limite di 4 partizioni primarie, GPT fino a 128 partizioni
Premere `g` per creare una nuova tabella delle partizioni GPT:
L'output sarà simile al seguente:
```bash
Created a new GPT disklabel (GUID: 034596B2-1998-B241-BD8A-029063BDB87E).
```
Il prossimo passo sarà creare le nuove partizioni.
Premere `n` per creare una nuova partizione.
Verrà richiesto di inserire il numero di partizione. Premere [Invio] per utilizzare il valore predefinito (1):
```bash
Partition number (1-128, default 1): 1
```
Successivamente, il comando chiederà di specificare il primo settore. Generalmente si consiglia sempre di utilizzare i valori predefiniti. Premere [Invio] per utilizzare il valore predefinito (2048):
```bash
First sector (2048-500118158, default 2048):
```
Ora è necessario inserire l'ultimo settore. È possibile utilizzare un valore assoluto oppure un valore relativo al settore iniziale, utilizzando il simbolo + seguito dalla dimensione della partizione. La dimensione può essere specificata in kilobyte (K), megabytes (M), gigabytes (G), terabytes (T) o petabytes (P).
Ad esempio, per creare una partizione di 100 GB, digitare `+100G` e premere [Invio]:
```bash
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-500118158, default 500118158): +100G
Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.
```
Per impostazione predefinita, il tipo di partizione è impostato su *filesystem Linux*, che dovrebbe andare bene per la maggior parte dei casi. Se si desidera modificare il tipo, premere `l` per ottenere un elenco di tipi di partizione, quindi premere `t` per modificare il tipo.
Infine premere `w` per scrivere le modifiche.
## Formattazione della periferica
Smontare la chiavetta USB:
```bash
sudo umount /dev/sda
```
### NTFS
Smontata la chiavetta dal sistema, digitare:
```bash
mkfs.ntfs /dev/sda -v
```
### EXT4
```bash
mkfs.ext4 /dev/sda -v
```
Un esempio:
```bash
sudo mkfs.ext4 -L "DAVIDE4GB" /dev/sda -v
mke2fs 1.46.6 (1-Feb-2023)
fs_types for mke2fs.conf resolution: 'ext4'
/dev/sda contains a ext4 file system
last mounted on Sun Mar 19 12:18:08 2023
Proceed anyway? (y,N) y
Filesystem label=DAVIDE4GB
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
237104 inodes, 947456 blocks
47372 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=970981376
29 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Filesystem UUID: 62fd2424-ae9d-45f8-84d9-5a3b63020661
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
```
dove `-L` specifica il nome del filesystem, così che sia identificabile più facilmente. L'opzione `-v` indica *verbose*.
## Verificare la Formattazione
```bash
sudo fsck /dev/sda
sudo fsck /dev/sda
fsck da util-linux 2.38.1
e2fsck 1.46.6 (1-Feb-2023)
/dev/sda is mounted.
e2fsck: Cannot continue, aborting.
```
Oppure col comando:
```bash
sudo file -sL /dev/sda
```
Ora che le partizioni sono state create, il passaggio successivo consiste nel formattare le partizioni e montarle.
## Collegamenti
- [https://www.chimerarevo.com/guide/linux-formattare-pendrive-usb-terminale-411029/](https://www.chimerarevo.com/guide/linux-formattare-pendrive-usb-terminale-411029/)
- [https://phoenixnap.com/kb/linux-format-usb](https://phoenixnap.com/kb/linux-format-usb)
- [https://wiki.archlinux.org/title/File_systems](https://wiki.archlinux.org/title/File_systems)
- [https://linuxhandbook.com/mkfs-command/](https://linuxhandbook.com/mkfs-command/)
- [https://www.thegeekdiary.com/mkfs-ext4-command-examples-in-linux/](https://www.thegeekdiary.com/mkfs-ext4-command-examples-in-linux/)
- [https://guide.debianizzati.org/index.php/Guida_alla_formattazione_dei_dischi_con_fdisk](https://guide.debianizzati.org/index.php/Guida_alla_formattazione_dei_dischi_con_fdisk)
- [https://guide.debianizzati.org/index.php/Guida_ai_comandi_da_terminale_-_Gestione_del_File_System](https://guide.debianizzati.org/index.php/Guida_ai_comandi_da_terminale_-_Gestione_del_File_System)
- [https://noviello.it/come-creare-partizioni-con-fdisk-su-linux/](https://noviello.it/come-creare-partizioni-con-fdisk-su-linux/)