Mise à jour : Debian / buster
Commandes principales pour identifier, partitionner, formater, sauvegarder, ... les partitions et systèmes de fichiers
Sommaire
Le risque de perte des données ne pouvant être écarté lorsque les partitions et systèmes de fichiers sont manipulés, il est important avant de démarrer l'opération
L'utilisation des unités puissance de 2 est recommandée pour le comptage des octets
Le tableau ci-dessous résume pour quelques commandes la notation des unités puissance de 2 en saisie et en affichage
Commande Saisie unité ^^2 Affichage unité ^^2
Notation Notation et option
parted KiB,MiB,GiB KiB,MiB,GiB avec option unit, par ex unit MiB
df - - - - - - KB, MB, GB avec option -B, par exemple -BMB
fdisk * K,M,G K, M, G par défaut
gdisk * K,M,G KiB,MiB,GiB par défaut
resizepart ** K, M, G **
* Certaines données sont affichées en secteur (512 octets)
** Les données sont affichées en block 4k = 4 x 1024
$ lsscsi -tss
[2:0:0:0] disk sata:50026b767a012c69 /dev/sda 447GiB
[3:0:0:0] disk usb:1-1.4:1.0 /dev/sdb 119GiB
[N:0:4:1] disk pcie 0x144d:0xa801 /dev/nvme0n1 232GiB
$ sudo parted /dev/sdb unit MiB print
$ sudo fdisk /dev/sdb -l
$ sudo blkid
$ lsblk -f
$ findmnt
$ findmnt /dev/sdb1
$ findmnt /mnt
$ df -BMB -T /dev/sdb1 # Affichage en Millions d'octets (puissance de deux)
$ df -BM -T /home # Affichage en Millions d'octets (puissance de 10)
$ sudo blkid /dev/sda -s PTTYPE # Type de partitionnement : dos, gpt, ...
$ sudo blkid /dev/sda -s PTUUID # Identifiant unique du système de partitionnement
ou bien
$ lsblk -l -o NAME,PTTYPE
$ lsblk -f -o NAME,PTUUID
$ sudo blkid -s PARTUUID # Identifiant unique de partition (GPT seulement)
$ sudo blkid -s PARTLABEL # Etiquette de partition (GPT seulement)
ou bien
$ lsblk -l -o NAME,PARTUUID
$ lsblk -l -o NAME,PARTLABEL
$ sudo blkid -s TYPE # Type de système de fichier : ext4,vfat,swap,crypto_LUKS,...
$ sudo blikd -s UUID # Identifiant unique de système de fichier
$ sudo blkid -s LABEL # Étiquette du système de fichier
ou bien
$ lsblk -l -o NAME,FSTYPE
$ lsblk -l -o NAME,UUID $ lsblk -l -o NAME,LABEL
$ lsblk -l -o NAME,PARTTYPE
La correspondance entre le code et le type de partition est indiquée dans le tableau ci-dessous
L Linux 0x83 for MBR 0FC63DAF-8483-4772-8E79-3D69D8477DE4 for GPT
S swap area 0x82 for MBR 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F for GPT
E extended partition 0x05 for MBR ------------------------------------
H home partition ----- 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 for GPT
X linux extended part 0x85 for MBR ------------------------------------
U EFI System partition 0xEF for MBR C12A7328-F81F-11D2-BA4B-00A0C93EC93B for GPT
R Linux RAID 0xFD for MBR A19D880F-05FC-4D3B-A006-743F0F84911E for GPT
V LVM 0x8E for MBR E6D6D379-F507-44C2-A23C-238F2A3DF928 for GPT
Les commandes de modification de sfdisk ci-dessous, sans paramètres de modification, permettent d'afficher la valeur courante
$ sudo sfdisk /dev/sdb1 --part-type <Type : voir ci-dessus>
$ sudo sfdisk /dev/sdb --part-label 1 <Etiquette>
$ sudo sfdisk /dev/sdb --part-uuid 1 $(uuidgen)
$ sudo e2fsck -f /dev/sdb1
$ sudo tune2fs /dev/sdb1 -U $(uuidgen)
$ sudo e2label /dev/sdb1 <étiquette> # cas d'un système de fichier ext4
$ sudo dosfslabel /dev/sdb1 <étiquette> # cas d'un système de fichier fat32
$ sudo ntfslabel /dev/sdb1 <étiquette> # cas d'un système de fichier NTFS
$ sudo sfdisk /dev/sdb -r
$ sudo parted /dev/sdb mktable msdos
$ sudo parted /dev/sdb mkpart primary fat32 1MiB 100%
$ sudo mkfs.vfat -F32 -n MA_CLE-FAT /dev/sdb1
$ sudo mount /dev/sdb1 /mnt
$ sudo mount -o uid=1000,gid=1000 /dev/sdb1 /mnt
$ mkdir /home/<user>/MA_CLE-FAT
$ cat /etc/fstab |grep MA_CLE-FAT
# Partition MA_CLE-FAT
LABEL=MA_CLE_FAT /home<user>MA_CLE-FAT vfat user 0 2
$ mount MA_CLE_FAT
$ sudo parted /dev/sdb mktable msdos
$ sudo parted /dev/sdb mkpart primary ext2 1MiB 100%
$ sudo mkfs.ext4 -L MA_CLE-EXT /dev/sdb1
$ sudo mount /dev/sdb1 /mnt
$ sudo chown <nom_utilisateur>:<nom_utilisateur> /mnt
$ mkdir /home/<user>/MA_CLE-EXT
$ cat /etc/fstab |grep MA_CLE-EXT
# Partition MA_CLE-EXT
LABEL=MA_CLE-EXT /home<user>MA_CLE-EXT ext4 user 0 2
$ mount MA_CLE-EXT
$ sudo parted /dev/sdb mktable msdos
$ sudo parted /dev/sdb mkpart primary ext2 1MiB 100%
$ sudo shred -n1 -v /dev/sdb1
$ sudo cryptsetup luksFormat /dev/sdb1
$ sudo cryptsetup open /dev/sdb1 SECRET
$ sudo mkfs.ext4 /dev/mapper/SECRET -L secret
$ sudo cryptsetup open /dev/sdb1 SECRET
$ sudo mount /dev/mapper/SECRET /mnt
$ sudo chown <nom_utilisateur>:<nom_utilisateur> /mnt
$ sudo umount /mnt
$ sudo crypstetup close SECRET
$ cat /etc/crypttab |grep SECRET
# SECRET
SECRET /dev/sdb1 none luks discard
$ mkdir /home/<user>/SECRET
$ cat /etc/fstab |grep SECRET
/dev/mapper/SECRET /home/<user>/SECRET ext4 user 0 2
Note : à la place de l'identifiant /dev/mapper/xxx, on peut utiliser l'étiquette ou l'identifiant unique LABEL= ou UUID= , fourni par
$ sudo blkid /dev/mapper/SECRET
$ sudo umount SECRET
S sudo cryptsetup close SECRET
$ sudo cryptdisks_start SECRET
$ sudo mount SECRET
$ sudo parted /dev/sdb mktable gpt
$ sudo parted /dev/sdb mkpart primary fat32 1MiB 512MiB set 1 esp on
$ sudo mkfs.vfat -F32 /dev/sdb1 -n ESP
$ sudo parted /dev/sdb mkpart primary linux-swap 512MiB 4GiB
$ sudo mkswap /dev/sdb2 -L SWAP
$ sudo parted /dev/sdb mkpart primary ext2 4GiB 6GiB
$ sudo mkfs.ext4 -L ROOT /dev/sdb3
$ sudo parted /dev/sdb mkpart primary ext2 6GiB 100%
$ sudo mkfs.ext4 -L HOME /dev/sdb4
Table de partition standard
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# Partition ESP
LABEL=ESP /boot/efi vfat umask=0077 0 2
# Partition SWAP
LABEL=SWAP none swap sw,discard 0 0
# Partition système
LABEL=ROOT / ext4 defaults 0 1
# Partition HOME
LABEL=HOME /home ext4 defaults 0 2
# Lecteur - Graveur CD/DVD
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
Note : à la place de l'identification par LABEL (LABEL="xxxxxx", on peut également utiliser) du système de fichier
- l'identification par block : /dev/sdbx
- l'identification par UUID: UUID="xxxxx"
et dans le cas d'un partitionnement GPT
- l'identification par PARTUUID : PARTUUID="xxxxx"
- l'identification par PARTLABEL : PARTLABEL="xxxx"
$ sudo mount -a
$ sudo umount -a
$ sudo parted /dev/sdb mktable gpt
$ sudo parted /dev/sdb mkpart ESP fat32 1MiB 512MiB set 1 esp on
$ sudo mkfs.vfat -F32 /dev/sdb1 -n ESP
$ cat /etc/fstab |grep ESP
# Partition ESP
LABEL=ESP /boot/efi vfat umask=0077 0 2
$ sudo parted /dev/sdb mkpart BOOT ext4 512MiB 1GiB
$ sudo mkfs.ext4 -L BOOT /dev/sdb2
$ cat /etc/fstab |grep BOOT
# Partition BOOT
LABEL=BOOT /boot ext4 defaults 0 2
$ sudo mkdir /etc/keys
$ sudo dd if=/dev/urandom of=/etc/keys/swapkey bs=512 count=4
$ sudo chmod 600 /etc/keys/swapkey
$ sudo parted /dev/sdb mkpart SWAP linux-swap 512MiB 4GiB
$ sudo shred -n1 -v /dev/sdb3
$ sudo cryptsetup luksFormat /dev/sdb3 /etc/keys/swapkey
$ sudo cryptsetup open /dev/sdb3 SWAP --key-file /etc/keys/swapfile
$ sudo mkswap /dev/mapper/SWAP -L SWAP
$ cat /etc/crypttab |grep SWAP
SWAP /dev/sdb3 /etc/keys/swapkey luks,discard
Note : A la place de /dev/sdb3, on peut utiliser, pour la partition correspondante UUID= ou PARTUUID=, ou PARTLABEL= , obtenus avec
$ sudo blkid /dev/sdb3 -s UUID
$ sudo blkid /dev/sdb3 -s PARTUUID
$ sudo blkid /dev/sdb3 -s PARTLABEL
$ cat /etc/fstab |grep SWAP
/dev/mapper/SWAP none swap sw,discard 0 0
$ sudo parted /dev/sdb mkpart ROOT ext2 4GiB 6GiB
$ sudo shred -n1 -v /dev/sdb4
$ sudo cryptsetup luksFormat /dev/sdb4
$ sudo cryptsetup open /dev/sdb4 ROOT
$ sudo mkfs.ext4 /dev/mapper/ROOT -L ROOT
$ cat /etc/crypttab |grep ROOT
ROOT /dev/sdb4 none luks,discard
Note : A la place de /dev/sdb4, on peut utiliser, pour la partition correspondante UUID= ou PARTUUID=, ou PARTLABEL= , obtenus avec
$ sudo blkid /dev/sdb4 -s UUID
$ sudo blkid /dev/sdb4 -s PARTUUID
$ sudo blkid /dev/sdb4 -s PARTLABEL
$ cat /etc/fstab |grep ROOT
/dev/mapper/ROOT / ext4 errors=remount-ro 0 1
$ sudo mkdir /etc/keys
$ sudo dd if=/dev/urandom of=/etc/keys/keyhome bs=512 count=4
$ sudo chmod 600 /etc/keys/keyhome
$ sudo parted /dev/sdb mkpart HOME ext2 6GiB 100%
$ sudo shred -n1 -v /dev/sdb5
$ sudo cryptsetup luksFormat /dev/sdb5 /etc/keys/keyhome
$ sudo cryptsetup open /dev/sdb5 HOME --key-file /etc/keys/keyhome
$ sudo mkfs.ext4 /dev/mapper/HOME -L HOME
$ cat /etc/crypttab |grep HOME
HOME /dev/sdb5 /etc/keys/keyhome luks,discard
$ cat /etc/fstab |grep HOME
/dev/mapper/HOME / ext4 defaults 0 2
$ sudo cryptdisks_start {ROOT,SWAP,HOME}
$ sudo cryptdisks_start {ROOT,SWAP,HOME}
Note : le verrouillage ne peut avoir lieu que pour les systèmes de fichier non occupés (utiliser swapoff -a pour le swap)
$ sudo mount -a
$ sudo umount -a
Note : le montage ne peut avoir lieu que si les partitions chiffrées sont déverrouillées
$ sudo hdparm -t /dev/sdb
$ dd if=/dev/zero of=test bs=1M count=4000 conv=fdatasync
$ rm test
$ sudo wipefs -af /dev/sdb
$ sudo dd if=/dev/zero of=/dev/sdb status=progress conv=fsync
$ sudo dd if=/dev/unrandom of=/dev/sdb status=progress conv=fsync
$ sudo shred -vz /dev/sdb
$ sudo fsck -f /dev/sdb1
$ sudo testdisk /dev/sdb
$ sudo photorec /dev/sdb1
$ sudo mount /dev/sdb1 /mnt
$ sudo rsync -av test /mnt
$ ls /mnt
test
$ sudo rsync -av test/ /mnt/
$ ls /mnt
randoma randomc randome randomg randomi randomk randomm randomo randomq randoms randomu randomw randomy
randomb randomd randomf randomh randomj randoml randomn randomp randomr randomt randomv randomx randomz
Synchronisation de la racine avec exclusion et suppression des répertoires présents dans --exclude
$ sudo rsync -aAXv --delete-excluded \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*"} \
/ /mnt/
Synchronisation du répertoire home, avec exclusion et suppression des répertoires et fichiers présents dans --filter
$ sudo rsync -av --delete-excluded \
--filter={"- Trash/","- lost+found/","- *.tmp","- .thumbnails/"} \
/home/ /mnt/
--dry-run
Option pour le suivi de l'avancement
--progress
Recopie de la partition ext4 /dev/sdb1 dans la partition /dev/sdb2 (taille au moins égale à la partition /dev/sdb1), les deux partition doivent être démontées
$ sudo partclone.ext4 -b -d -s /dev/sdb1 -o /dev/sdb2
$ sudo partclone.ext4 -c -d -s /dev/sdb1 -o clone.img
La partition /dev/sdb2 doit-être disponible, non montée et de taille égale ou supérieure à la partition d'origine ayant servi à créer l'image
$ sudo partclone.ext4 -r -d -s clone.img -o /dev/sdb2
$ sudo lsof +D /mnt
$ sudo fuser -v -m /mnt
$ sudo fuser -k -i /mnt