Commandes disques Linux

Petit billet sur les commandes utiles et le lexique concernant linux et les disques

MBR : Format de partition (BIOS Legacy) 2 T Max par partition / 4 partitions primaires MAX

GPT : Nouveau format de partition (BIOS UEFI)  Taille des partitions limités par l'OS / 128 partitions MAX

Superblock : Contient les informations du FS

FS journalisés : Assure l’intégrité des données en cas de panne / coupure (grâce au journal référençant les opérations d’écriture) NTFS, ext3, ext4, xfs sont des FS journalisés

Lister / découvrir les disques

Lister les disques branchés

udisksctl status

MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
Samsung SSD 850 EVO 1TB   EMT02B6Q  S2RFNX0J104659B      sda     
KINGSTON SUV400S37120G    0C3FD6SD  50026B776507FB40     sdb     
ST4000DM004-2CV104        0001      WFN0T5BY             sdc     
ATAPI   iHAS124   F       CL9M      3524728_2H8703502973 sr0     

Lister les disques branchés et montés

lsblk 

NAME                  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sdb                     8:16   0 111,8G  0 disk  
├─sdb4                  8:20   0 111,2G  0 part  
├─sdb2                  8:18   0   100M  0 part  
├─sdb3                  8:19   0    16M  0 part  
└─sdb1                  8:17   0   450M  0 part  
sr0                    11:0    1  1024M  0 rom   
sdc                     8:32   0   3,7T  0 disk  
└─sdc1                  8:33   0   3,7T  0 part  
sda                     8:0    0 931,5G  0 disk  
├─sda2                  8:2    0     1K  0 part  
├─sda5                  8:5    0   931G  0 part  
│ └─sda5_crypt        253:0    0   931G  0 crypt 
│   ├─mint--vg-root   253:1    0 899,1G  0 lvm   /
│   └─mint--vg-swap_1 253:2    0  31,9G  0 lvm   
│     └─cryptswap1    253:3    0  31,9G  0 crypt [SWAP]
└─sda1                  8:1    0   487M  0 part  /boot

Lister les UUID et format des FS des disques

blkid

/dev/sda1: UUID="c8e2c7e4-2451-4c32-a49f-687d9ae7e489" TYPE="ext4" PARTUUID="9341c34b-01"
/dev/sda5: UUID="0c485bf5-130d-47e9-84c4-03d8ff2c8bb5" TYPE="swap" PARTUUID="9341c34b-05"
/dev/sdc1: UUID="b69e632d-7c1e-4f3a-87d5-d46b673d9456" TYPE="xfs" PARTUUID="35106799-01"
/dev/sdb1: UUID="65f42c2c-2348-4abd-8899-675cb1e3d93b" TYPE="ext4" PARTUUID="88c20315-01"

Lister les FS et leurs tailles

df -Th

Sys. de fichiers Type     Taille Utilisé Dispo Uti% Monté sur
udev             devtmpfs   983M       0  983M   0% /dev
tmpfs            tmpfs      199M    3,1M  196M   2% /run
/dev/sda1        ext4        18G    4,1G   13G  25% /
tmpfs            tmpfs      994M       0  994M   0% /dev/shm
tmpfs            tmpfs      5,0M       0  5,0M   0% /run/lock
tmpfs            tmpfs      994M       0  994M   0% /sys/fs/cgroup
tmpfs            tmpfs      199M       0  199M   0% /run/user/1000
/dev/sdc1        xfs         25G     63M   25G   1% /XFS
/dev/sdb1        ext4        30G     44M   28G   1% /mnt

Commandes disque pour hyperviseur VMWare

Détecter les disques augmentés en taille ( VMware)

echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
echo 1 > /sys/class/scsi_device/0\:0\:1\:0/device/rescan
echo 1 > /sys/class/scsi_device/0\:0\:2\:0/device/rescan
....

Détecter les disques ajoutés (VMware)

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
....

Commandes de partitionnement

Sous Linux il est préférable d'utiliser LVM pour partitionner un disque, le LVM permet une utilisation à chaud beaucoup plus souple.

