No such partition, grub rescue

fdisk1

fdisk2

lsblk

blkid

Parfait, on a des infos à exploiter.
Rappel :

Dans les variables prefix et root, je suppose ? Il s’agit de la partition dans laquelle GRUB s’attend à trouver ses modules. Mais on voit qu’il n’y pas de partition n° 6 sur le disque. D’ailleurs il n’y a aucune partition Linux, seulement des partitions primaires Windows FAT et NTFS et une partition étendue qui contient une partition logique NTFS.

Par contre on constate qu’il y a un espace vide d’environ 60 Go au début de la partition étendue, qui contenait peut-être une ou plusieurs partition Linux. On peut donc suspecter que cette ou ces partitions ont été supprimées. Mais les données sont peut-être encore présentes.

Deux choix s’offrent à toi :

  1. réinstaller Debian dans l’espace libre
  2. tenter de récupérer l’installation précédente en retrouvant les partitions disparues.

Dans le second cas, deux méthodes possibles :

  1. utiliser un programme comme testdisk ou gpart qui va scanner tout le disque à la recherche de partitions perdues
  2. essayer de deviner la position des partitions avec les indices à notre disposition.

Par exemple, on constate que la position de début de la partition étendue 167094270 = 81589*2048-2. Il est donc plausible qu’une partition logique perdue commence à la position 81589*2048 = 167094272. L’idée est donc d’examiner le contenu à cet emplacement, par exemple en créant une partition virtuelle avec addpart :

addpart /dev/sda 6 167094272 230588

(EDIT : je me suis trompé dans la taille de la partition qui est 118061056, je ne sais pas pourquoi j’ai divisé par 512. Mais ce n’est pas très important du moment que la taille est suffisante pour lire les méta-données situées au début.)

puis en identifiant le type de contenu avec une de ces commandes :

file -s /dev/sda6
wipefs /dev/sda6
blkid /dev/sda6

S’il y a une signature ext4, il faut déterminer la taille du système de fichiers avec

dumpe2fs -h /dev/sda6 | grep Block

S’il y a une signature de swap, la commande file ci-dessus indiquera sa taille.

Ainsi on pourra déduire la taille de la partition et savoir s’il y a au moins une autre partition derrière, qu’on va rechercher en appliquant la même méthode.

Merci beaucoup pour votre réponse.
Bon, vous avez constaté mon niveau ultra nul…
Je vais déjà résumer ce que j’ai compris :
Pour deviner la position des partitions disparues ou cachées :
-dans un terminal, après sudo je suppose, je tape addpart /dev/sda etc, entrer, et ainsi de suite avec toutes les autres commandes indiquées.
Si je vois apparaître la mention ext4, alors dans sudo je tape dumpe2fs -h /dev/sda6 (je ne sais pas faire la barre verticale) et grep Block.
C’est ça ?

Oui. Pour taper toutes les commandes en root sans taper sudo à chaque fois, taper

sudo -s

Le grep ne sert à rien sans la barre verticale | qui s’obtient avec AltGr+6 sur un clavier AZERTY FR (au clavier principal, pas au pavé numérique).

Avant de faire ça, je voudrais savoir : le fait de créer une partition virtuelle, ça a quoi comme conséquence ? Je la défais comment ?

Voilà ce que j’obtiens :
addpart

dumpe2fs avec sudo, comme les autres commandes.

Aucune, ça n’écrit rien sur le disque. Pour la supprimer, il suffit d’utiliser delpart.

delpart /dev/sda 6

Mais elle ne survivra pas au reboot de toute façon.

En effet j’avais oublié de mettre sudo devant la commande.
Puis j’ai été bloquée 21 h (!) par le forum pour avoir trop posté (de photos je suppose). ça aurait été bien qu’ils préviennent. Si on est bloqué en plein milieu d’une manoeuvre délicate, c’est embêtant.

Voilà ce que j’ai obtenu après la commande dumpe2fs :
argument invalide while reading journal super block
Block count : 4732416
Block size : 4096
Blocks per group : 32768
A la fin j’ai fait exit, je suppose que ça a détruit la partition virtuelle.

Ce message doit être causé par mon erreur de calcul pour déterminer la taille de la partion, beaucoup plus petite que ce qu’elle devrait être (voir message précédent édité). Ce n’est pas grave.

