<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog de John Jean &#187; ddrescue</title>
	<atom:link href="http://www.john-jean.com/blog/tag/ddrescue/feed" rel="self" type="application/rss+xml" />
	<link>http://www.john-jean.com/blog</link>
	<description>L&#039;actualité d&#039;un consultant en sécurité informatique</description>
	<lastBuildDate>Tue, 29 Nov 2011 14:42:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Un koala à la rescousse de mes secteurs défectueux&#8230;</title>
		<link>http://www.john-jean.com/blog/informatique/un-koala-a-la-rescousse-de-mes-secteurs-defectueux-289</link>
		<comments>http://www.john-jean.com/blog/informatique/un-koala-a-la-rescousse-de-mes-secteurs-defectueux-289#comments</comments>
		<pubDate>Tue, 03 Nov 2009 23:29:39 +0000</pubDate>
		<dc:creator>John JEAN</dc:creator>
				<category><![CDATA[Informatique]]></category>
		<category><![CDATA[Sysadmin]]></category>
		<category><![CDATA[ddrescue]]></category>
		<category><![CDATA[disque dur]]></category>
		<category><![CDATA[erreur réallocation]]></category>
		<category><![CDATA[karmic]]></category>
		<category><![CDATA[koala]]></category>
		<category><![CDATA[Palimpsest]]></category>
		<category><![CDATA[sauvegarde]]></category>
		<category><![CDATA[sauvegarder]]></category>
		<category><![CDATA[secteurs défectueux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.john-jean.com/blog/informatique/un-koala-a-la-rescousse-de-mes-secteurs-289</guid>
		<description><![CDATA[C&#8217;était une petite nuit d&#8217;hiver, glacée, les frimas envahissaient les rues et il faisait bon être à l&#8217;intérieur pour regarder à travers la fênetre cette belle nuit étoilée. Tout se prêtait à une nuit tranquille et apaisante. Contemplatif de ma configuration travaillée au jour le jour depuis une bonne année, j&#8217;étais satisfait d&#8217;avoir pu, enfin, ...]]></description>
			<content:encoded><![CDATA[<p>C&#8217;était une petite nuit d&#8217;hiver, glacée, les frimas envahissaient les rues et il faisait bon être à l&#8217;intérieur pour regarder à travers la fênetre cette belle nuit étoilée. Tout se prêtait à une nuit tranquille et apaisante. Contemplatif de ma configuration travaillée au jour le jour depuis une bonne année, j&#8217;étais satisfait d&#8217;avoir pu, enfin, retrancher mon OS dans ses moindres recoins. Je m&#8217;apprétais donc à sombrer avec délectation dans la monotonie d&#8217;un environnement bien trop stable.</p>
<p><span id="more-289"></span></p>
<p>Je commencais à songer à aller me coucher quand je me pris à vouloir tenter le diable. Et pourquoi ne pas faire comme le teenager devant le Virgin Megastore à 3 heures du matin pour acheter le dernier album de son artiste préféré, pourquoi donc ne pas tenter de faire une upgrade en <a href="http://doc.ubuntu-fr.org/karmic" target="_blank">Karmic Koala</a> fraichement poussée dans les repos par les joyeux lurons de <a href="http://www.canonical.com/" target="_blank">Canonical</a> quelques heures plus tôt ?</p>
<p>Aussitôt dit, presque aussitôt fait (il faut s&#8217;armer de patience lors d&#8217;un landrush), je me retrouvais trois heures plus tard avec la dernière mouture en date. Après le reboot réglementaire, je m&#8217;appretais à utiliser fièrement mon Gnome 2.28 fraichement déployé lorsqu&#8217;une icone vint troubler mon attention: elle m&#8217;invitait à prendre connaissance de l&#8217;état de mon disque dur. Je cliquais donc.</p>
<p><img src="http://www.john-jean.com/blog/wp-content/uploads/2009/11/secteurs.png" alt="secteurs" width="450" height="402" align="left" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Cela m&#8217;a surpris au début. J&#8217;ai cru à un faux positif, comme en réservent souvent les packets nouvellement poussés en production (sur ubuntu en tout cas, il est chez Red Hat depuis un moment). Pour vérifier ses dires, j&#8217;ai redémarré et accédé à la partition de diagnostic Dell. Vérification RAM, CPU, et ainsi de suite: PASS, et sur le disque: FAILED. Vraisemblablement le test de surface génère beaucoup d&#8217;erreurs.</p>
<p>Comme j&#8217;avais bidouillé les drivers SATA/AHCI je me suis dit que cela pouvait venir de cela. Après avoir testé par l&#8217;OS (donc par la S.M.A.R.T puis par le diagnostic-tool de Dell), je décidais de descendre d&#8217;un niveau en utilisant l&#8217;utilitaire du <a href="http://www.samsung.com" target="_blank">constructeur</a> appelé <a href="http://www.samsung.com/global/business/hdd/support/utilities/ES_Tool.html" target="_blank">ES Tool</a>. Après l&#8217;avoir gravé, je lançais l&#8217;utilitaire (CD amorcable, aucun système ne doit évidemment être loadé pour le diagnostic): même résultat. J&#8217;avais bien bons nombres de secteurs défectueux, ou en tout cas en attente de réallocation.</p>
<p>On était donc jeudi soir, j&#8217;avais évidement beaucoup de choses à faire pour le boulot le vendredi, mais en même temps on ne plaisante pas avec un disque dur qui commence à claquer, d&#8217;autant plus lorsqu&#8217;il contient tous les documents importants du boulot et avec une criticité parfois élevée. Alors oui j&#8217;avais bien fait des sauvegardes, mais comme la plupart du temps, elles n&#8217;étaient pas fondamentalement tenues à jour (cela ne se comptait pas en trimestre non plus, n&#8217;exagérons rien).</p>
<p>J&#8217;ai donc utilisé ma journée du vendredi à recenser tout ce que j&#8217;avais à sauvegarder après avoir monté mes partitions au travers d&#8217;un livecd. J&#8217;ai tenté au mieux de minimiser les accès disque même si consulter les dossiers génère son petit lot d&#8217;accès. Je suis parvenu au constat que j&#8217;avais dans les 200 go de documents à migrer pour être certain de ne rien oublier. Cependant je perdais toute ma configuration, mais aussi ma vieille partition Windows en dual-bot que je gardais par acquis de conscience. Afin de sauvegarder tout ce petit monde je ne comptais pas réaliser une copie de dossier un à un, c&#8217;était un travail gigantesque mais également la meilleure solution pour oublier quelque chose. J&#8217;ai donc songé à un utilitaire présent dans toutes les distribs linux: dd. En gros celui-ci me permettait de copier l&#8217;intégralité de mon disque dur sur un autre support et cela sans me soucier des fichiers, des partitions, ni même de la MBR. Cela tombait bien: j&#8217;avais reçu quelques jours auparavant mon nouveau système de sauvegarde perso, un <a href="http://www.lacie.com/fr/products/product.htm?pid=11268" target="_blank">Lacie Quadra</a> me permettant de faire des sauvegarde de 2 To en mirroring (RAID 1/0), ou de 4 To en mode fast. Paranoïaque avéré je l&#8217;ai bien entendu configuré en 1/0. Donc une fois le Lacie connecté en USB, je vérifiais ma table de montage (à peu près 200 fois, de peur de me retrouver une dizaine d&#8217;heure plus tard à rechercher des données après un mauvais format):<br />
<code><br />
john@john-laptop:~$ mount | grep sda<br />
john@john-laptop:~$ mount | grep sdb<br />
</code></p>
<p>Mon hd endommagé était bien sur /dev/sda et l&#8217;externe sur /dev/sdb. Même si cela peut paraitre stupide: quand on risque de perdre 200 go de données, on fait attention. J&#8217;ai donc ensuite bêtement executée:<br />
<code><br />
dd if=/dev/sda of=/dev/sdb<br />
</code></p>
<p>Et j&#8217;ai laissé tourner pendant quelques heures. Et là j&#8217;ai noté quelques défauts dans ce cher et vieux dd. Tout d&#8217;abord <em>par défaut</em> la verbosité n&#8217;est pas exceptionnelle. On est dans le flou complet. Un mode interractif sans annonce de progression. Mais au bout d&#8217;une heure, j&#8217;ai pu avoir un peu de verbose; les choses ont commencé à mal tourner: il n&#8217;avait copié que 6,5 GO. Il bouclait sur une I/O error que générait sans doute l&#8217;un de mes premiers secteurs défectueux. Après un second essai du même acabit, j&#8217;ai RTFM pour de bon<em>.</em> Après un man dd, j&#8217;ai été réellement étonné de ne trouver aucun argument de type &laquo;&nbsp;onerrorskip&nbsp;&raquo; ou &laquo;&nbsp;noretry&nbsp;&raquo;. J&#8217;ai par dépit tenté un:<br />
<code><br />
dd if=/dev/sda of=/dev/sdb conv=noerror,direct<br />
</code></p>
<p>Mais même en passant ces options il bouclait sur mes I/O error. J&#8217;ai laissé tourner pendant quelques heures supplémentaires pour ne copier au grand maximum que quelques dizaines de Mo de plus. Avant de me résoudre à entreprendre ce que j&#8217;avais réfuté du début (la copie de dossier un à un), je me suis penché du côté des livecds pour copier les données à partir de disques endommagés mais je n&#8217;ai pas vraiment trouvé de chaussure à mon pied. En revanche j&#8217;ai trouvé un fork de dd nommé <a href="http://www.gnu.org/software/ddrescue/ddrescue.html" target="_blank">ddrescue</a>. Celui-ci ressemble à son grand frère à cette différence près: il ne boucle pas sur les erreurs, il les loggue et tente ensuite plusieurs passes pour récupérer les données potentiellement &laquo;&nbsp;perdues&nbsp;&raquo;. J&#8217;ai donc téléchargé le <a href="http://ftp.gnu.org/gnu/ddrescue/ddrescue-1.11.tar.lz" target="_blank">dernier en date</a>, un configure,un make, et une doc plus tard, je lancais ca:<br />
<code><br />
ddrescue -n /dev/sda /dev/sdb debug.log<br />
</code></p>
<p>Pour la petite histoire le -n évite de faire plusieurs passes sur la logfile afin de récupérer le maximum de données. Il s&#8217;oppose à -r qui est le max retries passes. Chaque secteur déféctueux est analysé une fois par passe. Comme j&#8217;étais pressé et que je voulais surtout tester si cela allait me sauver, je donc lancé avec -n. 30 heures plus tard ma copie était faite et surtout j&#8217;avais pu suivre le bon déroulement des opérations car ddrescue est très interractif:</p>
<p><img src="http://www.john-jean.com/blog/wp-content/uploads/2009/11/capture2xl1.png" alt="capture2xl1" width="450" height="219" align="left" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Ce screen n&#8217;est pas celui de ma machine, il vous permet simplement de voir l&#8217;interactivité du soft. Au bout de 30 heures, il avait détecté 692 erreurs, estimé 67Mo d&#8217;errorsize, qu&#8217;il a su (en une seule et unique passe !) ramener à 6 mo. Je pense qu&#8217;en cinq passes je récupérais l&#8217;intégralité de mes données (je n&#8217;ai toujours pas trouvé ce que j&#8217;ai perdu, probablement de l&#8217;espace libre).</p>
<p>Après avoir vérifié en profondeur ma sauvegarde sur mon HD externe j&#8217;ai contacté Dell pour procéder au remplacement de mon disque dur. Comme d&#8217;habitude, SAV irréprochable, j&#8217;ai appelé vendredi soir, lundi matin <del>l&#8217;un de leur techos</del> l&#8217;un des techos de l&#8217;un des leurs sous-traitants pour le SAV était au bureau. Avant de rendre mon ancien disque dur j&#8217;ai bien pris soin d&#8217;effectuer deux opérations, un format bas niveau depuis l&#8217;utilitaire Samsung prévu à cet effet, ce qui a au passage résolu le soucis de secteurs déféctueux (temporairement, va sans dire), et suite à la résolution de ce problème de secteurs j&#8217;ai sorti mon plus joli:<br />
<code><br />
dd if=/dev/zero of=/dev/sda<br />
</code></p>
<p>&nbsp;</p>
<p>Idéalement j&#8217;aurai bien fait un<br />
<code><br />
dd if=/dev/random of=/dev/sda<br />
</code></p>
<p>mais je n&#8217;avais pas la semaine devant moi. D&#8217;ailleurs chez Dell ils doivent avoir l&#8217;habitude des raleurs surtout lors de soucis de disque, ils m&#8217;ont échangé mon Samsung contre un Western Digital 500GO. Youhou 100 GO de gagné.</p>
<p>Pour conclure, je ne sais pas si cet article interessera beaucoup d&#8217;entre vous, il ne poursuit que quelques buts:</p>
<ul>
<li style="list-style-type: none;"></li>
<li>Vous donner une méthode efficace de sauvegarde lorsque vous avez des secteurs défectueux. dd ne faisant pas son travail, ddrescue est votre ami. En effet vous avez bien mieux à faire lors d&#8217;un soucis hardware, surtout avec votre hd, que de penser à quels sont les fichiers à ne pas oublier. Autant prendre l&#8217;intégralité avec l&#8217;effort minimimum, cela tient en une commande.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Vous donner une méthode vous permettant de récupérer vos données avec des secteurs déféctueux. Comme je l&#8217;ai dit, avec cinq passes je suppose que je retrouvais l&#8217;intégralité des mes données.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Vous avertir sur le fait qu&#8217;au final <a href="http://doc.ubuntu-fr.org/karmic" target="_blank">Karmic Koala</a> m&#8217;a sauvé, parce que ni mes outils de monitoring S.M.A.R.T sous windows (que je boot très rarement il est vrai), ni <a href="http://doc.ubuntu-fr.org/jaunty" target="_blank">Jaunty</a> ne m&#8217;avaient alerté. Il a fallu l&#8217;apparition de Palimpsest dans Karmic pour que je prenne conscience que mon disque dur était en train de mourrir en tentant désespérement de m&#8217;alerter.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Que ce n&#8217;est au final pas si mal d&#8217;upgrader son système les jours de landrush: deux jours plus tard 300 secteurs disparaissaient à nouveau (juste à la fin de ma maltraitance sur /dev/sda avec ddrescue)</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Qu&#8217;il est préférable de rendre à son constructeur un disque dur où l&#8217;on a un peu compliqué la tâche des recovery tools: format bas niveau + /dev/zero ou /dev/random, même si ce n&#8217;est pas &laquo;&nbsp;parfait&nbsp;&raquo;, je pense que c&#8217;est suffisant dans mon cas de figure.</li>
</ul>
<p>&nbsp;</p>
<ul>
<li>Qu&#8217;au final je n&#8217;ai pas fait le processus inverse:<br />
dd if=/dev/sdb of=/dev/sda pour restaurer mon système. J&#8217;ai réinstallé la dernière version d&#8217;ubuntu pour &laquo;&nbsp;profiter&nbsp;&raquo; de l&#8217;ext4 et avoir une réelle base de comparaison, et voir si ce FS est mal réputé à tort ou à raison pour son instabilité. Cela m&#8217;a permis de repenser ma gestion des <a href="http://doc.ubuntu-fr.org/lvm" target="_blank">lvms cryptés</a> sur ma machine pour m&#8217;orienter vers une solution basée sur <a href="http://www.truecrypt.org/" target="_blank">truecrypt</a>, même si elle semble <a href="http://www.securityvibes.com/evil-maid-rutkowska-fde-jsaiz-news-3003411.html" target="_blank">parfois</a> <a href="http://www.h-online.com/security/news/item/Tool-to-fool-TrueCrypt-published-832301.html" target="_blank">mise à mal</a>. Bon j&#8217;avoue, j&#8217;ai quand même copié mes /home/john/.* :)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.john-jean.com/blog/informatique/un-koala-a-la-rescousse-de-mes-secteurs-defectueux-289/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

