sauver le contenu d'un disque (avec dd ?)
Le
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
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 iseek0
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/
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
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 iseek0
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/
Le 9 février 2014, Thomas a écrit :
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).
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.
Je crois aussi, mais en remplaçant « bloc » par « secteur ».
Je ne sais pas trop ce qu'est « gaspiller les ressources de l'ordi », mais
c'est surtout une question de temps.
--
LL
Eν οιδα οτι ουδεν οιδα (Σωκρατης)
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
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/
In article Lucas Levrel
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)
merci, j'avais pas regard� du tout la partie avec conv :-)
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 ?
oui, j'ai les 2,
pas vraiment d'indications pour dire qu'il vaut mieux utiliser l'un que
l'autre
ok :-)
processeur, acc峻 disque, BP r市eau, ...
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/
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/
pour aller un cran plus loin et tenter de récupérer quelques types de fichiers
http://www.cgsecurity.org/wiki/PhotoRec
À 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ν οιδα οτι ουδεν οιδα (Σωκρατης)
Ç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ν οιδα οτι ουδεν οιδα (Σωκρατης)
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/
Ce cher Thomas
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/]