GNU/Linux >> Tutoriels Linux >  >> Linux

Redimensionnement en direct d'une partition GPT sous Linux

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.


Linux
  1. Comment redimensionner (étendre) un système de fichiers basé sur des partitions sous Linux

  2. Quel est l'équivalent de la commande Linux sudo fdisk -l sous MacOS ?

  3. Comment activer la partition d'échange Linux?

  4. Est-il possible de démarrer Linux à partir d'un disque GPT sur un système BIOS ?

  5. Redimensionner la partition /var sur un système distant (Linux Debian Lenny)

Tout est un fichier sous Linux - Partie 2

Gestion des partitions Linux

Comment chiffrer une partition sous Linux

Créer une partition sous Linux - Un guide étape par étape

9 exemples de commandes partagées Linux - mkpart, mkpartfs, redimensionner les partitions

Comprendre l'utilitaire séparé Linux