330 votes

Comment puis-je redimensionner une partition ext racine au moment de l'exécution ?

Comment puis-je augmenter la taille de la partition racine d'un système au moment de l'exécution ?

J'ai une partition qui n'est pas allouée après la partition racine (qui est aussi ext4), comment puis-je ajouter cet espace non alloué à l'espace alloué à la partition racine sans avoir à arrêter le serveur ?

291voto

Søren Løvborg Points 3136

GUI (Ubuntu 14.04 et plus) : GParted v0.17 et les versions ultérieures fournissent une interface graphique agréable pour cela. (Les versions plus anciennes refuseront de redimensionner une partition montée).

Ligne de commande (toute version d'Ubuntu) : Il y a trois étapes à franchir.

Étape 1. La partition doit d'abord être redimensionnée. Si vous utilisez LVM, c'est facile, et vous savez probablement comment procéder. Si vous utilisez des partitions classiques, c'est un peu plus compliqué et vous devez savoir comment procéder. mai nécessitent un redémarrage (bien que vous n'ayez jamais à démarrer un autre système ou un CD live).

Voici comment je procède : Utilisez fdisk de supprimer d'abord la partition (l'idée est que les données sur le disque seront préservées), puis de la recréer soigneusement avec une taille plus grande à la même position.

Exemple :

$ sudo fdisk /dev/sda

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     9437183     4717568   83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-10485759, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
Using default value 10485759

Created a new partition 1 of type 'Linux' and of size 10 GiB.
Partition #1 contains a ext4 signature.

Do you want to remove the signature? [Y]es/[N]o: N

Command (m for help): p

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048    10485759     5241856   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Encore une fois, il est essentiel que la nouvelle partition commence au même bloc que l'ancienne. L'Id doit également correspondre (83 pour les systèmes Linux). Soyez prêt à perdre toutes vos données à la moindre erreur de frappe.

Pour être sûr, vous pouvez également restaurer le drapeau de démarrage (qui selon Wikipédia est encore nécessaire sur certains ordinateurs) en appuyant sur a .

Consultez la section des commentaires pour savoir ce qu'il faut faire si votre partition d'échange est dans le chemin.

Vous devriez maintenant comprendre pourquoi les gens recommandent d'utiliser un CD live ;-)

Étape 2. Comme fdisk vous rappelle utilement que vous devez recharger la table de partition avant de continuer. Le moyen le plus sûr est de simplement redémarrer, mais vous pouvez aussi utiliser le logiciel partprobe o kpartx (plus d'informations) .

Étape 3. Une fois que la partition est redimensionnée et que la table de partition est rechargée, il suffit de lancer la commande resize2fs sur le système de fichiers, et vous pouvez le faire même s'il est monté en tant que partition racine.

Exemple :

$ sudo resize2fs /dev/sda1

133voto

CodeAddict Points 1451

Il est possible d'effectuer un redimensionnement en ligne d'un système de fichiers ext4, même s'il s'agit de votre partition racine. Utilisez la fonction resize2fs commandement.

sudo resize2fs /dev/sda1

EDIT : Le rétrécissement en ligne n'est pas autorisé :

root@brunojcm-htpc:/home# resize2fs /dev/sda5 2654693
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/sda5 is mounted on /; on-line resizing required
resize2fs: On-line shrinking not supported

133voto

STRML Points 1433

Une solution plus simple - utiliser growpart <device> <partition> :

growpart /dev/xvda 1  # Grows the partition; note the space
resize2fs /dev/xvda1  # Grows the filesystem

Comme toujours, sauvegardez votre table de partition ( sfdisk -d /dev/xvda > partition_bak.dmp ) juste au cas où.

16voto

vaab Points 1054

Oui, vous pouvez rétrécir/déplacer/agrandir une partition racine en ligne sans aucun redémarrage (ni livecd, ni usbkey) : consultez cette réponse . C'est très bien écrit et facile à suivre, bien qu'assez long et un peu risqué. Donc si vous voulez seulement agrandir votre partition ext4, vous pouvez vous en tenir au travail conventionnel resize2fs solutions.

La solution générale que j'ai citée fonctionnera sur tout type de solution dédiée ou VPS par exemple.

TLDR ; cette solution implique de pivot_root a tmpfs pour que vous puissiez umount en toute sécurité votre partition racine en direct et bricoler avec elle. Une fois fait, vous pivot_root sur votre nouvelle partition racine.

Cela permet à peu près n'importe quelle manipulation sur le système de fichiers racine (le déplacer, changer de système de fichiers, changer son périphérique physique...).

Aucun redémarrage n'est nécessaire dans le processus, et ce permet de contourner la limitation de resize2fs ne pas pouvoir rétrécir ext4 les partitions.

Je l'ai personnellement utilisé, et il fonctionne très bien sur le système debian aussi, donc il devrait fonctionner sur Ubuntu. Je suis très surpris de ne pas voir cette solution approfondie un peu plus liée aux nombreuses questions des sites web stackexchange qui traitent du même problème.

Note : Bien sûr, si vous voulez agrandir votre partition, une simple resize2fs sera suffisant, comme indiqué à de nombreux endroits et dans d'autres réponses ici.

11voto

leatherjacket Points 127

Vous pouvez aussi simplement utiliser GParted - tant que la partition que vous redimensionnez n'est pas celle à partir de laquelle vous avez démarré - sinon, je suggère l'option CD live est un peu plus facile pour les débutants.

GParted fait fondamentalement toutes les étapes - juste basé sur une interface graphique.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X