<?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>Innovando en las Tecnologias de la Información &#187; ext3</title>
	<atom:link href="http://www.ticnovation.com/tag/ext3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ticnovation.com</link>
	<description>Blog dedicado al intercambio de impresiones sobre el alineamiento entre las tecnologías de la información, las organizaciones y la innovación.</description>
	<lastBuildDate>Sun, 29 Aug 2010 13:57:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>ext3: Misión Imposible</title>
		<link>http://www.ticnovation.com/ext3-misin-imposible/</link>
		<comments>http://www.ticnovation.com/ext3-misin-imposible/#comments</comments>
		<pubDate>Sat, 27 Oct 2007 22:34:39 +0000</pubDate>
		<dc:creator>Pedro Carrasco</dc:creator>
				<category><![CDATA[Sistemas de Información]]></category>
		<category><![CDATA[ext3]]></category>
		<category><![CDATA[guia]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[A todos nos ha pasado alguna vez. Escribes sin querer un argumento de m&#225;s en la consola al hacer un rm o eliges el fichero equivocado (o el directorio, que es aun peor). En el momento en que presionas enter, te das cuenta de que no quer&#237;as hacer lo que acabas de hacer. As&#237; que [...]]]></description>
			<content:encoded><![CDATA[<div align="justify">
<img src="http://www.ticnovation.com/wp-content/uploads/2009/12/harddisk.jpg" alt="Disco Duro" title="Disco Duro" style="margin: 5px; float: left" /><br />
A todos nos ha pasado alguna vez. Escribes sin querer un argumento de m&aacute;s en la consola al hacer un <i>rm</i> o eliges el fichero equivocado (o el directorio, que es aun peor). En el momento en que presionas enter, te das cuenta de que no quer&iacute;as hacer lo que acabas de hacer. As&iacute; que intentas recuperar el fichero del backup, pero entonces recuerdas que ibas a hacer el backup justo despues de borrar el fichero.
</div>
<div align="justify">
<br />
Si est&aacute;s trabajando en un sistema de archivos FAT o NTFS no hay problema, existen <a target="_blank" href="http://www.google.es/search?hl=es&amp;q=free+fat+ntfs+file+recovery" target="_blank" title="Google: Free fat ntfs file recovery">multitud de herramientas</a> de recuperaci&oacute;n de datos, pero si trabajas bajo ext3 (o ext2), que es el sistema de archivos m&aacute;s extendido entre la mayor&iacute;a de distribuciones de Linux, lo tendr&aacute;s m&aacute;s dif&iacute;cil. El modo en que ext3 borra los ficheros es la causa de su especial dificultad. Informaci&oacute;n relevante acerca de d&oacute;nde se encuentra el contenido del fichero se borra durante el proceso de borrado.</p>
<p>En este art&iacute;culo intentaremos recuperar esos preciados archivos de una partici&oacute;n ext2 o ext3 que por descuido han ido a parar m&aacute;s all&aacute; de la papelera de reciclaje.
</p></div>
<div align="justify">
&nbsp;
</div>
<div align="justify">
&nbsp;
</div>
<p><span id="more-1671"></span>
<div align="justify">
Suceden varias cosas cuando un fichero se borra en ext3 desde Linux. Pero de un modo general para una m&aacute;quina Linux, podemos decir que al menos, el sistema operativo marca el bloque como vac&iacute;o por lo que otros ficheros pueden usar ese bloque liberado. Herramientas como <i>debugfs</i> y <i>e2undel</i> pod&iacute;an f&aacute;cilmente recrear los archivos en ext2. Esto funcionaba siempre que los bloques no hubieran sido utilizados por un nuevo fichero ya que en ese caso, el contenido original habr&iacute;a sido sobreescrito.
</div>
<div align="justify">
&nbsp;
</div>
<div align="justify">
Con ext3, hay un paso adicional que hace la recuperaci&oacute;n de ficheros un poco m&aacute;s dificil. Cuando el bloque se vac&iacute;a, tambi&eacute;n se borran las direcciones del resto de bloques del inodo, por lo que no podemos determinar d&oacute;nde estaba situado el contenido del fichero.</p>
<p><b>&iquest;C&oacute;mo recuperamos archivos borrados?</b><br />
Lo primero que debemos hacer en el momento en que nos damos cuenta que hemos borrado algo por error es apagar el PC y conectar el disco duro en otro ordenador con Linux como esclavo o simplemente arrancar desde un CD de linux. Si es un dispositivo que podemos desmontar (como una memoria USB o algo as&iacute;), desmont&aacute;ndo el dispositivo es suficiente.</p>
<p>El primer paso a realizar para intentar recuperar la informaci&oacute;n es encontrar la direcci&oacute;n del inodo del archivo. Podemos determinar esta direccion desde <i>debugfs</i>, que es una peque&ntilde;a aplicaci&oacute;n que permite depurar el sistema de archivos y que adem&aacute;s suele venir en la mayor&iacute;a de distribuciones. Para empezar a usar <i>debugfs</i> tenemos que saber qu&eacute; dispositivo contiene el fichero borrado. En este ejemplo, hemos arrancado desde un CD y el disco es el dispositivo<i> /dev/sda1</i>, as&iacute; que teclearemos lo siguiente:
</div>
<p></p>
<blockquote><p>
 root@pedro# debugfs /dev/sda1<br />
 debugfs 1.40.2 (12-Jul-2007)<br />
 debugfs:
</p></blockquote>
<p>
Ahora podemos usar el comando <i>cd</i> para cambiar al directorio del fichero borrado dentro del debugger:</p>
<blockquote><p>
 root@pedro# debugfs /dev/sda1<br />
 debugfs 1.40.2 (12-Jul-2007)<br />
 debugfs: cd directorio
</p></blockquote>
<p>
Una vez all&iacute;, podemos listar los ficheros borrados en el directorio haciendo un<i> ls -d</i>. Los archivos borrados se indican mostrando el inodo entre los s&iacute;mbolos &quot;&lt;&quot; y &quot;&gt;&quot;.</p>
<blockquote><p>
 debugfs: ls -d<br />
 356225&nbsp; (12) .&nbsp;&nbsp;&nbsp; 2&nbsp; (4084) ..&nbsp;&nbsp; &lt;356226&gt; (4072) ooops.jpg
</p></blockquote>
<p></p>
<div align="justify">
El archivo que intentaremos recuperar se llama <i>ooops.jpg</i> y podemos ver que anteriormente estaba en el inodo <b><i>356226</i></b>.
</div>
<p></p>
<div align="justify">
La t&eacute;cnica de recuperaci&oacute;n que usaremos, utiliza la cabecera de los archivos borrados. Muchos formatos de archivo tienen un valor est&aacute;ndar en los primeros bytes de la cabecera del archivo, de este modo mediante esta t&eacute;cnica buscaremos esos bytes para determinar d&oacute;nde el archivo supuestamente contiene el inicio. Por ejemplo, los archivos JPEG empiezan con 0xffd8 y acaban con 0xffd9. Para recuperar archivos JPEG que se han eliminado, miraremos en los primeros dos bytes de cada bloque en busca de 0xffd8. Si lo encontramos, solo nos quedar&aacute; buscar el final del archivo que est&aacute; marcado con 0xffd9. Todo lo que haya en medio, deber&iacute;a ser el fichero en s&iacute;. Lo malo es que no todos los ficheros tienen un fin de fichero est&aacute;ndar, por lo que determinar donde acaba la informaci&oacute;n puede ser complicado. Un ejemplo de una herramienta libre que realiza usa este m&eacute;todo es <i>foremost</i>, aunque tambi&eacute;n existen aplicaciones comerciales.
</div>
<p></p>
<div align="justify">
Podemos aplicar foremost a todo el sistema de archivos, pero probablemente acabaremos con excesivos archivos recuperados. Por eso intentaremos acotar la b&uacute;squeda, y en vez de realizarla en todo el sistema, lo haremos solo en un grupo de bloques concreto. Con el comando imap de debugfs, obtendremos el grupo de bloques al que pertenece el inodo:
</div>
<p></p>
<blockquote><p>
 debugfs:&nbsp; imap &lt;356226&gt;<br />
 Inode 356226 is part of block group 22<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; located at block 720898, offset 0&#215;0080
</p></blockquote>
<p></p>
<div align="justify">
Ahora averiguaremos el rango de bloques del grupo 22 con el comando fsstat:
</div>
<p></p>
<blockquote><p>
 root@pedro:~# fsstat /dev/sda1<br />
 FILE SYSTEM INFORMATION<br />
 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
 File System Type: Ext3<br />
 Volume Name: <br />
 Volume ID: 47e3e5e3604b71bbdf43738bcbcad03a<br />
 (&#8230;)<br />
 Group: 22:<br />
 &nbsp; Inode Range: 356225 &#8211; 372416<br />
 <b>&nbsp; Block Range: 720896 &#8211; 753663</b><br />
 &nbsp; Layout:<br />
 &nbsp;&nbsp;&nbsp; Data bitmap: 720896 &#8211; 720896<br />
 &nbsp;&nbsp;&nbsp; Inode bitmap: 720897 &#8211; 720897<br />
 &nbsp;&nbsp;&nbsp; Inode Table: 720898 &#8211; 721403<br />
 &nbsp;&nbsp;&nbsp; Data Blocks: 720898 &#8211; 720897, 721404 &#8211; 753663<br />
 &nbsp; Free Inodes: 16191 (99%)<br />
 &nbsp; Free Blocks: 32259 (98%)<br />
 &nbsp; Total Directories: 1
</p></blockquote>
<p></p>
<div align="justify">
El grupo 22, empieza en el bloque <i>720896</i> y acaba en el bloque <i>753663</i>, as&iacute; que examinaremos solo ese rango. Para extraer esos bloques, utilizaremos la herramienta dls:
</div>
<p></p>
<blockquote><p>
 root@pedro:~# dls /dev/sda1 720896-753663 &gt; /mnt/recovery.dat
</p></blockquote>
<p></p>
<div align="justify">
El comando anterior guardar&aacute; los bloques del grupo 22, en un fichero llamado <i>/mnt/recovery.dat</i>. Asegurate de que se guarda en un sistema de ficheros distinto al que queremos recuperar, sino podriamos ser incapaces de recuperar la informaci&oacute;n que buscamos.
</div>
<p></p>
<div align="justify">
Una vez acabado este proceso, podemos utilizar foremost para intentar recuperar el archivo borrado:
</div>
<p></p>
<blockquote><p>
 root@pedro:~# foremost -d -i /mnt/recovery.dat -o /mnt/output/
</p></blockquote>
<p></p>
<div align="justify">
El directorio <i>/mnt/output</i> contendr&aacute; los archivos que se han podido recuperar, junto con un archivo de texto con el nombre de los archivos recuperados y el formato identificado. Si el fichero a recuperar es demasiado grande o no obtenemos el resultado deseado, quiz&aacute;s seria conveniente aplicar foremost a todo el sistema, usando el comando:
</div>
<p></p>
<blockquote><p>
 # foremost -d -i /dev/sda1 -o /mnt/output
</p></blockquote>
<p></p>
<div align="justify">
Espero que este peque&ntilde;o manual pueda ser &uacute;til a todos aquellos torpes que, como yo, hayan borrado parte de su disco duro sin saber exactamente c&oacute;mo (o sin querer decir c&oacute;mo). Y recordad que las copias de seguridad son mucho m&aacute;s c&oacute;modas que andar mirando bloques e inodos.
</div>
<p><a href="http://www.addtoany.com/add_to/meneame?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Meneame" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/meneame.png" width="16" height="16" alt="Meneame"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Technorati Favorites" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/technorati.png" width="16" height="16" alt="Technorati Favorites"/></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="LinkedIn" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/linkedin.png" width="16" height="16" alt="LinkedIn"/></a> <a href="http://www.addtoany.com/add_to/netvibes_share?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Netvibes Share" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/netvibes.png" width="16" height="16" alt="Netvibes Share"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Delicious" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a href="http://www.addtoany.com/add_to/ping?linkurl=http%3A%2F%2Fwww.ticnovation.com%2Fext3-misin-imposible%2F&amp;linkname=ext3%3A%20Misi%C3%B3n%20Imposible" title="Ping" rel="nofollow" target="_blank"><img src="http://www.ticnovation.com/wp-content/plugins/add-to-any/icons/ping.png" width="16" height="16" alt="Ping"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Compartir</a> </p><h2  class="related_post_title">Artículos relacionados</h2><ul class="related_post"><li><a href="http://www.ticnovation.com/shell-fu/" title="[shell-fu]$">[shell-fu]$</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.ticnovation.com/ext3-misin-imposible/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
