No such partition, grub rescue

Ben il remet « argument invalide while » etc

J’ai déjà dit que c’est probablement normal, à cause de la taille que j’ai indiquée pour la partition qui n’est pas la bonne.

D’après la taille du système de fichiers (environ 36 Go), la partition suivante commence au secteur 213342208+8976384*4096/512+2048 = 285155328 ce qui correspond à la partition /dev/sda5 affichée par fdisk, qui est située à la fin de la partition étendue et du disque. On a donc fait le tour.

Il ne reste plus qu’à recréer les partitions dans la table de partition. Deux méthodes :

  • utiliser fdisk manuellement et recréer chaque partition une par une avec les informations de début et de taille recueillies
  • utiliser sfdisk pour reconstituer la table de partition entière d’un seul coup à partir d’un fichier texte.

Note : lorsqu’on recrée des partitions logiques il est essentiel de ne pas se tromper car cela écrit un secteur de partition étendue (EBR) avant chaque partition logique. Si on écrit un EBR au milieu d’une partition perdue, cela écrase les données.

J’aurais tendance à aller vers ce qu’il y a de plus simple à faire… et de plus rapide si possible. Sachant que je n’ai aucune donnée importante sur la partition debian.

Quelle que soit la méthode, le résultat devrait être semblable à ceci :

part début     fin       secteurs  type
sda1        63  40965749  40965687 c
sda2  40965750 167094237 126128488 7
sda3 167094270 976771071 809676802 f
sda5 285155328 976771071 691615744 7
sda6 167094272 204953599  37859328 83
sda7 204955648 213340159   8384512 82
sda8 213342208 285153279  71811072 83

Avec fdisk, il faut le lancer

fdisk /dev/sda

puis créer chaque nouvelle partition (commande ‹ n ›) de type logique, entrer le début et la taille en secteurs, et le type. fdisk devrait détecter une signature ext4 ou de swap, c’est bon signe, et proposer de la supprimer, il faut refuser et la conserver. Afficher le résultat avec ‹ p ›, et s’il est conforme l’enregistrer avec ‹ w ›.

Avec sfdisk, la première étape consiste à exporter la table actuelle dans un fichier

sfdisk -d /dev/sda > sda.txt

Ensuite modifier le fichier sda.txt avec un éditeur de texte pour ajouter les partitions 6 à 8 à recréer sur le même modèle : partition, début, secteurs, type.

Simuler l’application du fichier modifié avec

sfdisk -n -w never -W never /dev/sda < sda.txt

Si cela affiche un résultat conforme, appliquer le fichier pour de bon

sfdisk -w never -W never /dev/sda < sda.txt

J’aime bien la méthode avec sfdisk car elle simule ou applique tous les changements d’un coup et permet de recommencer sans devoir tout refaire en cas d’erreur, il suffit de modifier le fichier texte pour corriger l’erreur.

Sachant que j’ai fermé le terminal et l’ordinateur hier, donc que tout ce qui a été fait a disparu du terminal et de la clé ;
Si je tape la commande ci-dessus : sfdisk -d /dev/sda > sda.txt
est-ce que j’obtiens ce que vous appelez la « table » dans un fichier texte (c’est-à-dire ceci :
part début fin secteurs type
sda1 63 40965749 40965687 c
sda2 40965750 167094237 126128488 7
sda3 167094270 976771071 809676802 f
sda5 285155328 976771071 691615744 7
?)
Si oui, alors dans le fichier texte, sous la ligne sda5, il faut que j’entre toutes les données indiquées, c’est-à-dire taper :
sda6 167094272 204953599 37859328 83
sda7 204955648 213340159 8384512 82
sda8 213342208 285153279 71811072 83
Puis, dessous, écrire : sfdisk -n -w never -W never /dev/sda < sda.txt ?
Enfin si tout me paraît bon, écrire la dernière ligne sfdisk -w never -W never /dev/sda < sda.txt ?
Ce que je ne comprends pas : un fichier texte se comporte comme un terminal ? Il faut faire « entrer » après chaque ligne de commande comme pour un terminal ?
Si je réinstallais debian, est-ce que ce serait moins casse-gueule pour moi ? Car je n’ai pas envie d’aggraver la situation avec une erreur de frappe.

Ce ne sera pas exactement sous cette forme, le format est différent. Il n’y a pas la position de fin (redondante avec la position de début et la taille), les champs sont séparés par des virgules…
Le format de sfdisk me semble assez compréhensible, mais en cas de doute tu peux poster le contenu du fichier ici et je mettrai ce qu’il faut ajouter exactement à la fin du fichier.

