Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tentative de restauration d'un device sur une copie plus petite

13 réponses
Avatar
Francois Lafont
Bonjour à tous,

Soit un device /dev/drbd0 qui est en vrac (c'est un device
provenant de drbd mais ce n'est pas mon propos ici, enfin je crois).
En principe, ce device correspond à une partition en ext4 que l'on
monte de manière classique.

Le file système est en vrac et impossible de monter le device car
on se prend un message du genre :

« mount: wrong fs type, bad option, bad superblock... »

bien sûr on tente bien de monter du ext4 et le device est bien
du ext4 à la base.

Bref, il faudrait réparer le file system mais on ne veut pas le
faire en direct et donc on s'arrange pour faire une copie via le
réseau de tout le device sur une autre machine et ensuite faire
des tentatives de récup sur la copie. Mais le souci, c'est que
le device est assez gros (3 To environ) et la copie est super
longue.

Voici ma question : est-ce qu'il n'y a pas moyen de faire une
copie plus petite du device et de faire des essais sur cette copie
plus petite (par exemple ne copier que les N premiers octets
du device) ? Bref, pouvoir se créer une copie du device d'origine
afin de faire des tests qui restent probants mais sur une copie de
taille plus petite que le device d'origne. Est-ce possible ?

Merci d'avance pour votre aide.

PS : on a bien sûr des sauvegardes, mais ça nous arrangerais bien
de pouvoir récupérer le FS pour ne pas perdre un delta.

--
François Lafont

10 réponses

1 2
Avatar
Philippe Naudin
Le lun. 24 févr. 2014 14:03:57 CET, Francois Lafont a écrit:

Bonjour à tous,
... Voici ma question : est-ce qu'il n'y a pas moyen de faire une
copie plus petite du device et de faire des essais sur cette copie
plus petite (par exemple ne copier que les N premiers octets
du device) ? Bref, pouvoir se créer une copie du device d'origine
afin de faire des tests qui restent probants mais sur une copie de
taille plus petite que le device d'origne. Est-ce possible ?



Si le filesystem d'origine n'était pas plein "raz-la-gueule", tu peux
utiliser ddrescue --sparse qui va te créer un fichier sparse contenant
toutes les données encore lisibles sur ton disque. Fonctionne avec une
partition ou avec un disque entier, et l'image est bien entendu
utilisable de la même façon qu'une image "non sparse".

La taille du fichier sparse dépendra de la quantité de données
récupérées. Un filesystem foireux reste un filesystem foireux après ce
genre de traitement, même sur l'image, il n'y aura pas de miracle.

Bonne chance,

--
Philippe Naudin
Avatar
Emmanuel Florac
Le Mon, 24 Feb 2014 14:03:57 +0100, Francois Lafont a écrit:


Voici ma question : est-ce qu'il n'y a pas moyen de faire une copie plus
petite du device et de faire des essais sur cette copie plus petite (par
exemple ne copier que les N premiers octets du device) ? Bref, pouvoir
se créer une copie du device d'origine afin de faire des tests qui
restent probants mais sur une copie de taille plus petite que le device
d'origne. Est-ce possible ?



C'est très facile avec xfs, mais à ma connaissance c'est impossible avec
ext4. Ça fait partie des très nombreux avantages de xfs dès qu'on a de
gros périphériques.

Bref, le plus simple est probablement de faire un brain-split drbd et un
fsck...

--
That ideas should freely spread from one to another over the globe,
for the moral and mutual instruction of man, and the improvement of his
conditions, seems to have been peculiarly and benevolently designed by
nature, when she made them, like fire, expansible over all space,
without lessening their density in any point, and like the air in which
we breathe, move, and have our physical being, incapable of confinement
of exclusive appropriation. Inventions then cannot, in nature, be a
subject of property.
Thomas Jefferson.
Avatar
Francois Lafont
Le 24/02/2014 17:44, Philippe Naudin a écrit :

Si le filesystem d'origine n'était pas plein "raz-la-gueule", tu peux
utiliser ddrescue --sparse qui va te créer un fichier sparse contenant
toutes les données encore lisibles sur ton disque. Fonctionne avec une
partition ou avec un disque entier, et l'image est bien entendu
utilisable de la même façon qu'une image "non sparse".

La taille du fichier sparse dépendra de la quantité de données
récupérées. Un filesystem foireux reste un filesystem foireux après ce
genre de traitement, même sur l'image, il n'y aura pas de miracle.



Merci pour cette piste. Hélas, le filesystem d'origine était bien
rempli alors j'ai peur qu'on ne gagne pas grand chose en espace
avec "ddrescue --sparse".

--
François Lafont
Avatar
Francois Lafont
Bonsoir,

Le 24/02/2014 21:13, Emmanuel Florac a écrit :

C'est très facile avec xfs, mais à ma connaissance c'est impossible avec
ext4. Ça fait partie des très nombreux avantages de xfs dès qu'on a de
gros périphériques.



Ok, tant pis.

Bref, le plus simple est probablement de faire un brain-split drbd et un
fsck...



On va faire ça effectivement, mais sur une copie du device.
Merci pour la réponse.

--
François Lafont
Avatar
Francois Lafont
Bonsoir,

Accessoirement, si vous avez de la bonne doc sur ext4,
genre un peu bas niveau, ça m'intéresse... le genre de
doc qu'on lit quand on a un coup dur. :-)

--
François Lafont
Avatar
Sergio
Le 25/02/2014 00:08, Francois Lafont a écrit :

Accessoirement, si vous avez de la bonne doc sur ext4,
genre un peu bas niveau, ça m'intéresse... le genre de
doc qu'on lit quand on a un coup dur. :-)



T'as ça :
https://ext4.wiki.kernel.org/index.php/Main_Page

(c'est le wiki officiel)

Sinon, sous le coude j'ai "Programmation linux 2.0" où Rémy Card, auteur du FS ext2 (d'où dérive ext3), qui explique comment hacker
le kernel avec l'exemple de ext2. C'est un peu vieux mais...

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Lucas Levrel
Le 24 février 2014, Francois Lafont a écrit :

Voici ma question : est-ce qu'il n'y a pas moyen de faire une
copie plus petite du device et de faire des essais sur cette copie
plus petite (par exemple ne copier que les N premiers octets
du device) ? Bref, pouvoir se créer une copie du device d'origine
afin de faire des tests qui restent probants mais sur une copie de
taille plus petite que le device d'origne. Est-ce possible ?



Pourquoi pas, pour commencer, un dd avec un count= réduit pour chercher un
superbloc valide ?

(As-tu gardé la sortie de mke2fs pour savoir où sont les superblocs de
secours ?)

--
LL
Eν οιδα οτι ουδεν οιδα (Σωκρατης)
Avatar
Francois Lafont
Le 25/02/2014 07:07, Sergio a écrit :

T'as ça :
https://ext4.wiki.kernel.org/index.php/Main_Page

(c'est le wiki officiel)

Sinon, sous le coude j'ai "Programmation linux 2.0" où Rémy Card, auteur
du FS ext2 (d'où dérive ext3), qui explique comment hacker le kernel
avec l'exemple de ext2. C'est un peu vieux mais...



Ok, merci bien.



--
François Lafont
Avatar
Francois Lafont
Le 25/02/2014 09:48, Lucas Levrel a écrit :

Pourquoi pas, pour commencer, un dd avec un count= réduit pour chercher
un superbloc valide ?



On a essayé des combines sur une copie du « début » du device, mais sans
succès. De toute façon, on ne souhaite rien faire (en écriture) sur le
device en lui-même pour l'instant. On attend que la copie se finisse pour
faire des tests sur la copie mais c'est long.

(As-tu gardé la sortie de mke2fs pour savoir où sont les superblocs de
secours ?)



Heu, non mais je crois qu'on peut les obtenir avec :

dumpe2fs /dev/drbd0 | grep -i superblock

Si je veux tester un recovery du superblock sur un device de test, comment
faire pour péter le superblock avec dd par exemple ? Où se situe-t-il dans
le device ?


--
François Lafont
Avatar
Loki Harfagr
Tue, 25 Feb 2014 15:22:09 +0100, Francois Lafont did cat :

Le 25/02/2014 09:48, Lucas Levrel a écrit :

Pourquoi pas, pour commencer, un dd avec un count= réduit pour chercher
un superbloc valide ?



On a essayé des combines sur une copie du « début » du device, mais sans
succès. De toute façon, on ne souhaite rien faire (en écriture) sur le
device en lui-même pour l'instant. On attend que la copie se finisse pour
faire des tests sur la copie mais c'est long.

(As-tu gardé la sortie de mke2fs pour savoir où sont les superblocs de
secours ?)



Heu, non mais je crois qu'on peut les obtenir avec :

dumpe2fs /dev/drbd0 | grep -i superblock

Si je veux tester un recovery du superblock sur un device de test, comment
faire pour péter le superblock avec dd par exemple ? Où se situe-t-il dans
le device ?



presque dans la même idée tu peux peut-être essayer de voir ce
que l'outil TestDisk raconte sur une "copie du début du device"
ça peut aider à imaginer une piste (voire à raccourcir le temps
perdu avant abandon au cas où cet outil se dit désemparé même
dans version 7.0 :D)
Et de toutes façons les divers documents que tu trouveras sur le
site de cgsecurity.com à la section TestDisk complèteront ta question
au sujet des trucs de filesystems ;-)
1 2