Merci pour les réponses, j'ai fini par trouver d'autres méthodes aussi, j'ai juste cherché de la mauvaise façon : je ne savais pas que tout ce que j'avais à écrire était "transformer logique en primaire". La solution que j'ai trouvée est celle que knjers suggère, je suppose, mais dit comme ça en une seule phrase, je n'ai même pas compris de quoi il parlait avant de lire ça.
Le poste est le suivant : Convertir via le terminal
Si j'avais trouvé plus tôt le moyen de rechercher des solutions à ce problème, je me serais épargné un post inutile, mais peut-être que certaines personnes sont dans la même situation que moi, alors je vais reprendre la solution. Pour faire court, nous avons besoin de sfdisk. Première exécution
sudo sfdisk -d /dev/sdX
pour obtenir la carte détaillée de votre disque (évidemment, X représente la lettre du périphérique, exécutez sudo fdisk -l pour obtenir la liste de votre lecteur si vous ne connaissez pas le code de votre lecteur).
Il suffit de le copier dans un fichier texte et de modifier manuellement la table de partition pour obtenir celle que vous voulez. Faites attention, le risque de tout gâcher est assez élevé. J'ai déjà testé sur une clé USB et ça marche.
Quoi qu'il en soit, il vous suffit de déterminer la carte que vous souhaitez créer et de l'exprimer en termes de secteurs. Tout est plus facile si vous êtes dans une situation comme la mienne (vous voulez vous débarrasser de la partition étendue), car cela signifie que vous pouvez supprimer toutes les logiques sauf celle que vous voulez transformer en primaire et n'avoir qu'une logique à l'intérieur de l'étendue, aussi grande qu'elle. Vous pouvez arriver à cette situation avec un outil automatique plus facile comme GParted. C'est plus facile parce que vous pouvez simplement utiliser le point de départ et le point d'arrivée de l'extension pour la nouvelle primaire, alors que si vous voulez garder l'extension avec plusieurs logiques à l'intérieur et simplement déplacer l'une d'entre elles à l'extérieur (évidemment, seulement possible si c'est la dernière ou la première - il suffit de la déplacer si ce n'est pas le cas - et si vous avez trois partitions primaires/extendues ou moins), l'édition est un peu plus complexe, car vous devez spécifier correctement les nouveaux points de départ et d'arrivée de l'extension pour contenir toutes les autres primaires etc.
Disons par exemple que vous avez cette carte simple : une seule logique dans une extension située au tout début, un swap et une énorme partition de données.
sudo sfdisk -d /dev/sda
table de partition de /dev/sda
unité : secteurs
/dev/sda1 : start= 2048, size=80000000, Id= f
/dev/sda2 : start=80002048, size= 800000, Id=82
/dev/sda3 : start= 80802048, size= 800000000, Id=83
/dev/sda4 : start= 0, size= 0, Id= 0
/dev/sda5 : start= 4096, size=79997952, Id=83
Les nombres sont juste inventés par moi pour faciliter la compréhension du fonctionnement. Comme vous le voyez, le nombre maximum de "vraies" partitions possibles est de quatre, ce qui signifie que chaque logique commencera à numéroter à partir de cinq, même si vous avez moins de quatre primaires. De même, /dev/sda4 serait affiché comme type 0 en commençant par 0 et grand 0 également si vous n'aviez que trois partitions et aucune logique. Le seuil de quatre primaires est toujours affiché. Id 83 est une partition Linux ext, et 82 est un swap Linux. (Liste des types de partition avec les ID) . Maintenant, si nous voulons garder cette carte exacte à l'exception de la partition logique remplaçant la partition étendue comme une partition logique, nous collons simplement la sortie exacte de la commande que nous avons obtenue (de "partition table") et la modifions de cette façon :
table de partition de /dev/sda
unité : secteurs
/dev/sda1 : start= 4096, size=79997952, Id=83
/dev/sda2 : start=80002048, size= 800000, Id=82
/dev/sda3 : start= 80802048, size= 800000000, Id=83
/dev/sda4 : start= 0, size= 0, Id= 0
Tout ce que nous avons fait, c'est de mettre notre logique, avec ses limites originales (elle commence un peu après et se termine un peu avant l'étendue, il faut mettre ses propres limites) à la place de notre étendue (elle occupe maintenant une position avec un numéro < 5, réservé aux étendues ou aux primaires) avec l'ID 83 (système de fichiers natif de Linux, le définissant finalement comme primaire). De cette façon, lorsque nous importerons la nouvelle table, le chunk contenant tous les fichiers de notre logique sera reconnu comme faisant partie d'un primaire, mais aucun d'entre eux ne sera supprimé, donc c'est juste parfait. Pour importer notre nouvelle configuration, sauvegardez notre fichier texte et faites la commande suivante :
sudo sfdisk --force /dev/sdX < path/to/file/yournewpartitiontable.txt
IMPORTANT : Si vous faites cela à partir d'une session en direct, il est fondamental que votre disque dur ne soit pas utilisé et que toutes les partitions soient démontées. Si le disque que vous modifiez n'est pas celui de votre système (comme un disque dur secondaire ou un disque externe ou un stylo USB/carte SD), alors très bien, assurez-vous simplement que toutes ses partitions sont démontées.
Méthode GParted :
En démarrant dans GParted live pour supprimer toutes les autres partitions logiques et faire en sorte que l'étendue contienne toutes les partitions logiques que je voulais transformer en primaire, je suis tombé sur une nouvelle méthode, juste par hasard (celle que j'ai utilisée, donc je peux vous garantir qu'elle fonctionne, vous devez juste avoir moins de quatre partitions car vous allez avoir besoin d'un bloc de sauvegarde libre et créer votre nouvelle primaire avant de pouvoir supprimer l'étendue).
GParted a un copie qui crée une copie exacte d'une partition dans un bloc libre suffisamment grand. Tout ce que j'ai fait, c'est copier ma logique en dehors de l'étendue et ensuite, après m'être assuré que tout fonctionnait comme dans ma partition d'origine, supprimer la logique et l'étendue et déplacer tout à la place de celles-ci, étendre ma partition de données. Cette méthode est plus sûre car elle n'est pas 100% manuelle, mais aussi beaucoup plus longue (j'ai fait en sorte que ma partition de données occupe l'espace libre restant, l'agrandissant de 380 à 440 GiB, ce qui a demandé 5 heures) et peut-être plus stressante pour le disque dur, car vous allez faire plus d'actions dans celle-ci au lieu de modifier directement la table de partition et les informations symboliques. Mais encore une fois, c'est aussi plus propre car vous faites tout en une seule opération, en occupant les espaces libres restants et en faisant coller les partitions ensemble sans espace perdu entre elles (avec sfdisk, vous donnerez aux nouvelles primaires les limites des anciennes logiques, ce qui signifie que vous commencerez après et finirez avant, laissant de l'espace inutilisé entre les deux).
J'espère que cela vous aidera, merci !