Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/10/2016, à 21:05

Untxia

Reverter un mkswap

Salut. J'espère être au bon endroit.
J'ai fait une énorme bourde (un faux contact dans un connecteur de disque dur, qui change de nom et tombe sous un script...) en opérant un mkswap sur un volume ext4 contenant tout plein de données indispensables (sans backup, oui je sais, *c'était* le backup).
Évidemment j'ai cessé de bosser sur la machine (qui était fraichement bootée). Mes données sont donc encore là et très certainement de quoi les récupérer. Ma question est donc (comment) peut-on reverter ce mkswap et restaurer l'ancien volume ext4 (de 2 To) ?

Merci d'avance pour toute aide. Vous me sauveriez la vie. smile

Hors ligne

#2 Le 07/10/2016, à 21:14

Nasman

Re : Reverter un mkswap

1) Démarrer en mode "Live" et en veillant que la partition ne soit pas montée, surtout si elle est passé en swap (l'utilisation s'effectue souvent de façon automatique)
2) Voir si testdisk peut retrouver des données/partitions


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#3 Le 08/10/2016, à 07:21

Untxia

Re : Reverter un mkswap

Tout d'abord merci Nasman, car grâce à toi j'ai réussi à dormir cette nuit. wink
Je ne connaissais pas testdisk, et si on en croit son descriptif, ça devrait faire le job.

Petits détails : ce DD n'est aucunement impliqué dans le fonctionnement du système, c'est une sorte de grosse archive rapide. Il est constitué d'une partition de presque 2 To, d'une petite swap de 4 Go et d'un reliquat inutilisé.

Ce matin j'ai lancé testdisk "pour voir", c'est assez confus. Il ne voit pas l'ancienne partition ext4 avec le quicksearch. Avec la recherche détaillée il est parti pour des heures (2 To...) mais trouve très vite la partoche, tout en proposant "Stop".
http://www.cjoint.com/doc/16_10/FJignqo … 06-03.jpeg

J'ai validé Stop au bout de quelques dizaines de secondes et il semble enfin avoir retrouvé tout le monde.
http://www.cjoint.com/doc/16_10/FJigpsi … ran-2.jpeg

Bon. Là, je sais que si je fais une connerie, je perds tout. big_smile
J'ai vaguement compris qu'il faut que je passe ma partition de D (Deleted) à autre chose. Et que dois-je faire de la partition (erronée) de swap de 2 To ? La manpage est assez laconique sur le sujet, et j'ai pas trouvé beaucoup d'aide claire...

Un petit conseil sur la marche à suivre ? Merci encore. smile

Dernière modification par Untxia (Le 08/10/2016, à 08:36)

Hors ligne

#4 Le 08/10/2016, à 08:32

Untxia

Re : Reverter un mkswap

Bon. J'ai un peu avancé par mes propres moyens avec la doc (même si je n'ai trouvé que des exemples NTFS ou FAT). La partition qui fait doublon avec la swap contient effectivement toujours les entrées des fichiers (commande P).
Je dois la passer du mode Deleted à autre chose, mais quoi ? L ? E ? P ? * ?
Et donc question subsidiaire, dois-je faire quoi que ce soit à l'entrée de partition swap erronée ou la laisser simplement Deleted ?

Thx smile

Hors ligne

#5 Le 08/10/2016, à 10:12

Nasman

Re : Reverter un mkswap

Je ne sais pas dans quelle mesure testdisk peut restaurer la situation initiale. Je ne l'utilise que pour retrouver des traces d'une ancienne partition, afficher les fichiers récupérables et les copier sur un autre support.

Selon l'origine du problème, il y aura plus ou moins de fichiers à récupérer. Si tu as lancé une opération qui a écrit sur tout le disque, tu ne retrouvera rien. Si tu as seulement effacé une partition, par exemple avec gparted, alors je pense que seule la table des partitions a été atteinte et là testdisk peut tout retrouver.
Je ne sais pas exactement ce que mkswap fait sur le disque - avec un peut de chance il se contente de modifier l'en-tête de la partition pour indiquer que c'est du swap.

Peux tu donner le maximum d'infos sur ce disque :
- taille
- type de table des partitions (msdos ou gpt)
- nombre et type des partitions
- historique du disque (la structure des partitions a-t-elle changé plusieurs fois)

Toutes ces infos permettent d'avoir une idée de l'emplacement des partitions avant le pb et de restaurer si possible le partitionnement qui t'intéresse.
Sur des disques de récup non effacés (avec dd par exemple) ou peut retrouver des tas de choses (parfois confidentielles).


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#6 Le 08/10/2016, à 12:17

Untxia

Re : Reverter un mkswap

Rapide et constant. Merci encore smile

Alors il s'agit d'un DD 2To interne qui a été dès son acquisition installé par le DVD d'Ubuntu Studio en une partoche de presque 2 To pour / (en ext4) et un swap de 4 Go (et le reliquat je sais plus).

Avec le temps et le passage à 14.04 me semble-t-il, j'ai tout basculé sur un autre DD de 2 To et gardé celui-ci comme grosse archive rapide. Je n'avais rien changé aux partitions initiales créées par l'install Ubuntu, juste enlevé certains dossiers inutiles et encombrants.

Et donc, il n'a effectivement subi qu'un mkswap.

Testdisk trouve une table Intel, et comme je le disais, trouve bien l'ancienne partition et son contenu (avec la commande P après avoir utilisé la recherche approfondie au lieu du Quicksearch) (cf. photos en liens dans mon 2è post). Du coup je n'ai pas trop de craintes sur la possibilité de récupération, vu que le swap n'a jamais été effectivement activé (et que testdisk retrouve les entrées).

Ma question reste : dans quel état remettre la fameuse partition ? J'avoue ne pas trop avoir suivi l'évolution des différents types de partitions, étendues, principales, logiques, toussa, surtout depuis que je suis sous Linux.

Dernière modification par Untxia (Le 08/10/2016, à 12:24)

Hors ligne

#7 Le 08/10/2016, à 13:15

Nasman

Re : Reverter un mkswap

Les infos devraient se trouver dans la partition Linux commençant en CHS 0 32 33, soit à la LBA
LBA= 16065*C + 63*H + S -1 = 16065*0+32*63+33-1 = 2048
C'est le partitionnement classique de partitions alignées au Mio

Le partitionnement initial devait être (en LBA)
sda1 principale ext4 début 2048 fin 4381116719
sda2 étendue début 4381116720 fin 3907028991
sda5 logique linux-swap début 3899168768 fin 3907028991

et en CHS
sda1 début 0 32 33 fin 243711 230 15
sda2 début 242711  230 16 fin 243201 78 13
sda5 début 242712 7 48 fin 243201 78 13


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#8 Le 08/10/2016, à 13:40

Untxia

Re : Reverter un mkswap

Je traduis en n00b qui veut être absolument certain de ses manips avant de risquer de perdre plein de trucs wink :

Donc ça veut dire que je passe la partition

D Linux                    0  32 33 242711 230 15 3899164672

de "D" en "P" ? Ou en "*" ?
et que fais-je de

D Linux Swap               0  32 33 242711 230 15 3899164672

Je la laisse tel quel ?

Hors ligne

#9 Le 08/10/2016, à 13:48

Nasman

Re : Reverter un mkswap

La première Linux est à mettre en P (partition principale) et la deuxième linux-swap en L (logique)


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#10 Le 08/10/2016, à 13:55

Untxia

Re : Reverter un mkswap

Ok pour le P sur la 1ère. Mais la swap qui overlappe sur elle (je parle pas de la vraie petite swap de 4Go au bout du disque mais de celle accidentelle qui a été faite par le mkswap), je la laisse simplement en mode D ou j'y fais quelque chose ? Si je la réactive en la mettant en L ça va à nouveau faire un overlap non ?

Hors ligne

#11 Le 08/10/2016, à 15:19

Nasman

Re : Reverter un mkswap

Tu n'y touche pas. Tu l'oublies. Seule la partition Linux est importante, la deuxième en linux-swap est optionnelle mais si on peut retrouver l'état d'origine, on ne va pas se gêner.


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#12 Le 08/10/2016, à 16:31

Untxia

Re : Reverter un mkswap

Première tentative, pas très rassurante.
J'ai passé la partition Linux retrouvée en P. Ce qui donne

 1 P Linux                    0  32 33 242711 230 15 3899164672
 2 * Linux Swap           242712   7 48 243201  78 13    7860224

Je choisis bien Write, puis Y. Il me demande de rebooter, ce que je fais. Je lance Disques (gnome-disk-utility)... qui me dit que cette partition est un swap. sad
Je lance testdisk qui me dit pareil d'ailleurs. Sauf que, idem, si je fais un deep search, il retrouve bien ma partition ext4 et ses fichiers.

Je précise qu'évidemment c'était fait sous root.

Autre détail : au moment du Y, je n'ai pas vu de latence particulière, ni des plombes passées sur le disque (si c'est juste un header à changer c'est logique).

Hors ligne

#13 Le 08/10/2016, à 16:53

Untxia

Re : Reverter un mkswap

Bon. J'ai retenté la manip avec attention, et ça fait pareil. Au reboot j'ai lancé testdisk qui m'a d'abord dit ça :

 1 P Linux                    0  32 33 242711 230 15 3899164672
 1 P Linux                    0  32 33 242711 230 15 3899164672
 2 * Linux Swap           242712   7 48 243201  78 13    7860224

