Table des matières

Redimensionner la partition racine à chaud sans la démonter

Introduction

Le but de ce tuto (c'est plus une astuce qu'un tuto mais bon, je me suis dit que ça pourrait servir) est de vous montrer comment vous dépatouiller quand la partition racine d'un de vos linux affiche qu'elle est pleine:

df -h 
shell
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1          5,9G    5,9G  0,2M  100% /
...

Le noyau linux a beau être très stable, votre système va réagir très mal si votre partition racine est pleine.

D'autre part ce tuto ne vous montrera pas comment redimensionner les partitions autre que la partition racine. Car il m'est impossible de couvrir tout les cas existant en détails vu que chaque système peut avoir un nombre variables de partition et de point de montage différents.
Vous devrez faire part de votre propre logique et réflexion afin de libérer de la place derrières (d'un point de vu secteur) la partition racine que vous voulez agrandir. Ceci étant dit en avant.

Utilisation

Donc je reprends sur l'example cité plus haut

df -h 
shell
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1          5,9G    5,9G  0,2M  100% /
...
fdisk -l /dev/sda 
shell
fdisk -l
 
Disque /dev/sda : 8 GiB, 8589934592 octets, 16777216 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x78bd6049

La taille du disque ici est de 8Go, ce qui me laisse un peu de manœuvre.

Normalement dans un cas comme ceci il faudrait démonter la partition afin de pouvoir la redimensionner.
essayons…

umount /
shell
umount: / : cible occupée
       (Dans certains cas, des renseignements sur les processus utilisant
        le périphérique sont accessibles avec lsof(8) ou fuser(1).)

Ok, Commençons par imprimer à nouveau notre table de partition actuelle.

fdisk /dev/sda 
shell
Bienvenue dans fdisk (util-linux 2.25.2).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.
 
Commande (m pour l'aide) : p
Disque /dev/sda : 8 GiB, 8589934592 octets, 16777216 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x78bd6049
 
Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1           2048 14682111 14680064    6G 83 Linux
 
Commande (m pour l'aide) :

Ce qui est important c'est de prendre en note le secteur de départ de votre partition, dans notre cas ici : 2048.

Ensuite c'est simple comme debian

On détruit la partition puis on en crée une nouvelle, en précisant point de départ à partir du secteur 2048. Pour cela, nous allons simplement utiliser fdisk encore une fois

fdisk /dev/sda
shell
Bienvenue dans fdisk (util-linux 2.25.2).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.
 
 
Commande (m pour l'aide) : d
Numéro de partition (1,2, 2 par défaut) : 1
 
La partition 1 a été supprimée.
 
Commande (m pour l'aide) :
shell
Commande (m pour l'aide) : n
Type de partition
   p   primaire (0 primaire, 0 étendue, 4 libre)
   e   étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) : 1
Premier secteur (2048-16777215, 2048 par défaut) : 2048
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-16777215, 16777215 par défaut) : +7G
 
Une nouvelle partition 1 de type « Linux » et de taille 7 GiB a été créée.
 
Commande (m pour l'aide) :
si votre /boot n'est pas sur une autre partition n'oublier pas de rajouter le flag boot a votre partition racine

ensuite on valide les changements de la table de partition

shell
Commande (m pour l'aide) : w
La table de partitions a été altérée.
Appel d'ioctl() pour relire la table de partitions.
Échec de relecture de la table de partitions.: Périphérique ou ressource occupé
 
Le noyau continue à utiliser l'ancienne table. La nouvelle sera utilisée lors du prochain démarrage ou après avoir exécuté partprobe(8) ou kpartx(8)

À ce stade, le système doit être redémarré afin que le noyau relise et applique la nouvelle table de partition. on va tout de même forcer un fsck sur la prochaine réinitialisation pour s'assurer que la partition est saine avant son montage.

touch /forcefsck
init 6

après le redémarrage on va informer le système de fichier de ce changement de taille

resize2fs /dev/sda1

Puis un dernier redémarrage et voila

Test et conclusion

df -h
shell
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1          6,9G    5,9G  1G  89% /
...

En conclusion nous avons pu voir que linux nous permet de nous passer des outils de partitionnement standard ou de passer par un boot rescue.

Effectuez vos test prudemment tous de même

Linuxement,

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !