Recuperación de datos ********************* La recuperación de datos perdidos es, ciertamente, un asunto propio de la :ref:`integridad de datos ` estudiada en la :ref:`unidad dedicada al almacenamiento `, pero que por motivos meramente relacionados con la evaluación\ [#]_ hemos reservado para esta unidad. La recuperación de datos es obvio que deriva siempre de una pérdida previa, pero dependiendo de si se tomó alguna contramedida de seguridad activa y de cuál fuera la contramedida, se llevará a cabo de distinta forma: + En :ref:`sistemas RAID ` (siempre que el fallo no sea irrecuperable, por supuesto) la recuperación de datos por la pérdida de un disco es automática en cuanto se conecta el sustituto. + Si se perdieron datos, pero existen :ref:`copias de seguridad `, no hay más que recurrir a estas, según el mecanismo que implemente cada herramienta particular. + Por último, si para la pérdida no hay contramedida ninguna, entonces aún puede intentarse la recuperación de los datos sobre el soporte original, para lo cual habrá que distinguir entre: * *Fallos de disco*, que derivan en la imposibilidad de la lectura. * *Borrados accidentales*. Es a esta última circunstancia en la que no se previó mecanismo de salvaguarda de los datos, a la que está dedicado el texto del epígrafe. Fallos de disco =============== Cuando un disco falla físicamente, todos los datos de la partición o del disco entero resultan inaccesibles. Hay dos casos: + **Fallo completo** de disco que lo dejan absolutamente inutilizado y que requieran la intervención de una empresa especializada en recuperación de datos. + **Fallos parciales** que afectan sólo a un número limitado de sectores. En estos casos, es posible recuperar toda o parte de la información por medios ordinarios, aunque la resolución depende de qué información contuvieran estos sectores: + Los sectores pueden almacenar información sobre el particionado de disco y en ese caso, las particiones serán inaccesibles y, en consecuencia, todos los datos que contengan, también. En estos casos, puede que valga con recuperar la copia (en particionado |GPT|) o quizás haya que hacer una inspección del disco con una herramienta especializada como :ref:`testdisk ` para adivinar cuáles eran estas particiones. + Pueden ser sectores que almacenen metainformación de un sistema de archivos. En ese caso, habrá que recurrir a herramientas específicas de tal sistema de archivo como se ilustra en la :ref:`recuperación del superbloque de un sistema ext4 `. + Por último, los sectores pueden contener información. En ese caso, el propio sistema de archivos proveerá de alguna herramienta para desechar esos sectores, aunque sea a costa de perder el archivo que contuviera. Véase :ref:`como recuperarlos en ext4 `. .. Ejercicios: tomar GParted Live, hacer particiones, borrarlas y recuperarlas luego con testdisk. Borrados accidentales ===================== Hasta *el mejor escribano echa un borrón*\ ... Es común que por equivocación se borre algún archivo que, en realidad, no quisiéramos borrar. Para evitar estas situaciones los sistemas operativos suelen habilitar una "Papelera", esto es, un lugar en el que se almacenan los archivos borrados. Funciona más o menos del siguiente modo: - El archivo no es, en realidad, borrado del sistema de archivos, sino simplemente trasladado a un directorio oculto (la *Papelera*) en donde es almacenado. - El *software* asociado a esta función no se limita a trasladar el archivo, sino que: + Guarda la memoria de la ubicación original para que en caso de que se quiera recuperar el archivo, éste se encuentre allí donde se encontraba cuando se borró. + Mantiene la "Papelera" por debajo de un tamaño máximo configurable, de modo que, si es necesario para no sobrepasar este límite, borra definitivamente archivos tomando primero aquellos con una fecha de borrado anterior. .. note:: En *Linux*, los escritorios más habituales (Gnome_, KDE_, LXDE_, XFCE_) disponen de Papelera. En *Windows* también existe. Por tanto, para recuperar el archivo no hay más que acudir a la "Papelera". Sin embargo, el borrado puede haber sido efectivo (bien porque se borró el archivo de la propia "Papelera", bien porque se fuerza su borrado sin pasar por esta, bien porque se usa la |CLI|), y entonces ¿hay forma de recuperar el archivo? La respuesta es "quizás": Cuando un archivo es borrado del sistema de archivos, sus datos (los bloques de disco asociados) no se sobrescriben de inmediato. Simplemente, se libera el espacio para que futuros archivos puedan ocupar esos bloques. Por tanto, si intentamos la recuperación del archivo antes que estos bloques vuelvan a ocuparse, podremos obtener de nuevo el archivo. Así pues: + Se requerirá una herramienta especializada en buscar el archivo borrado en los metadatos del sistema de archivos: **FAT32** * :ref:`testdisk `. * `Kickass Undelete`_ (*Windows*). **NTFS** * :ref:`testdisk `. * :command:`ntfsundelete` (del paquete *ntfs-3g*). * `Kickass Undelete`_ (*Windows*). **EXT4** * :ref:`testdisk `. * :ref:`extundelete `. * :ref:`ext3grep `. * :ref:`ext4magic `. + La recuperación será tanto más probable cuantas menos operaciones de escritura se hayan hecho desde el borrado del archivo. A este efecto, es muy útil que los datos de usuario se almacenen en una partición distinta a la del sistema operativo, puesto que la herramienta no suele estar ya instalada y su instalación requiere escribir en disco. Si las particiones están separadas, la instalación no implicará ninguna operación de escritura sobre el sistema de archivos del que queremos recuperar archivos. .. note:: GParted_ Live además del propio particionador, incluye, entre otras aplicaciones, :ref:`testdisk `, con lo que es también una excelente herramienta no sólo para manipular particiones, sino también para recuperar archivos (y particiones). .. include:: /guias/0226.seg/99.ejercicios/030.testdisk.rst .. rubric:: Notas al pie .. [#] La recuperación de datos aparece incompresiblemente como criterio de evaluación del **RA3** relativo a seguridad activa, el cual se desarrolla enteramente con esta unidad. .. |GPT| replace:: :abbr:`GPT (Guid Partition Table)` .. |CLI| replace:: :abbr:`CLI (Command Line Interface)` .. _Gnome: https://www.gnome.org .. _KDE: https://kde.org .. _LXDE: http://www.lxde.org .. _XFCE: https://xfce.org .. _Kickass Undelete: https://sourceforge.net/projects/kickassundelete .. _Gparted: https://gparted.org