Il faut appuyer sur la touche « entrée » pour ajouter un « retour chariot » (retour à la ligne). C’est comme dans le bloc-note (notepad) de Windows.

Si le résultat de la simulation (avec -n) est conforme aux attentes, il n’y aucun risque. On ne touche pas aux partitions 1 à 5 existantes.

Et après, debian sera réinstallé, de fait ? C’est-à-dire que je retrouverai mon installation d’origine ?

Je n’ai pas compris comment les écrits sur le fichier texte pouvaient agir sur les commandes.

Pourrais-je interrompre cette manœuvre en cours de route en cas de doute ?

En principe oui, s’il n’y a pas eu d’autre dégâts que la suppression des trois partitions.

Le programme utilise simplement le contenu du fichier pour savoir ce qu’il doit faire. Un peu comme un script.

Seule la dernière commande (sfdisk sans -n) modifie la table de partition du disque. Il suffit de ne pas l’exécuter en cas de doute.
sfdisk -d ne fait que créer le fichier texte.
sfdisk -n ne fait que simuler la modification de la table de partition et afficher le résultat.

Si ça peut te rassurer, tu peux poster le fichier texte avec tes modifications et le résultat de la simulation et je vérifierai tout cela.

Bon. J’essaierai tout à l’heure (rentrée chez moi).
Merci !

Je viens de taper la ligne de commande (dans le terminal habituel)
sudo sfdisk -d /dev/sda > sda.txt
mais il ne s’est rien passé. J’ai ouvert l’éditeur de texte mais il n’y a rien dedans. Ou faut-il écrire la ligne de commande dès maintenant dans l’éditeur de texte ?

La commande a créé un fichier sda.txt dans le répertoire courant du terminal.
Il faut ouvrir ce fichier avec l’éditeur (fichier, ouvrir) en allant dans ce répertoire.
L’explorateur de fichiers devrait s’ouvrir directement sur ce répertoire aussi.

PS : ouvrir ce fichier avec un éditeur de texte, et surtout pas avec un traitement de texte comme LibreOffice Writer.

Zut, c’est raté. J’ai tout fermé car j’ai un rendez-vous dans cinq minutes. J’espère que de tout fermer (le terminal et l’ordinateur) n’a pas causé de problème.

Non, ça a juste effacé le fichier créé puisqu’il s’agit d’une session live qui est en mémoire. Je répète : seule la dernière commande (sfdisk sans -n) a un effet réel.

Bon, merci. J’essaierai de faire tout ça correctement demain.
Bonne soirée.

J’ai enfin trouvé où se nichait le résultat de la commande sfdisk -d etc (menu, fichiers, dossier personnel).
Désolée, je fais une capture d’écran pour que vous voyiez exactement dans quoi je suis et ce que je suis en train de faire. Si je suis bloquée par le forum, bah tant pis.
Dites-moi si à la suite de ça, dans le même endroit, je dois taper la ligne de commande suivante, ou si je dois la taper dans le terminal (je n’arrive toujours pas à capter à quoi me sert le fichier texte). A priori je dois la taper dans un terminal, car c’est tout de même le terminal qui donne les ordres, non ?Capture d’écran du 2020-12-10 20-00-18
Sachant qu’entre temps j’ai refermé le terminal.

Cela me semble correct. Il n’y a plus qu’à ajouter un retour chariot (entrée) à la fin de la dernière ligne, puis enregistrer.
Ensuite, exécuter la commande de simulation (avec -n) dans le terminal.
Si le résultat affiché est conforme et sans avertissement gênant, exécuter la commande réelle (sans -n). S’il y a seulement des avertissement concernant des signatures détectées dans les partitions qu ne seront pas effacées, c’est normal.

Bonjour
j’ai enfin fait la simulation demandée. Je vous envoie les captures d’écran
Capture d’écran du 2020-12-12 16-27-31
Capture d’écran du 2020-12-12 16-30-34
On dirait qu’il n’a pas pris en compte les partitions 6 à 8 ?

Tu as modifié le fichier sda.txt comme montré dans ton message précédent et enregistré entre l’exécution des deux commandes sfdisk ?

Je ne vois pas les partitions 6 à 8… comprends pas.

Il faut les ajouter dans le fichier sda.txt avec l’éditeur avant d’exécuter la seconde commande, comme tu l’avais déjà fait.