Gamoover

[move]Bienvenue sur Gamoover, portail francophone de l'arcade.

Proposition de tuto : Restaurer un disque dur de borne à partir d'un CHD

Démarré par mioux, Mardi 01 Juillet 2008, 01:50:59 AM

mioux

Allez, comme je suis de bonne humeur aujourd'hui, je vais vous expliquer comment

Restaurer un disque dur de borne à partir d'un CHD à l'aide de Linux

Disclaimer : J'ai honte je connais pas le terme Français... Déchargement de responsabilité ?
L'opération décrite si dessous va faire une restauration physique d'une unité de stockage. Ni l'auteur du tutoriel, ni Gamoover ne peut être tenu responsable en cas de panne matérielle, ou de pertes de données suite à une mauvaise manipulation ou même en suivant le tuto de A à Z. La méthode n'est pas garantie à 100%, nous ne sommes pas non plus responsables si la manipulation ne fonctionne pas au final ou si elle endomage votre matériel. En gros, effectuez cette opération à vos risques et périls. Toutes les manipulations suivantes ont été effectuées sur une machine virtuelle, et ne sont qu'un reflet de ce que vous aurez à l'écran.

Etape 0 : Les prérequis
Et une petite explication aussi... pourquoi passer par Linux ? Parce qu'un membre de Gamoover (HeroSuperMan) [je demanderai aux rédacteurs/correcteurs de laisser ce lien, car le texte étant sous la licence GPL, il convient de garder une trace du site d'origine quelque part, même si le "copieur" peut en toute légitimité retirer ce texte] n'a pas pu restaurer son disque avec l'utilitaire de mame (à savoir CHDMAN) donc je propose une alternative "simple", non sans risque mais efficace (en tout cas sur des machines virtuelles :D).

Tout d'abbord, les choses à avoir sous la main :
Il faut un disque dur. Malheureusement, il y a sûrement une partition déjà présente dessus, et même si ce n'est pas gênant, il sera plus simple pour la suite si le disque est complettement vide.

Rendez vous dans le gestionnaire de disques logiques :

Pour celà, un simple clic droit sur le poste de travail => Gérer



Puis sélectionnez "Gestion des disques logiques". Voilà ce que vous devez avoir pour le moment :



On va commencer par supprimer la disgracieuse partition /!\ Attention /!\ Toutes les données vont être effacées du disques, faites des sauvegardes AVANT cette opération. Mais ca devrait déjà être fait, puisque ce disque va disparaitre dans une borne d'arcade pour la bonne cause :D.

Pour celà rien de plus simple... Clic droit sur la partition => Supprimer



Voilà le disque dur est prêt.

Autre prérequis, quelques fichiers ma foi fort utiles, puisqu'il s'agit de ce qui va nous permettre de recréer le disque dur dans sa globalité.

Il faut :

  • Mame. Ici, vous disposerez de la toute dernière version stable, mais n'importe quel mame devrait suffire
  • Ubuntu. Ici aussi vous aurez la dernière version en date. Je sais c'est un poil hardcore comme téléchargement pour une simple restauration de disque dur de télécharger une image de 700Mo, mais c'est une distribution bien concue, qui nous permettra d'éviter certaines erreurs (je voulais tenter avec DSL (Damn Small Linux : 50Mo), mais ne connaissant pas la distribution, je ne savait pas comment repérer "le bon disque dur" au moment de la réécriture... donc par sécurité, je préfère Ubuntu... Toute suggestion quand à une autre distribution, ou autre solution avec DSL est bienvenue, l'essentiel des commandes pour la restauration étant identiques).
  • L'image compressée du disque dur que vous voulez récupérer. Ici pas de lien, à vous de la trouver par vous même, pour raisons légales bien entendu.

Etape 1 : Extraction des données