Puis je fais un Quicksearch, qui donne un résultat bien contradictoire :

>* Linux Swap               0  32 33 242711 230 15 3899164672
 P Linux Swap           242712   7 48 243201  78 13    7860224

Je lance un Deepsearch, et à nouveau...

>D Linux Swap               0  32 33 242711 230 15 3899164672
 D Linux                    0  32 33 242711 230 15 3899164672
 * Linux Swap           242712   7 48 243201  78 13    7860224

WTF ?! comme on dit en jeune...

Hors ligne

#14 Le 08/10/2016, à 17:02

Nasman

Re : Reverter un mkswap

Que donne

sudo fdisk -l
sudo dd if=/dev/sdb bs=512 count=1 | hexdump -C
sudo dd if=/dev/sdb bs=512 count=8 skip=2048 | hexdump -C

PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#15 Le 08/10/2016, à 17:25

Untxia

Re : Reverter un mkswap

Nasman a écrit :

Que donne

sudo fdisk -l
Disque /dev/sdb : 1,8 TiB, 2000398934016 octets, 3907029168 secteurs
Unités : sectors of 1 * 512 = 512 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00045d8d

Périphérique Amorçage      Start        Fin   Secteurs  Size Id Type
/dev/sdb1                   2048 3899166719 3899164672  1,8T 83 Linux
/dev/sdb2    *        3899168768 3907028991    7860224  3,8G 82 partition d'échange Linux / Solaris

Tu n'as pas besoin des autres disques ? Y'en a une tripotée. wink