Non, seuls delpart, le rechargement de la table de partition complète ou l’arrêt du système suppriment cette partition. En fait elle est gérée par le noyau comme une vraie partition, sauf qu’elle n’est définie que dans la mémoire du noyau, pas dans la table de partition écrite sur le disque.

La taille du système de fichiers est donc 4732416 * 4096 octets = 37859328 secteurs de 512 octets = environ 20 Go. Cette taille est un multiple de 2048 secteurs (1 Mio) qui est la base de l’alignement standard des partitions, c’est cohérent. L’espace non alloué fait environ 60 Go donc il y a de la place pour d’autre partitions. logiques. Il doit y avoir au minimum un secteur non alloué entre deux partitions logiques, en pratique il y en a 2048 pour assurer l’alignement standard des partitions sur des multiples de 2048 secteurs. On va donc prendre pour hypothèse que la partition suivante commence au secteur 167094272+37859328+2048 = 204955648.

addpart /dev/sda 7 204955648 200000

(cette fois je mets volontairement une taille faible, ça aura l’avantage de permettre de créer d’autres partitions virtuelles derrière sans la supprimer)

Ensuite tu exécutes les mêmes commandes file, dumpe2fs si ext4 sur /dev/sda7

Bonsoir
J’évite les photos maintenant. J’espère que ce sera moins lourd avec une capture d’écran.
Capture d’écran du 2020-12-08 19-28-39

Je doute que le forum fasse une différence entre une photo et une capture d’écran. Par contre si tu peux envoyer une capture d’écran, tu devrais pouvoir faire un copier-coller du texte du terminal, ce qui serait beaucoup plus léger pour le forum et beaucoup plus pratique pour moi, ça me permettrait aussi de copier-coller les valeurs pour faire mes calculs.

Ha oui, vous avez raison, je n’y avais pas pensé.

En fait ça ne marche pas. Je n’arrive pas à sélectionner le texte dans le terminal pour le copier. Il se désélectionne.

La partition suivante est donc le swap. La formule pour calculer sa taille en secteurs est :
(nombre de pages + 1) * taille d’une page / taille d’un secteur

(1048063 +1) *4096 / 512 = 8384512 secteurs (environ 4 Gio qui doit être la taille de la RAM)

La partition suivante devrait donc commencer au secteur 204955648 + 8384512 + 2048 = 213342208

addpart /dev/sda 8 213342208 200000

Si tu avais choisi le partitionnement assisté avec /home séparé, ça devrait être la partition /home, et la dernière à retrouver.

Ça doit dépendre de l’émulateur de terminal utilisé (je ne connais pas mlterm), mais en général le simple fait de sélectionner copie le texte dans un tampon qu’on peut coller en cliquant avec le bouton du milieu de la souris (ou sur la roulette, ou avec les deux boutons s’il n’y a ni 3e bouton ni roulette).

Oui j’avais choisi une partition pour home, il me semble.
Comment fait-on pour copier-coller ce qu’il y a dans le terminal ?

Voir mon message précédent que j’ai édité. Sinon, la méthode bête et méchante : rediriger la sortie de la commande dans un fichier texte en ajoutant à la fin de la ligne :

>> fichier.txt

et ouvrir le fichier avec un éditeur graphique

Ce n’est pas pratique car je poste à partir d’un autre ordinateur.
Voilà le résultat, il n’est pas encore probant malheureusement.
user@debian:~$ sudo addpart /dev/sda 8 213342208 200000
user@debian:~$ sudo file -s /dev/sda8
/dev/sda8: Linux rev 1.0 ext4 filesystem data, UUID=6c781d09-bb01-48f1-b221-17002aa4f779 (extents) (64bit) (large files) (huge files)
user@debian:~$ sudo wipefs /dev/sda8
DEVICE OFFSET TYPE UUID LABEL
sda8 0x438 ext4 6c781d09-bb01-48f1-b221-17002aa4f779
user@debian:~$ sudo blkid /dev/sda8
/dev/sda8: UUID=« 6c781d09-bb01-48f1-b221-17002aa4f779 » TYPE=« ext4 »
user@debian:~$ sudo dumpe2fs -h /dev/sda8 | grep Block
dumpe2fs 1.44.5 (15-Dec-2018)
dumpe2fs: Argument invalide while reading journal super block
Block count: 8976384
Block size: 4096
Blocks per group: 32768

Pourquoi écris-tu que ce n’est pas probant ? C’est très bien.