Nous allons maintenant extraire le RAW du disque dur (les données brutes, telles qu'elles sont écrites sur le disque dur)

Pour celà, il faut extraire mame quelque part (ici je l'avait déjà fait) et mettre le fichier chd dans ce repertoire pour plus de commodités.



Ensuite lancez une ligne de commande. Pour celà cliquez sur démarrer => exécuter => tapez cmd => OK



Rendez vous dans le repertoire où vous avez extrait mame :
X:
cd "\repertoire\de\mame"


où X: correspond au disque où vous l'avez extrait, et \repertoire\de\mame, le repertoire où vous avez extrait mame. Les "" ne sont obligatoires que si il y a des espaces dans le nom du repertoire. Vous pouvez éviter de taper le nom des répertoires en commencant à l'écrire puis en appuant sur tab. Pour faire défiler les différentes possibilités, appuyez plusieurs fois sur tab.

Ensuite on extrait le fichier chd en fichier raw
chdman -extract area51.chd area51.raw



L'opération est plus ou moins longue en fonction de la taille réelle du disque dur (ici, il fait tout de même 1,2Go une fois extrait. La preuve en image



Vous pouvez en déduire qu'il vous faut un disque dur d'au minimum 1,2Go pour remplacer le votre (en tout cas pour Area 51)

Enfin, gravez sur une galette l'image de Ubuntu avec votre logiciel préféré. N'ayant pas besoin de le faire (je travaille sur une machine virtuelle) je vous laisse le soin de le faire de la manière que vous voulez...

La partie Windows du travail est terminée.

Etape 2 : Restauration des données

La partie "la plus dure" du tuto. Redémarrez votre ordinateur avec la galette dedans. Si windows démarre, attendez le chargement complet de la machine puis re-redémarrez la en guettant à l'écran de démarrage la touche qu'il vous faudra appuyer pour entrer dans le "boot menu" (ou allez le régler dans le BIOS). Comme je travaille toujours sur une machine virtuelle, je vous laisse le soin de consulter la documentation de votre carte mère pour arriver à vos fins.

Une fois que vous avez réussi à booter sur le CD, vous devriez avoir cet écran :



Appuyez sur F2 pour changer la langue, sélectionnez le Français (ou autre si vous préférez une autre langue, c'est au choix). La selection de la langue permet aussi de sélectionner le clavier. Si vous avez un clavier AZERTY, il vaut mieux sélectionner "Français" que "English" au risque de se retrouver avec un clavier en QWERTY.



Plus qu'à sélectionner "Démarrer ou installer Ubuntu". Ne vous laissez pas leurer par ce "installer", il est inutile de l'installer pour la manipulation que nous allons effectuer, et Ubuntu peut très bien s'exécuter depuis un CD.

Bref patientez jusqu'au chargement complet de l'ordinateur.



Lancez un terminal



Voici la partie la plus délicate du tuto.

Tout d'abbord, il va faloir repérer quel est le disque dur qu'il faut écrire. Si vous avez bien suivi le tuto jusque là, ca sera simple, sinon, il vous faudra brainstormer, et surtout ne pas faire d'erreur.

Si vous avez bien supprimé toutes les partition de votre disque dur en tout début de tuto, voici un moyen de retrouver votre disque dur. Dans la console, tapez les commandes suivantes
cd /dev
ls hd* sd*


Vous devriez obtenir une liste de xxyz représentant vos disques dur et vos partition, avec :

  • xx = hd ou sd (hd semble avoir disparu, mais normalement c'est pour les disques dur IDE, et SD pour les disques SATA/SCSI)
  • y = une lettre. Elle représente la position de votre disque. a = 1er disque dur, b 2ème etc etc... Les lettres ne se suivent pas forcément
  • z = un nombre représentant une partition sur le disque dur. (1 la 1ère et ainsi de suite). Ici aussi il se peut que les chiffres ne se suivent pas, mais je ne mm'étendrait pas sur le sujet.

C'est la partie verte de l'image qui va suivre.

Le disque qui nous interesse est celui qui n'a pas de partition. Pour le repérer, il suffit de chercher quel est le disque dont le "y" n'apparait qu'une fois. (ici sdb donc). NOTEZ LE BIEN QUELQUE PART POUR NE PAS VOUS TROMPER LORS DE LA RESTAURATION DU DISQUE !!!



Rendez vous ensuite dans le repertoire de mame

cd /media/
ls


ls est l'équivalent de DIR sous dos. Ici on vérifie simplement que Ubuntu a bien "monté" automatiquement tous les disques dur avec des données.

Il devrait y avoir un dossier disk dans le dossier /media/.

/!\ Cette partie est normalement inutile /!\
Elle concerne la partie orange de la dernière image.

Ici ce n'est pas le cas, car ma dernière extinction de Windows n'a pas été faite comme il faut, je vais donc devoir monter la partition "à la main". Normalement vous ne devriez pas avoir besoin  de faire ca, mais je le montre quand même au cas où.

On commence par créer un répertoire vide qui va "accueillir" le contenu de notre disque dur. Comme nous sommes dans un répertoire système, il faut lancer la commande en tant qu'administrateur. Pour celà rien de plus simple :


sudo mkdir disk

sudo permet de lancer une commande en tant qu'administrateur, et mkdir permet de créer un répertoire. Ici il est nommé disk (c'est le nom qu'aurait dû donner Ubuntu à votre disque dur si tout s'était bien passé).

Ensuite on monte la partition dans le répertoire.


sudo mount -t ntfs-3g -o force /dev/sda1 /media/disk

Petite précisions sur la commande :
-t ntfs-3g permet de monter une partition NTFS (ce qui devrait être le cas si vous tournez sous Windows XP, si vous avez une partition FAT, remplacez ntfs-3g par vfat, l'option -o force est peut être inutile dans ce cas)

-o force permet de monter la partition malgré le fait que Windows ait marqué qu'il ne s'est pas éteint comme il faut la dernière fois.

/dev/sda1 est la partition à monter. /!\ Attention /!\ on monte une partition, pas un disque dur... n'oubliez pas le 1 (ou autre chiffre) après le sda (c'est la même partition que vue au dessus)

/media/disk est le répertoire de montage.

Si vous avez plusieurs disques dur/partition, il vous faut créer un repertoire par partition à monter.

/!\ Fin de la parenthèse normalement inutile /!\


Poursuivez par un

cd disk/repertoire/de/mame/comme/sous/windows
#ou bien cd disk-1 si ce n'est pas le bon disque dur,
#enfin bon, le but est de retrouver le repertoire du fichier raw


Comme pour Windows, vous pouvez appuyer sur TAB pour completter automatiquement les noms des répertoires, à la différence près que si 2 répertoires ont la même racide, il ne complettera que jusqu'aux caractères identiques. Un deuxième appui sur TAB vous affichera les complétions possibles. Tapez une lettre de plus et réappuyez sur TAB pour arriver à vos fins.

Dernière étape : la restauration du disque dur en lui même. Une simple commande pour terminer avec ce cauchemard de commandes à taper :

sudo dd if=area51.raw of=/dev/sdb

avec area51.raw le fichier RAW que vous aviez extrait au préallable sous Windows, et /dev/sdb le disque dur physique que vous voulez restaurer. C'est là qu'il ne faut pas se tromper. Si vous écrivez /dev/sda au lieu de /dev/sdb, bonjours les dégats...



Une fois terminé, vous aurez 2-3 statistiques concernant le nombre d'octets lus et écrits et la vitesse moyenne de restauration. Il ne vous reste plus qu'à éteindre votre ordinateur et brancher votre disque dur dans votre borne d'arcade. Pour faire les malins, nous allons même éteindre l'ordinateur en passant par la ligne de commande :

sudo halt
#sudo reboot si vous préférez redémarrer l'ordinateur




Bon si vous préférez, vous pouvez aussi éteindre en cliquant sur le petit bonhomme vert en haut à droite ;)

Avant de s'éteindre complettement, votre lecteur CD devrait s'ouvrir, sortez le CD de Ubuntu, puis appuyez sur entrée pour éteindre/redémarrer l'ordinateur.

Remarques et remerciements :

Une petite remarque dont je viens de me rendre compte à l'instant : OUI j'ai fais une faute de frappe à "Fichiers à récupérer" :D

Toutes les commandes sous linux doivent être tapées en minuscules... la commande dd existe, la commande DD n'existe pas

Remerciement à l'équipe Gamoover, aux rédacteurs qui vont corriger ce tuto qui doit être rempli de fautes (je suis pas doué en orthographe :-[), à pitufo et theelbarto pour m'avoir aidé avec Linux, à la comunauté des logiciels libres, à la mameteam, bref à tous ceux sans qui l'arcade ne se passerait que dans les bars/salles de jeu.

Remerciement aussi à l'équipe de VMWare grâce à qui j'ai pu réaliser tous les screenshots de ce tuto.

A la prochaine pour un nouveau tuto :D

EDIT pour high_cobra : Mes photos font moins de 690px, ce n'est pas ca qui met la scroll bar horizontale en bas =:))

ɐɹqoƆ‾ɥƃᴉH

Joli tuto ^-^

Par curiosité, avec des outils uniquement sous Windows ça ne marche pas ?






PS : J'ai pas de scrollbar moi :D

mioux

Citation de: High_Cobra le Mardi 01 Juillet 2008, 08:11:41 AM
Joli tuto ^-^

Par curiosité, avec des outils uniquement sous Windows ça ne marche pas ?






PS : J'ai pas de scrollbar moi :D

Je sais pas :D

Quand j'ai voulu le faire pour voir comment fonctionnait la rom hydro thunder, j'avais fais une recherche rapide sur le net, puis finalement j'avais demandé sur le chan IRC de gamoover, et c'est là que pitufo et theelbarto m'ont dirigé sur dd. Du coup, comme ca avait très bien fonctionné pour hydro thunder, je voit pas pourquoi ca ne fonctionnerai pas pour d'autres disques :D

EDIT pour les rédacteurs ce coup ci : Il faudrait préciser que les manipulations ont étés effectuées avec Windows XP Pro SP2 et Ubuntu Linux 8.04 "Hardy Heron", et qu'en cas d'utilisation d'autres versions de windows/linux, certaines parties sont à adapter en fonction de l'OS (par exemple avec DSL, la commande que j'ai fait pour retrouver le disque dur vierge renvoit hda hda1 hda2.....hda20 hdb hdb1.....hdb20...............)

Iro

Merci <:)

Citation de: mioux le Mardi 01 Juillet 2008, 08:24:28 AM
EDIT pour les rédacteurs ce coup ci : Il faudrait préciser que les manipulations ont étés effectuées avec Windows XP Pro SP2 et Ubuntu Linux 8.04 "Hardy Heron", et qu'en cas d'utilisation d'autres versions de windows/linux, certaines parties sont à adapter en fonction de l'OS (par exemple avec DSL, la commande que j'ai fait pour retrouver le disque dur vierge renvoit hda hda1 hda2.....hda20 hdb hdb1.....hdb20...............)
Tu vas le préciser parce que j'ai rien compris :D


Par contre, tu peux pas voir pour une version full windows ??  :ang:
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

jcp

Joli tuto.
Sinon, ce n'était pas possible de tout faire sous Linux (car le bleu Windows, je ne peux plus :D) ?

edit : pour le début, pas de souci avec fdisk, et pour l'extraction du fichier, pas de souci également, car chdman existe aussi sous Linux (ça doit être installé en auto via sdlmame).

Bref, un full tuto sous Linux :-((.

mioux

Ben si tu peux faire chdman -extract area51.chd area51.raw sous linux (avec les outils SDLMame), que tu sais quel est le disque à refaire (chose que tu dois mieux maitriser qu'un utilisateur Windows :D), tu as juste à faire

chdman -extract area51.chd area51.raw
dd if=area51.chd of=/dev/sdb


pas besoin d'un tuto pour ca :D

Ca c'est pour ceux qui sont sous Windows et qui ne sont pas habitués à Linux :D

jcp

Sûr qu'il n'y a pas besoin de tuto pour une extraction de fichier ;).
Bon, ben, bon courage pour ceux qui sont sous Windows (après tout faut assumer :D).

Iro

en fait  j'ai pas catpé, t'utilises quoi pour refaire l'image sur le disque ?
"Jet set 2, c'est avec Robert Garcia ?" Kaneda, Lapsus de sac Vol.1
Peter Shou Owner' Club

WIPs : Naomi - SEGA Rally - AB Cop - Lethal Enforcers - COMPUMI - Terminator 2 - Space Invaders - Artworks pour Boitiers K7 Naomi CF - Ma collec' de panels

LES TUTOS DE GAMO   

theelbarto

j'avais trouver un dd pour windows, sans cygwin ou autre connerie, des que je retrouve ca je poste un lien.

HerosSuperMan

#9
waaaaaaaaaaaaaaaaa Mioux en puissance
super tuto ça  ^-^

Bon maintenant j'ai plus qu'a m'y mettre si j'ai bien compris  :D

si j'arrive a trouver pour faire ca sous windows , je complèterais
car le soucis pour le moment c'est d'être sur de remonter l'image sur le DD
mais avec la manip que j'ai suivit (Détaillé ici), il dit qu'il la fait mais keudchiwoualou au final ...
Alors que tout ce que j'ai pu trouver sur différents forum présente la même manip
certains parle d'être sous XP..je suis sous 2000 mais bon.. ::)

on arrive à extraire le RAW sous Windows (commande identique) mais j'ai pas encore trouvé (pas trop eu le temps de chercher non plus) pour recréer le contenu d'un disque dur à partir d'un fichier RAW ...
Mes Wip, mes RT... la vie quoi ^^
Mes recherches\échanges (bornes, PCB, pièces ...)
Recherche .. non..rien rien rien..le problème c'est que l'on fini toujours par trouver... >:D

mioux

#10
Citation de: Iro le Mardi 01 Juillet 2008, 10:25:34 AM
en fait  j'ai pas catpé, t'utilises quoi pour refaire l'image sur le disque ?

- chdman pour extraire les données brutes du disques (fourni avec mame, c'est la partie windows)

- le programme "dd" de linux qui permet de dupliquer des disques (enfin, c'est plus complexe que ça, mais là c'est comme ça qu'on s'en sert)

Toute la broderie à coté, c'est une aide pour les personnes habituées à Windows pour arriver à faire 2 commandes :D

EDIT : dd sous windows sans cygwin ou autres :D

du coup, ca permettrait de faire un truc plus rapide :D
Je regarderai ca ce soir...

EDIT 2 : Pas de scrollbar sous Windows également...

funkycochise

La version 100% windows, je l'avais indiquée à l'époque :

Citation de: funkycochise le Samedi 11 Mars 2006, 08:38:33 AM
Finalement j'ai pu m'en sortir sans passer par dolly...
Avec dolly t'as pas le choic, il faut spliter tes bouts d'images HDD pour que ca  dépasse pas la taille fatidique (ce que le mec explique dans le lien que t'as indiqué)

Autre méthode, utiliser uniquement CHDMAN :

Uniquement sous XP en revanche (surement 2000 et linux aussi mais j'ai testé qu'avec XP, Win 9x, passez votre chemin).

en ligne de commande :
CHDMAN -extract nbashowt.chd  \\.\PHYSICALDRIVE2

et c'est parti.

Config hard utilisée :

Disque 0: Mon système, IDE 0 Master :  Disque dur principal nappe 0
Disque 1: Mes données, IDE 1 Master :  Disque dur secondaire nappe 1
Disque 2: Ma cible, sur connecteur USB/IDE externe

sur les nappe IDE, en plus :
IDE 0 Slave : Lecteur DVDROM
IDE 1 Slave : Graveur DVDROM

Ce qui fait que sans bricoler les nappes IDE sur la carte mère, j'ai pu installer sur le système mon disque cible, et faire la restauration d'une manière très souple.

Concernant les identifiants de disque dur, vous pouvez les obtenir en fesant :
Bouton droit sur le poste de travail / Gérer / Stockage / Gestion de disque

Un petit dump de la console ? :


D:\mame\chd\chdman -extract nbashowt.chd \\.\PHYSICALDRIVE2
chdman - MAME Compressed Hunks of Data (CHD) manager 0.104 (Feb  6 2006)
Input file:   nbashowt.chd
Output file:  \\.\PHYSICALDRIVE2
Extracting hunk 234113/788256...


La seule difficulté étant de déterminer le numéro du PHYSICALDRIVE.

A noter, à l'époque j'avais surement du utiliser une version 0.106

J'avoue que je vois pas trop à quoi sert la manip sous linux...

mioux

Trouver le bon disque, c'est super simple... Dans le gestionnaire de disque logiques, tu voit "Disque 0" et "Disque 1", tu l'as trouvé ton PHYSICALDRIVE

EDIT : Si j'ai fais ce tuto, c'est parce que chdman n'a pas fonctionné pour HeroSuperMan pour son Area51

funkycochise

Citation de: mioux le Mardi 01 Juillet 2008, 20:03:44 PM
Trouver le bon disque, c'est super simple... Dans le gestionnaire de disque logiques, tu voit "Disque 0" et "Disque 1", tu l'as trouvé ton PHYSICALDRIVE
pour nous oui, pour le profane peut être moins...

Citation
EDIT : Si j'ai fais ce tuto, c'est parce que chdman n'a pas fonctionné pour HeroSuperMan pour son Area51
tu crois pas que son problème çà vient avant tout du disque dur ?

M'enfin c'est sympa de proposer une alternative  :-*

mioux

Tuto à garder sous le coude, mais j'ai une solution AVEC dd SANS linux (50ko de téléchargement au lieu de 700Mo :-)=)

Réécriture en cours :P

Persecutor

Citation de: mioux le Mardi 01 Juillet 2008, 21:12:54 PM
Tuto à garder sous le coude, mais j'ai une solution AVEC dd SANS linux (50ko de téléchargement au lieu de 700Mo :-)=)

Réécriture en cours :P

LOL  ;)

Nice Job :-*
Les jeux de moto c'est nul ! Y'a pas de volant ...

Les bornes japonaises c'est comme les vaisseaux de la prélogie star wars,
c'est beau, lisse et parfaitement fonctionnel;
Alors que les bornes old school c'est un peu comme le Faucon Millenium qui passe jamais en vitesse lumière,
c'est chiant mais c'est tellement plus attachant ...

WIP s | Jeutel 25" RGB Jamma | Générique 17" 31khz | Mini BarTop TFT | Race Pod PC |

http://persecutor.tamdb.net