Nasman a écrit :
sudo dd if=/dev/sdb bs=512 count=1 | hexdump -C
00000000  eb 63 90 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |.c..............|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
1+0 enregistrements lus
1+0 enregistrements écrits
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
00000050  00 00 00 00 00 00 00 00  00 00 00 80 01 00 00 00  |................|
512 bytes copied, 0,000159135 s, 3,2 MB/s
00000060  00 00 00 00 ff fa 90 90  f6 c2 80 74 05 f6 c2 70  |...........t...p|
00000070  74 02 b2 80 ea 79 7c 00  00 31 c0 8e d8 8e d0 bc  |t....y|..1......|
00000080  00 20 fb a0 64 7c 3c ff  74 02 88 c2 52 bb 17 04  |. ..d|<.t...R...|
00000090  f6 07 03 74 06 be 88 7d  e8 17 01 be 05 7c b4 41  |...t...}.....|.A|
000000a0  bb aa 55 cd 13 5a 52 72  3d 81 fb 55 aa 75 37 83  |..U..ZRr=..U.u7.|
000000b0  e1 01 74 32 31 c0 89 44  04 40 88 44 ff 89 44 02  |..t21..D.@.D..D.|
000000c0  c7 04 10 00 66 8b 1e 5c  7c 66 89 5c 08 66 8b 1e  |....f..\|f.\.f..|
000000d0  60 7c 66 89 5c 0c c7 44  06 00 70 b4 42 cd 13 72  |`|f.\..D..p.B..r|
000000e0  05 bb 00 70 eb 76 b4 08  cd 13 73 0d 5a 84 d2 0f  |...p.v....s.Z...|
000000f0  83 d0 00 be 93 7d e9 82  00 66 0f b6 c6 88 64 ff  |.....}...f....d.|
00000100  40 66 89 44 04 0f b6 d1  c1 e2 02 88 e8 88 f4 40  |@f.D...........@|
00000110  89 44 08 0f b6 c2 c0 e8  02 66 89 04 66 a1 60 7c  |.D.......f..f.`||
00000120  66 09 c0 75 4e 66 a1 5c  7c 66 31 d2 66 f7 34 88  |f..uNf.\|f1.f.4.|
00000130  d1 31 d2 66 f7 74 04 3b  44 08 7d 37 fe c1 88 c5  |.1.f.t.;D.}7....|
00000140  30 c0 c1 e8 02 08 c1 88  d0 5a 88 c6 bb 00 70 8e  |0........Z....p.|
00000150  c3 31 db b8 01 02 cd 13  72 1e 8c c3 60 1e b9 00  |.1......r...`...|
00000160  01 8e db 31 f6 bf 00 80  8e c6 fc f3 a5 1f 61 ff  |...1..........a.|
00000170  26 5a 7c be 8e 7d eb 03  be 9d 7d e8 34 00 be a2  |&Z|..}....}.4...|
00000180  7d e8 2e 00 cd 18 eb fe  47 52 55 42 20 00 47 65  |}.......GRUB .Ge|
00000190  6f 6d 00 48 61 72 64 20  44 69 73 6b 00 52 65 61  |om.Hard Disk.Rea|
000001a0  64 00 20 45 72 72 6f 72  0d 0a 00 bb 01 00 b4 0e  |d. Error........|
000001b0  cd 10 ac 3c 00 75 f4 c3  8d 5d 04 00 00 00 00 20  |...<.u...]..... |
000001c0  21 00 83 fe ff ff 00 08  00 00 00 88 68 e8 80 fe  |!...........h...|
000001d0  ff ff 82 fe ff ff 00 98  68 e8 00 f0 77 00 00 00  |........h...w...|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
Nasman a écrit :
sudo dd if=/dev/sdb bs=512 count=8 skip=2048 | hexdump -C
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000400  01 00 00 00 ff 10 0d 1d  00 00 00 00 d7 40 fb c7  |.............@..|
00000410  85 fa 4e 55 b8 b1 97 ea  5d 63 74 a1 00 00 00 00  |..NU....]ct.....|
00000420  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000ff0  00 00 00 00 00 00 53 57  41 50 53 50 41 43 45 32  |......SWAPSPACE2|
8+0 enregistrements lus
8+0 enregistrements écrits
4096 bytes (4,1 kB, 4,0 KiB) copied, 0,000233709 s, 17,5 MB/s
00001000

Hors ligne

#16 Le 08/10/2016, à 18:21

Nasman

Re : Reverter un mkswap

La table des partitions est correcte mais la partition de swap est passée en principale (je ne pense pas que celà soit grave) ; cependant la zone amorce de sdb1 est atteinte : on voit SWAPSPACE2 qui correspond à du swap.
En ext4 on devrait avoir les données qui commence à l'offset 400 avec le dernier point de montage en 488 (il y a des zéros à la place).

Avec testdisk, peut tu effectuer un deeper search sur le disque, sélectionner cette partition et faire un listfiles (p pour afficher les fichiers et répertoires).
Si tu peux les voir alors tu pourras peut être les copier sur un autre support.

Je ne sais pas si un fsck pourrait réparer la partition. Je ne tenterais pas avant d'avoir sauvegardé ce qui peux l'être.


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#17 Le 08/10/2016, à 18:31

Untxia

Re : Reverter un mkswap

Oui je peux voir mes fichiers avec la commande P. Tout semble être là (à la pelle).

Cette copie, c'est fichier par fichier ? Parce qu'il y en a des dizaines de milliers... Et dans les 1,5 To.

Fsck, on peut pas le lancer en lecture seule pour voir ce qu'il en dit ?

Et une idée pourquoi testdisk semblait s'en sortir ? Y'a pas un backup des infos de partitionnement à faire ? Est-ce que le fait que je boote sur un autre disque change quelque-chose (merdage grub ?) ?

Hors ligne

#18 Le 08/10/2016, à 18:36

Nasman

Re : Reverter un mkswap

Tu peux copier le répertoire parent (avec ce qu'il contient).
fsck est sensé corriger les problèmes du système de fichier mais il risque de faire encore plus de dégâts (tu peux tenter après avoir récupéré tes données)


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#19 Le 08/10/2016, à 18:53

Untxia

Re : Reverter un mkswap

Bon ben va falloir faire ça à la main morceau par morceau, sans même savoir combien contient chaque répertoire, car je n'ai pas de disque avec 1,5 To de libre d'un trait. sad

Hors ligne

#20 Le 08/10/2016, à 18:59

Nasman

Re : Reverter un mkswap

En règle générale, la meilleure situation pour retrouver des données, c'est immédiatement après avoir constaté le pb. Toutes les opérations faites après (écriture sur le disque) réduisent les chances de restauration des données.
Si actuellement tes données sont lisible il faut en profiter. fsck peut sans doute corriger le système de fichier et rétablir les inodes mais en cas d'erreur tu réduiras tes chances de récupération.


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#21 Le 08/10/2016, à 20:01

Untxia

Re : Reverter un mkswap

Ok. Ça va être laborieux donc. big_smile
J'ai lancé la copie d'un premier répertoire. On en est à 300Go pour plus de 30000 fichiers et ça continue. Espérons qu'il y aura assez de place sur le disque de réception. big_smile

Je vais jusqu'au bout du backup fichiers, puis lance le fsck histoire de vérifier si c'est une solution fonctionnelle et pas dangereuse. Le cas échéant je reformaterai le disque et y remettrait tout ce qu'il contenait. J'vous tiens au jus. Merci pour tout. smile

[Edit]
En cours de laborieuse sauvegarde sous-sous-sous-sous-dossier par sous.... Désolé pour le suspense. Mais ça vaut le coup d'aller jusqu'au bout et tester fsck pour tenter la réparation avant de classer le topic, histoire d'être utile smile

Dernière modification par Untxia (Le 10/10/2016, à 14:54)

Hors ligne