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

sauver le contenu d'un disque (avec dd ?)

15 réponses
Avatar
Thomas
bonjour :-)


un voisin m'a refilé un disque malade en me demandant si je pouvais
récupérer le maximum de contenu

précision : c'est un disque au format fat32 que je traite avec mac os x


bash-3.2$ sudo dd if=/dev/disk2 of=/dev/null bs=1m
dd: /dev/disk2: Input/output error
0+0 records in
0+0 records out
0 bytes transferred in 141.310372 secs (0 bytes/sec)
bash-3.2$ sudo dd if=/dev/disk2 of=/dev/null bs=1m iseek=1
Password:
dd: /dev/disk2: Input/output error
0+0 records in
0+0 records out
0 bytes transferred in 42.523466 secs (0 bytes/sec)
bash-3.2$ sudo dd if=/dev/disk2 of=/dev/null bs=1m iseek=2
dd: /dev/disk2: Input/output error
0+0 records in
0+0 records out
0 bytes transferred in 28.285123 secs (0 bytes/sec)
bash-3.2$ sudo dd if=/dev/disk2 of=/dev/null bs=1m iseek=10
dd: /dev/disk2: Input/output error
0+0 records in
0+0 records out
0 bytes transferred in 29.139328 secs (0 bytes/sec)
bash-3.2$ sudo dd if=/dev/disk2 of=/dev/null bs=1m iseek=100
dd: /dev/disk2: Input/output error
1210+0 records in
1210+0 records out
1268776960 bytes transferred in 164.651984 secs (7705810 bytes/sec)
bash-3.2$


si j'ai bien compris le principe du format iso, il suffit que je face
dd if=/dev/disk1 of=fichier.iso
sur un disque en bon état pour avoir une image disque qu'on peut gérer
comme on veut ensuite ?

est il possible de demander à dd de lire tout ce qu'il peut, en laissant
des blancs dans le ficher de destination quand le disque fait une
erreur, mais en continuant avec les blocs suivants ?

si je me souviens bien, les disques fonctionnent avec des blocs, et
quand il y en a un de défectueux on ne peut plus lire aucune donnée
dessus, tout le bloc est perdu ?
donc j'ai intérêt à m'ajuster à la taille des blocs du disque, de
manière à ne pas rater les données du bloc suivant, mais à ne pas non
plus gaspiller les ressources de l'ordi à essayer de lire chaque octet
un par un ?

--
Téléassistance / Télémaintenance
http://invites.biocer.fr/thomas-de-contes/

10 réponses

1 2
Avatar
Lucas Levrel
Bonjour,

Le 9 février 2014, Thomas a écrit :
si j'ai bien compris le principe du format iso, il suffit que je face
dd if=/dev/disk1 of=fichier.iso
sur un disque en bon état pour avoir une image disque qu'on peut gérer
comme on veut ensuite ?



Le format ISO, ça n'existe pas. L'ISO9660 est la norme des CD-ROM.

Là tu fais une image disque (un fichier qui reflète le contenu du
disque) ; tu peux la nommer comme tu veux
(fichier.ma-belle-extension-ou-pas par exemple).

est il possible de demander à dd de lire tout ce qu'il peut, en laissant
des blancs dans le ficher de destination quand le disque fait une
erreur, mais en continuant avec les blocs suivants ?



man dd :
noerror
Do not stop processing on an input error. When an input error
occurs, a diagnostic message shall be written on standard error,
followed by the current input and output block counts in the
same format as used at completion (see the STDERR section). If
the sync conversion is specified, the missing input shall be
replaced with null bytes and processed normally; otherwise, the
input block shall be omitted from the output.

Donc utilise noerror sync, mais si la table de fichiers est morte les
secteurs à 0 ne te serviront à rien.

Note que la page de man POSIX sur mon Linux donne skip= et non pas iseek=,
donc vérifie la syntaxe dans le man de ton Mac.

si je me souviens bien, les disques fonctionnent avec des blocs, et
quand il y en a un de défectueux on ne peut plus lire aucune donnée
dessus, tout le bloc est perdu ?



