Comment redimensionner la partition root ext4 en direct sans umount sur Linux

Comment redimensionner la partition root ext4 en direct sans umount sur Linux

Cet article se concentrera sur la façon de redimensionner la partition root Ext4 sans défaire. Ceci est un moyen facile pour un système où vous ne pouvez pas défoncer la partition racine et le système peut être récupéré facilement si quelque chose ne va pas comme par exemple l'instance AWS.

Le redimensionnement de toute partition en direct sans UNMOUT s'accompagne d'un énorme risque de perdre des données, il n'est donc pas recommandé. Si vous avez des données sensibles stockées sur votre système, il est toujours recommandé de faire descendre le système à faire une sauvegarde et à redimensionner la partition alors qu'elle n'est pas montée.

Dans l'exemple suivant, nous allons redimensionner une cloison d'une nouvelle instance Aws Linux à une seule partition AWS. La taille de partition actuelle est 7.8 Go:

# df -h . Taille du système de fichiers Utilisé disponible Utiliser% monté sur / dev / xvda1 7.8G 642M 6.8g 9% / 

Cependant, la taille du disque rapporte 20 Go:

# FDISK -L DISK / DEV / XVDA: 20 GIB, 21474836480 octets, 41943040 Secteurs Unités: secteurs de 1 * 512 = 512 octets Taille du secteur (logique / physique): 512 octets / 512 octets I / O Taille (minimum / optimal) : 512 octets / 512 octets Disklabel Type: DoS Disk Identifier: 0xd7f2e0e8 Démarrage de démarrage Démarrage du périphérique Secteurs Taille Type / Dev / XVDA1 * 4096 16773119 16769024 8G 83 Linux 

La partition ci-dessus est montée comme root et donc la partition ne peut pas être incontournable:

# umount / umount: /: cible est occupé. (Dans certains cas, des informations utiles sur les processus qui utilisent l'appareil se trouvent par LSOF (8) ou Fuser (1)) 

Tout ce qui doit être fait, c'est prendre note d'un secteur de départ d'une partition actuelle, qui dans notre cas est 4096. Supprimer la partition et recréer une nouvelle partition plus grande à partir du secteur 4096. Pour cela, nous allons simplement utiliser fdisk commande. Commençons par imprimer notre table de partition actuelle:

# fdisk / dev / xvda bienvenue sur fdisk (util-linux 2.25.2). Les modifications ne resteront en mémoire que jusqu'à ce que vous décidiez de les écrire. Soyez prudent avant d'utiliser la commande d'écriture. Commande (m pour l'aide): P disque / dev / xvda: 20 gib, 21474836480 octets, 41943040 Secteurs Unités: secteurs de 1 * 512 = 512 octets Taille du secteur (logique / physique): 512 octets / 512 octets I / S Size (SIZE (SIZE (SIME (SIME LOGIQUE / PHYSIQUE): 512 BYTE / 512 BYET Minimum / Optimal): 512 octets / 512 octets Disklabel Type: DOS Disk Identificateur: 0xd7f2e0e8 Démarrage du démarrage du périphérique Fin des secteurs SECTEUR TYP TYPE / DEV / XVDA1 * 4096 16773119 16769024 8G 83 Linux 

Encore une fois, veuillez prendre une note du secteur de départ 4096. Toujours dedans fdiskLe mode interactif de supprimer la partition:

Commande (M pour l'aide): D Partition sélectionnée 1 Partition 1 a été supprimée. 


Ensuite, créez une nouvelle partition directement en haut de la précédente et assurez-vous d'utiliser le même secteur de départ:

Commande (m pour l'aide): n Type de partition P primaire (0 primaire, 0 étendu, 4 gratuit) E étendu (conteneur pour partitions logiques) SELECT (par défaut P): P Numéro de partition (1-4, par défaut 1): Premier secteur (2048-41943039, par défaut 2048): 4096 Dernier secteur, + secteurs ou + taille k, m, g, t, p (4096-41943039, par défaut 41943039): créé une nouvelle partition 1 de type 'linux' et de taille 20 gib. 

Faire la partition 1 bootable et imprimer une nouvelle table de partition:

Commande (m pour l'aide): une partition sélectionnée 1 L'indicateur de démarrage sur la partition 1 est activé maintenant. Commande (m pour l'aide): P disque / dev / xvda: 20 gib, 21474836480 octets, 41943040 Secteurs Unités: secteurs de 1 * 512 = 512 octets Taille du secteur (logique / physique): 512 octets / 512 octets I / S Size (SIZE (SIZE (SIME (SIME LOGIQUE / PHYSIQUE): 512 BYTE / 512 BYET Minimum / Optimal): 512 octets / 512 octets Disklabel Type: DOS Disk Identificateur: 0xd7f2e0e8 Démarrage du démarrage du périphérique Secteurs Secteurs Type Type / Dev / Xvda1 * 4096 41943039 41938944 20G 83 Linux 

Confirmez tous les nouveaux détails et écrivez une nouvelle table de partition:

Commande (m pour l'aide): W Le tableau de partition a été modifié. Appeler ioctl () pour relire la table de partition. La relecture du tableau des partitions a échoué.: L'appareil ou la ressource occupée le noyau utilise toujours l'ancienne table. La nouvelle table sera utilisée au prochain redémarrage ou après avoir exécuté PartProbe (8) ou KPartx (8). 

À ce stade, le système doit être redémarré afin de remonter notre partition racine avec une nouvelle taille. Force FSCK sur le prochain redémarrage pour s'assurer que la partition est vérifiée avant d'être montée. Pour ce faire, créez simplement un fichier vide appelé forcefsck dans la racine de votre / / cloison:

# Touch / ForceFSCK 

Redémarrez votre système. Une fois le système à nouveau, vérifiez la taille de la partition:

df -h . FileSystem Taille utilisée disponible Utiliser% monté sur / DEV / XVDA1 20G 644M 19G 4% / 

et dernier chèque FSCK:

# Tune2fs -l / dev / xvda1 

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Ubuntu 22.04 Sauvegarde et restauration du système
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment monter l'image ISO sur Linux
  • Système linux hung? Comment s'échapper vers la ligne de commande et…
  • Comment doubler Kali Linux et Windows 10
  • Fichiers de configuration Linux: 30 premiers
  • Téléchargement Linux CD / DVD en direct
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?