Redimensionner une partition

Rédigé par Alexandre le 2023-02-07

#linux #outils

Maintenant que j'ai du matériel un peu plus costaud pour mon NAS sous TrueNAS Scale, je me suis remis à jouer avec les machines virtuelles. Parmis mes besoins, un serveur de sauvegarde basé sur BorgBackup, le bien nommé borgwarehouse.

Les solutions de sauvegarde sont toutes relativement gourmandes en termes d'espace disque et c'est pourquoi j'ai eu à redimmensionner le disque contenant les données.

A travers ce court article, je vais détailler les étapes que j'ai réalisé pour passer d'un espace de 1 Go à 2 Go pour un disque secondaire (ne contenant pas le rootfs).

Pré-requis

En introduction, je parle de disque secondaire pour la simple raison qu'il n'est pas possible d'effectuer les étapes de cet article sur un disque système en cours d'utilisation. Au niveau des outils nécessaire, sur Debian je n'ai eu qu'a installé growpart via cette commande :

$ sudo apt install cloud-guest-utils

Comme j'utilise de plus en plus NixOS, voici l'équivalent, mais cette fois en installation temporaire:

$ nix-shell -p cloud-utils

Dans la suite de cet article, il sera admis que le disque secondaire sera vdb.

Redimmensionner

Constater la taille actuelle du disque et de sa partition :

$ lsblk /dev/vdb
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdb    254:16   0    1G  0 disk 
└─vdb1 254:17   0 1023M  0 part

Via les commandes ou l'interface de votre hyperviseur, agrandir le disque virtuel, puis redémarrer la machine virtuelle ou forcer le système à voir la nouvelle taille du disque virtuelle. Constater la nouvelle taille du disque :

$ lsblk /dev/vdb
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vdb    254:16   0    2G  0 disk 
└─vdb1 254:17   0 1023M  0 part

Nous constatons bien que le disque vdb a changé de taille, mais pas la partition vdb1. C'est ici qu'intervient growpart avec pour permier argument le disque concerné et en second le numéro de la partition à agrandir :

$ sudo growpart /dev/vdb 1
CHANGED: partition=1 start=2048 old: size=2095103 end=2097151 new: size=4192223 end=4194271

NB : ici c'est vdb1 qui est donc agrandie.

Constater le changement sur la partition :

$ lsblk /dev/vdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb    254:16   0   2G  0 disk 
└─vdb1 254:17   0   2G  0 part

Malheureusement, le système de fichier que j'utilise sur la partition vdb1 ne s'étent pas tout seul, je dois donc utiliser la commande suivante :

$ sudo resize2fs /dev/vdb1
resize2fs 1.46.2 (28-Feb-2021)
Filesystem at /dev/vdb1 is mounted on /mnt/data; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vdb1 is now 524027 (4k) blocks long.

NB : dans le cas de l'utilisation de LVM directement sur vdb, le redimensionnement du système de fichier peut se faire en même temps que celui du volume.

Constater que le système de fichier a bien été agrandi :

$ df -h /dev/vdb1
Filesystem      Size  Used Avail Use% Mounted on
/dev/vdb1       989M   24K  922M   1% /mnt/data

L'espace nouvellement créé peut maintenant être exploité !

Références