Je crois aussi, mais en remplaçant « bloc » par « secteur ».

donc j'ai intérêt à m'ajuster à la taille des blocs du disque, de
manière à ne pas rater les données du bloc suivant, mais à ne pas non
plus gaspiller les ressources de l'ordi à essayer de lire chaque octet
un par un ?



Je ne sais pas trop ce qu'est « gaspiller les ressources de l'ordi », mais
c'est surtout une question de temps.

--
LL
Eν οιδα οτι ουδεν οιδα (Σωκρατης)
Avatar
Philippe Naudin
Le lun. 10 févr. 2014 11:37:08 CET, Lucas Levrel a écrit:

Bonjour,

Le 9 février 2014, Thomas a écrit :
...
> est il possible de demander à dd de lire tout ce qu'il peut, en laissant
> des blancs dans le ficher de destination quand le disque fait une
> erreur, mais en continuant avec les blocs suivants ?
...



Dans le passé, j'ai obtenu de bons résultats avec ddrescue
(http://www.gnu.org/software/ddrescue/). Il me semble qu'il est aussi
disponible pour MacOS...

--
Philippe Naudin
Avatar
Thomas
In article ,
Philippe Naudin <p.naudin+ wrote:

Le lun. 10 févr. 2014 11:37:08 CET, Lucas Levrel a écrit:

> Bonjour,
>
> Le 9 février 2014, Thomas a écrit :
> ...
> > est il possible de demander à dd de lire tout ce qu'il peut, en laissant
> > des blancs dans le ficher de destination quand le disque fait une
> > erreur, mais en continuant avec les blocs suivants ?
> ...

Dans le passé, j'ai obtenu de bons résultats avec ddrescue
(http://www.gnu.org/software/ddrescue/). Il me semble qu'il est aussi
disponible pour MacOS...



merci pour l'info :-)

je vais quand même essayer d'abord avec dd parce que
- je n'ai pas plusieurs copies de ce disque, du coup dd semble savoir
faire le même boulot si on met les bonnes options
- il est installé par défaut avec mac os x, et pas ddrescue

--
Téléassistance / Télémaintenance
http://invites.biocer.fr/thomas-de-contes/
Avatar
Thomas
mon client forums a un pb avec l'utf-8, alors je sais pas ce que 溝 va donner avec les accents


In article ,
Lucas Levrel wrote:

Bonjour,

Le 9 f思rier 2014, Thomas a 残rit :
> si j'ai bien compris le principe du format iso, il suffit que je face
> dd if=/dev/disk1 of=fichier.iso
> sur un disque en bon 師at pour avoir une image disque qu'on peut g屍er
> comme on veut ensuite ?

Le format ISO, 溝 n'existe pas. L'ISO9660 est la norme des CD-ROM.

L� tu fais une image disque (un fichier qui refl春e le contenu du
disque)ハ; tu peux la nommer comme tu veux
(fichier.ma-belle-extension-ou-pas par exemple).



ah, bon
enfin, 溝 fonctionne comme je l'avais compris, sauf que j'ai pas utilis�
les bons mots
(sauf si j'ai pas compris non plus ta r姿onse)


> est il possible de demander � dd de lire tout ce qu'il peut, en laissant
> des blancs dans le ficher de destination quand le disque fait une
> erreur, mais en continuant avec les blocs suivants ?

man dd :
noerror
If the sync conversion is specified,



merci, j'avais pas regard� du tout la partie avec conv :-)


Donc utilise noerror sync, mais si la table de fichiers est morte les
secteurs � 0 ne te serviront � rien.



et ce que dans ce cas c'est irr残up屍able, ou est ce qu'on pourra encore
r残up屍er des morceaux mais sans qu'il sache relier le contenu d'un
fichier avec son nom par ex ?


Note que la page de man POSIX sur mon Linux donne skip= et non pas iseek=,
donc v屍ifie la syntaxe dans le man de ton Mac.



oui, j'ai les 2,
pas vraiment d'indications pour dire qu'il vaut mieux utiliser l'un que
l'autre


> si je me souviens bien, les disques fonctionnent avec des blocs, et
> quand il y en a un de d伺ectueux on ne peut plus lire aucune donn仔
> dessus, tout le bloc est perdu ?

Je crois aussi, mais en rempla溝nt ヌハblocハネ par ヌハsecteurハネ.



ok :-)


> donc j'ai int屍腎 � m'ajuster � la taille des blocs du disque, de
> mani俊e � ne pas rater les donn仔s du bloc suivant, mais � ne pas non
> plus gaspiller les ressources de l'ordi � essayer de lire chaque octet
> un par un ?

Je ne sais pas trop ce qu'est ヌハgaspiller les ressources de l'ordiハネ,



processeur, acc峻 disque, BP r市eau, ...

mais
c'est surtout une question de temps.



donc du processeur, donc de l'四ectricit� et de la chauffe

mais potentiellement, si on lit un octet � la fois avec des secteurs de
4 Ko, on risque de faire 4096 tentatives de lecture du m仁e secteur,
donc usure acc四屍仔 d'un disque d史� mal en point
(je ne sais pas si c'es le cas)


comment connait on la taille d'un secteur ?
est ce que dd peut la trouver tout seul ?

--
T四斬ssistance / T四士aintenance
http://invites.biocer.fr/thomas-de-contes/
Avatar
Philippe Weill
Le 16/02/2014 20:52, Thomas a écrit :
mon client forums a un pb avec l'utf-8, alors je sais pas ce que 溝 va donner avec les accents


In article ,
Lucas Levrel wrote:

Bonjour,

Le 9 f思rier 2014, Thomas a 残rit :
si j'ai bien compris le principe du format iso, il suffit que je face
dd if=/dev/disk1 of=fichier.iso
sur un disque en bon 師at pour avoir une image disque qu'on peut g屍er
comme on veut ensuite ?



Le format ISO, 溝 n'existe pas. L'ISO9660 est la norme des CD-ROM.

L� tu fais une image disque (un fichier qui refl春e le contenu du
disque)ハ; tu peux la nommer comme tu veux
(fichier.ma-belle-extension-ou-pas par exemple).



ah, bon
enfin, 溝 fonctionne comme je l'avais compris, sauf que j'ai pas utilis�
les bons mots
(sauf si j'ai pas compris non plus ta r姿onse)


est il possible de demander � dd de lire tout ce qu'il peut, en laissant
des blancs dans le ficher de destination quand le disque fait une
erreur, mais en continuant avec les blocs suivants ?



man dd :
noerror
If the sync conversion is specified,



merci, j'avais pas regard� du tout la partie avec conv :-)


Donc utilise noerror sync, mais si la table de fichiers est morte les
secteurs � 0 ne te serviront � rien.





pas forcément avec les alternate bloc du filesystem
une fois que l'on a fait l'image avec dd
on peut l'analyser avec l'excellent outil testdisk voir meme la réparer

http://www.cgsecurity.org/wiki/TestDisk
http://perrohunter.com/repair-a-mac-os-x-hfs-partition-table/


et ce que dans ce cas c'est irr残up屍able, ou est ce qu'on pourra encore
r残up屍er des morceaux mais sans qu'il sache relier le contenu d'un
fichier avec son nom par ex ?



pour aller un cran plus loin et tenter de récupérer quelques types de fichiers
http://www.cgsecurity.org/wiki/PhotoRec




Note que la page de man POSIX sur mon Linux donne skip= et non pas iseek=,
donc v屍ifie la syntaxe dans le man de ton Mac.



oui, j'ai les 2,
pas vraiment d'indications pour dire qu'il vaut mieux utiliser l'un que
l'autre


si je me souviens bien, les disques fonctionnent avec des blocs, et
quand il y en a un de d伺ectueux on ne peut plus lire aucune donn仔
dessus, tout le bloc est perdu ?



Je crois aussi, mais en rempla溝nt ヌハblocハネ par ヌハsecteurハネ.



ok :-)


donc j'ai int屍腎 � m'ajuster � la taille des blocs du disque, de
mani俊e � ne pas rater les donn仔s du bloc suivant, mais � ne pas non
plus gaspiller les ressources de l'ordi � essayer de lire chaque octet
un par un ?



Je ne sais pas trop ce qu'est ヌハgaspiller les ressources de l'ordiハネ,



processeur, acc峻 disque, BP r市eau, ...

mais
c'est surtout une question de temps.



donc du processeur, donc de l'四ectricit� et de la chauffe

mais potentiellement, si on lit un octet � la fois avec des secteurs de
4 Ko, on risque de faire 4096 tentatives de lecture du m仁e secteur,
donc usure acc四屍仔 d'un disque d史� mal en point
(je ne sais pas si c'es le cas)


comment connait on la taille d'un secteur ?
est ce que dd peut la trouver tout seul ?

Avatar
Lucas Levrel
Le 16 février 2014, Thomas a écrit :

comment connait on la taille d'un secteur ?



À ma connaissance c'est toujours 512 octets (sauf sur disque optique). Le
nombre de secteurs par bloc dépend en revanche du système de fichier.

--
LL
Eν οιδα οτι ουδεν οιδα (Σωκρατης)
Avatar
Nicolas George
Lucas Levrel , dans le message
, a écrit :
À ma connaissance c'est toujours 512 octets (sauf sur disque optique).



Ça fait quelques années que les disques durs ont des secteurs de
4096 octets.
Avatar
Lucas Levrel
Le 25 février 2014, Nicolas George a écrit :

Lucas Levrel , dans le message
, a écrit :
À ma connaissance c'est toujours 512 octets (sauf sur disque optique).



Ça fait quelques années que les disques durs ont des secteurs de
4096 octets.



Au temps pour moi alors. C'est sfdisk qui m'a menti.

--
LL
Eν οιδα οτι ουδεν οιδα (Σωκρατης)
Avatar
Thomas
In article <530c5f42$0$2193$,
Nicolas George <nicolas$ wrote:

Lucas Levrel , dans le message
, a écrit :
> À ma connaissance c'est toujours 512 octets (sauf sur disque optique).

Ça fait quelques années que les disques durs ont des secteurs de
4096 octets.



merci :-)


alors j'ai commencé avec 512 par précaution,
je me suis dit qu'il vaut mieux relire 8 fois le même bloc plutôt que de
rater des morceaux récupérables en ayant mis un chiffre trop gros

mais ça fait quand même un peu long ... c'est parti pour durer 20 j !


donc j'ai changé d'avis, et si je peux diviser la durée de traitement
par 8 je préfère ! ...

alors ce qui est un peu bizarre, c'est que j'ai des groupes d'erreurs de
longueurs diverses, des fois par 5, des fois une toute seule, ...
mais le plus souvent par 8, quand même

alors à votre avis, qq ça veut dire ?

http://dl.free.fr/mUAwoHHfZ



(heureusement que j'ai pas essayé par 1 o à la fois, ça aurais mis 30
ans, au lieu de 20 j :-D )

--
Téléassistance / Télémaintenance
http://invites.biocer.fr/thomas-de-contes/
Avatar
Gugus
Hello,

Ce cher Thomas a posté :


alors ce qui est un peu bizarre, c'est que j'ai des groupes d'erreurs de
longueurs diverses, des fois par 5, des fois une toute seule, ...
mais le plus souvent par 8, quand même

alors à votre avis, qq ça veut dire ?

http://dl.free.fr/mUAwoHHfZ




Mhm, soit le disque est très mal en point, soit c’est le chip sata qui a
un problème - à supposer que ce soit un disque sata, j’ai pas tout suivi
- (ce genre de blague m’est déjà arrivée)

As-tu testé l’accès à ton disque depuis une autre machine ?


--
Gugus [http://what.dafuq.it/]
1 2