Sans LVM les partitions contiguë ne pourront être modifiée (exemple : si il y a 2 partitions, la première ne pourra être augmentée sans écraser une partie de la 2eme)

Partitionner un disque

fdisk /dev/sdb

n       (Créer nouvelle partition)
p       (Partition primaire)
1       (Numéro de partition)
2048 par defaut    (par défaut Début de la partition)
Dernier secteur    (par defaut Fin de la partition)
w       (Confirmer configuration)

Créer un FS

mkfs.exfat #Créer FS exfat
mkfs.ext2  #Créer FS ext2
mkfs.ext3  #Créer FS ext3
mkfs.ext4  #Créer FS ext4
mkfs.minix #Créer FS minix
mkfs.ntfs  #Créer FS ntfs
mkfs.xfs   #Créer FS xfs

mkfs.ext4 /dev/sdc1

#Pour installer d'autres FS
apt-get install ntfs-3g  #Installer ntfs
apt-get install exfat-fuse exfat-utils  #Installer exfat
....

Agrandir une partition Linux (Vieille méthode)

fdisk /dev/sdb

d   (Supprimer la partition)
n   (Créer nouvelle partition)
p   (primaire)
1       (Numéro de partition)
2048 par defaut    (par défaut Début de la partition)
Dernier secteur    (par defaut Fin de la partition)

Voulez-vous supprimer la signature ? [O]ui/[N]on : N
w       (Confirmer configuration)

partprobe   #Faire relire la table de partition au kernel sans reboot (Installer parted si outil absent)

Agrandir une partition Linux (Méthode propre)

parted /dev/sdb unit MB print free # Pour recuperer la partition
 
 
Model: VMware Virtual disk (scsi)
Disk /dev/sdc: 32208MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
 
Number  Start   End      Size     File system  Flags
 1      0,00MB  32208MB  32208MB  ext4


parted /dec/sdc1 resizepart 1 # Pour l'extension de la partition
 
Warning: Partition /dev/sdg1 is being used. Are you sure you want to continue?
Yes/No? Yes              # Utilisez Yes pour confirmer
End? [60052MB]? 100%     # Utilisez 100% ou -1s pour utiliser tout l'espace disponible

Redimensionner le FS (Format EXT2/EXT3/EXT4)

resize2fs /dev/sdb1

Le système de fichiers sur /dev/sdb1 a maintenant une taille de xxx blocs

Redimensionner le FS (Format XFS)

xfs_growfs /dev/sdc1

data blocks changed from xxxx to xxxx

Gestion du LVM

LVM permet la création et la gestion de volumes logiques sous Linux. L'utilisation de volumes logiques remplace en quelque sorte le partitionnement des disques.

C'est un système beaucoup plus souple, qui  permet par exemple de diminuer la taille d'un système de fichier pour  pouvoir en agrandir un autre, sans se préoccuper de leur emplacement sur  le disque.

Installer lvm

apt-get install lvm2

Créer un ensemble LVM

  • Créer le "volume physique" (pvcreate)
  • Créer le "volume groupe" (vgcreate)
  • Créer le "volume logique" (lvcreate)
  • Formatage du FS sur le volume logique (mkfs.)

pvcreate /dev/sdd  #Créer le PV

vgcreate VG-DATA /dev/sdd   #Créer le VG (Adaptez le nom du VG)

lvcreate -l +100%FREE -n LV-Data VG-DATA  #Créer le LV (Adaptez le nom du LV)

mkfs.ext4 /dev/VG-DATA/LV-Data #Créer le FS sur le LVM

Agrandir un volume logique LVM

pvresize /dev/sdd   #Agrandir le PV

lvextend -l +100%FREE /dev/VG-DATA/LV-Data  #Agrandir le LV

resize2fs /dev/VG-DATA/LV-Data #Resizer le FS

Quelques commandes utiles

####LVM####

pvdisplay #Afficher les PV
vgdisplay #Afficher les VG
lvdisplay #Afficher les LV

####Global####

e2fsck #Verifier un FS ext
tune2fs #Convertir un FS
findmnt #Afficher les points de montage complet (Disque, ram, ...)
fsck  #Vérifier un FS