Le moyen le plus sûr de le faire est de démarrer à l'aide d'un support d'urgence (un CD live ou similaire) et d'utiliser GParted, qui redimensionnera à la fois la partition et le système de fichiers qu'elle contient. Cependant, cela ne fonctionnera que si la partition n'est pas actuellement utilisée.
Si vous ne pouvez pas vous permettre de temps d'arrêt, vous pouvez essayer d'utiliser gdisk
au lieu de parted
. Vous devrez supprimer la partition que vous souhaitez redimensionner et en créer une nouvelle à sa place avec le même point de départ, comme vous l'auriez fait avec fdisk
. gdisk
est prêt à travailler sur un disque en cours d'utilisation, bien que le noyau puisse n'enregistrer aucune modification. Dans ce cas, vous devrez peut-être utiliser partprobe
ou kpartx
pour que le noyau accepte la nouvelle table de partition, ou même redémarrer l'ordinateur si cela ne fonctionne pas. (Cela devrait être assez similaire à l'utilisation de fdisk
.)
Cela ne fonctionne généralement qu'avec les distributions Linux les plus récentes. Outils nécessaires :
- partprobe (généralement une partie de parted)
- gdisk / sgdisk
Une partition GPT stocke un en-tête de sauvegarde à la fin du disque. Si vous avez redimensionné le périphérique sous-jacent, l'en-tête de sauvegarde sera quelque part au milieu. La première étape consiste à déplacer l'en-tête de partition à la fin du disque.
En supposant que le disque est /dev/sda et que la partition est /dev/sda3 (doit également être la dernière partition) :
sgdisk -e /dev/sda
Supprimez ensuite la dernière partition et recréez-la :
sgdisk -d 3 /dev/sda
sgdisk -N 3 /dev/sda
Vous verrez généralement un message indiquant que le noyau est incapable de recharger la table de partition. Vous devez exécuter partprobe pour que la partition soit enregistrée avec la nouvelle taille :
partprobe /dev/sda
Si cela échoue, vous devrez redémarrer la machine virtuelle. Après cela, vous pouvez développer votre système de fichiers avec l'outil approprié, pour ext4, etc. :
resize2fs /dev/sda3
Attention :l'exécution de sgdisk peut être destructrice. Assurez-vous d'avoir mis en place des procédures de sauvegarde appropriées.
Voici un exemple qu'un outil automatisé utilise pour redimensionner une partition en ligne, en une seule exécution :
sgdisk -d 1 -n 1:2048:0 -c 1 :-u1:E485F29F-A1F4-4953-9DD8-799EAEA0119B -t 1:0700 /dev/xvda
Voici la liste des options de la commande sgdisk :
- -d 1 supprimer la première partition
- -n 1:2048:0 dit créer une nouvelle partition "numéro 1", avec le secteur de départ 2048. End sector ="0" qui signifie "utiliser tout l'espace disponible pour cette partition
- -u définit un guid unique pour cette partition (ceci est spécifique aux partitions GPT) ; vous pouvez utiliser 'R' pour que GUID soit défini sur une valeur aléatoire. Vous pouvez également obtenir l'identifiant des partitions actuelles via
gdisk /dev/xvda; p
sortie pour réutiliser le même uid - -t 1:0700 signifie essentiellement que la première partition est de typecode '0700'.
/dev/xvda était le disque que nous avons repartitionné.
Ainsi, il supprime et crée immédiatement une nouvelle partition à sa place.
PS. Quelques notes sur le code de type '0700'. De l'homme SGDISK(8)
-t, --typecode=partnum:{hexcode|GUID} Change a single partition's type code. You enter the type code using either a two-byte hexadecimal number, as
décrit précédemment, ou une valeur GUID entièrement spécifiée, telle que EBD0A0A2-B9E5-4433-87C0-68B6B72699C7.
Trouvé la meilleure explication de ce que "0700" signifie ici - http://www.rodsbooks.com/gdisk/walkthrough.html
"Mais attendez," dites-vous, "je pensais que le disque avait une partition FAT!" En effet, c'est le cas. Windows utilise un seul code GUID pour toutes ses partitions de données, qu'elles soient FAT ou NTFS. Dans le passé, le même code a été utilisé dans Linux pour ses partitions de données. (Plus d'informations à ce sujet sous peu....) Ainsi, dans ce cas, plusieurs codes MBR différents sont tous traduits en un seul code GUID GPT. GPT fdisk utilise, de manière quelque peu arbitraire, le code 0x0700 (ou plus précisément, EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) pour tous ces éléments.
Dans mon cas, je pense qu'il s'agissait d'une partition Linux ext4, mais le code de type de la partition ne signifie pas le type de système de fichiers, donc '0700' ressemble plus à un type fourre-tout pour sgdisk. Au moins dans les cas que j'ai vus.
SPP. Vous devrez peut-être exécuter partprobe
pour que le noyau prenne connaissance du changement de partitionnement sans redémarrer le système.