{"id":1375,"date":"2013-05-22T18:10:20","date_gmt":"2013-05-22T16:10:20","guid":{"rendered":"http:\/\/guimi.net\/blogs\/hiparco\/?p=1375"},"modified":"2014-01-14T10:28:28","modified_gmt":"2014-01-14T08:28:28","slug":"recuperar-archivos-borrados-en-gnulinux-undelete-ext3ext4","status":"publish","type":"post","link":"http:\/\/guimi.net\/blogs\/hiparco\/recuperar-archivos-borrados-en-gnulinux-undelete-ext3ext4\/","title":{"rendered":"Recuperar archivos borrados en GNU\/Linux (undelete ext3\/ext4)"},"content":{"rendered":"<p>Cuando se borran archivos accidentalmente lo primero que hay que intentar es que nada sobre-escriba el espacio que ocupaban.<\/p>\n<p>A veces al instalar el programa que recupera archivos podemos sobreescribirlos. Por eso recomiendo instalar la aplicaci\u00f3n en cualquier sistema, sin esperar a necesitarlo.<\/p>\n<p><strong>SI EL ARCHIVO TODAV\u00cdA EST\u00c1 ABIERTO<\/strong><br \/>\nSi hemos borrado un archivo que est\u00e1 abierto, hay una copia de \u00e9l. No cierres la aplicaci\u00f3n que lo tiene abierto.<br \/>\nComprobamos si es el caso, por ejemplo con<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> lsof | grep Hank_Mobley<\/pre>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ntotem     25655         guimi   21u      REG                8,4  5477902   55689957 \/home\/guimi\/Hank_Mobley-Soul_Station\/01-Remember_(Irving_Berlin)-Hank_Mobley.mp3\r\n<\/pre>\n<p>Nos fijamos en que el proceso que tiene abierto el fichero es el 25655 y le ha asignado el n\u00famero 21.<br \/>\nRecuperamos el fichero con:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">cp \/proc\/25655\/fd\/21 otra\/ubicacion\/01-Remember_(Irving_Berlin)-Hank_Mobley.mp3\r\n<\/pre>\n<p><strong>INSTALACI\u00d3N DE EXTUNDELETE<\/strong><br \/>\nEn este caso la aplicaci\u00f3n que vamos a utilizar es <a href=\"http:\/\/extundelete.sourceforge.net\/\">extundelete<\/a>.<br \/>\nOtra herramienta, solo para ext3, es <a href=\"http:\/\/code.google.com\/p\/ext3grep\/\">ext3grep<\/a>.<\/p>\n<p>Como es habitual basta con:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> aptitude install extundelete<\/pre>\n<p><strong>USO<\/strong><br \/>\nSupongamos que tenemos la partici\u00f3n <font class=\"comando\">&#8220;\/dev\/sda4&#8221;<\/font> montada como <font class=\"comando\">&#8220;\/home&#8221;<\/font> y que hemos borrado el archivo <font class=\"comando\">&#8220;\/home\/guimi\/ejemplo.txt&#8221;<\/font>. Por tanto la ruta relativa del fichero en el dispositivo es <font class=\"comando\">guimi\/ejemplo.txt<\/font>.<\/p>\n<p>Primero desmontamos la partici\u00f3n implicada:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> umount \/dev\/sda4<\/pre>\n<p>Considera la opci\u00f3n de copiar toda la partici\u00f3n con <font class=\"comando\">dd<\/font>.<\/p>\n<p>Despu\u00e9s recuperamos el archivo con:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> extundelete --restore-file guimi\/ejemplo.txt \/dev\/sda4<\/pre>\n<p>Si queremos recuperar el contenido de un directorio entero, por ejemplo <font class=\"comando\">&#8220;\/home\/guimi\/ejemplo\/&#8221;<\/font> ejecutamos:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\"> extundelete --restore-directory guimi\/ejemplo \/dev\/sda4<\/pre>\n<p><a href=\"http:\/\/extundelete.sourceforge.net\/options.html\">Otras opciones<\/a> interesantes son &#8211;before y &#8211;after.<\/p>\n<p><strong>OTRAS OPCIONES<\/strong><br \/>\nTambi\u00e9n se puede probar a usar <a href=\"http:\/\/guimi.net\/blogs\/hiparco\/recuperar-fotos-borradas-undelete-fat\/\">photorec<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando se borran archivos accidentalmente lo primero que hay que intentar es que nada sobre-escriba el espacio que ocupaban. A veces al instalar el programa que recupera archivos podemos sobreescribirlos. Por eso recomiendo instalar la aplicaci\u00f3n en cualquier sistema, sin esperar a necesitarlo. SI EL ARCHIVO TODAV\u00cdA EST\u00c1 ABIERTO Si hemos borrado un archivo que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,22],"tags":[],"class_list":["post-1375","post","type-post","status-publish","format-standard","hentry","category-gnulinux","category-prompt"],"_links":{"self":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts\/1375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/comments?post=1375"}],"version-history":[{"count":11,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts\/1375\/revisions"}],"predecessor-version":[{"id":1507,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/posts\/1375\/revisions\/1507"}],"wp:attachment":[{"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/media?parent=1375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/categories?post=1375"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/guimi.net\/blogs\/hiparco\/wp-json\/wp\/v2\/tags?post=1375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}