3 SISTEMAS DE ARCHIVOS ........................................................................................................... 2 3.1. INTRODUCCIÓN ............................................................................................................................ 2 3.2. CARACTERÍSTICAS DE LOS SISTEMAS DE ARCHIVOS ..................................................................... 3 3.3. EL SISTEMA DE ARCHIVOS FAT .................................................................................................... 4 3.4. EL SISTEMA DE ARCHIVOS NTFS .................................................................................................. 7 3.5. LOS SISTEMAS DE ARCHIVOS EXT2 Y EXT3 ................................................................................ 11 BIBLIOGRAFÍA SOBRE SISTEMAS DE ARCHIVOS ....................................................................................... 14 3.6. DESFRAGMENTACIÓN DE LOS SISTEMAS DE ARCHIVOS ............................................................... 15 3.7. BACKUP DE LOS SISTEMAS DE ARCHIVOS ................................................................................... 17 3.8. RECUPERACIÓN DE LOS SISTEMAS DE ARCHIVOS ........................................................................ 19 3 Sistemas de archivos En este tema se introducirán los sistemas de archivos empleados en los discos duros, prestando especial atención a la organización de la información en el disco y a las propiedades que se derivan. Finalmente a nivel de ejemplo se presentan los sistemas de archivos en disco más empleados en el mundo PC. Quedan fuera de los objetivos del tema el tratar otros sistemas de archivos, como los sistemas de archivos de red, CD/DVD, etc. Hay dispositivos que emplean sistemas de archivos idénticos o similares a los de los discos duros, como son las memorias extraíbles USB. Por lo tanto, la información proporcionada también será válida para este tipo de dispositivos. El conocimiento interno de los sistemas de archivos permitirá llevar a cabo de forma más eficiente la recuperación de información de discos duros. 3.1. Introducción En el tema anterior se comentó que los discos duros se particionaban con la intención de dividir el discos en zonas aisladas unas de otras, denominadas particiones. Cada partición no es más que un conjunto de sectores consecutivos dentro del disco. En el caso del PC, hay particiones primarias y particiones extendidas, hasta un máximo de cuatro en total. Las particiones extendidas son contenedores de unidades lógicas que pueden entenderse como particiones dentro de las unidades extendidas. Cada partición primaria o unidad lógica puede albergar un sistema de archivos diferente. Para que una partición albergue un determinado sistema de archivos es necesario formatearla. Por ejemplo, Windows utiliza la utilidad format para ello, mientras que Unix utiliza la utilidad mkfs. Durante el formateo además se suele llevar a cabo una comprobación de la superficie del disco para desechar sectores defectuosos1. Desde el punto de vista del sistema operativo cada sistema de archivos es visto como un volumen. El sistema operativo asocia a cada volumen un identificador único. Por ejemplo, Windows típicamente asocia una letra a cada volumen2 (A:, C:, etc), mientras que Unix asocia un nombre de dispositivo a cada volumen (/dev/hda1, /dev/hda2, etc). Un sistema de archivos no es más que una gran estructura de datos que ocupa la totalidad del volumen, en la cual se almacenan datos, así como información de localización de estos. Sistemas de archivos de disco duro típicos en el mundo PC son FAT32, NTFS, Ext2 y Ext3. Durante el proceso de formateo, la gran estructura de datos que constituye el sistema de ficheros se inicializa. Una vez una partición ha sido formateada, ésta es accesible para la lectura y escritura de datos. Los sistemas operativos suelen disponer de un driver para cada sistema de archivos o familia de sistemas de archivos, el cual se comunica con el driver asociado al dispositivo hardware de almacenamiento. 1 En el caso de Windows es la opción por defecto, mientras que en Linux debe especificarse con la opción –c de la utilidad mkfs. 2 En el caso de sistemas de archivos NTFS, es posible montar el volumen dentro de un subdirectorio, en la línea de los sistemas de archivos Unix. José María López López Dpto. De Informática de la Universidad de Oviedo 2 La asignación de espacio de almacenamiento dentro de un sistema de archivos no suele hacerse sector a sector, ya que sería demasiado costosa, sino empleando un número prefijado de sectores. La unidad mínima de asignación de almacenamiento en el sistema de ficheros recibe el nombre de cluster. Por ejemplo, en el sistema de archivos NTFS el tamaño del cluster es típicamente de 8 sectores, esto es, 4 KBytes. Por ejemplo, se asocian dos clusters a un archivo de 7 KBytes, lo que supone un desperdicio de 1 KByte. Estadísticamente, cada archivo desperdicia en término medio unos 2 KBytes de la partición NTFS. Se trata de una cantidad que puede ser relevante cuando hay muchos archivos pequeños, pero poco importante cuando los archivos son grandes3. Normalmente, la herramienta de formateo empleada elige el tamaño del cluster en función del tamaño del volumen, salvo que el usuario especifique su valor. Debe tenerse en cuenta que al final del volumen puede haber sectores no usados que no alcanzan el número suficiente para formar un cluster. Los sistemas de archivos admiten diferentes tamaños de sector, aunque en la práctica todos ellos emplean sectores de tamaño 512 bytes, pues es el tamaño estándar en los discos duros empleados en los PCs. Para nosotros el sector tendrá siempre un tamaño de 512 bytes. 3.2. Características de los sistemas de archivos Aunque todos los sistemas de archivos persiguen el mismo propósito, almacenar archivos, no todos incorporan la misma funcionalidad ni son igual de eficientes. A continuación, vamos a resumir las principales características de los sistemas de archivos, las cuales sirven como base para comparar unos con otros: Rendimiento. La velocidad de las operaciones de lectura y escritura en el disco no sólo dependen de aspectos hardware del sistema, como la velocidad del disco, sino también del sistema de archivos empleado. A la hora de evaluar las mejoras de rendimiento, debe tenerse en cuenta que estas dependen mucho del tamaño de los archivos involucrados. Por lo general, los sistemas de archivos más modernos suelen incorporar mejoras de rendimiento. Fiabilidad. Algunos sistemas de archivos son más tolerantes a fallos que otros. Por ejemplo, hay sistemas de archivos que incluyen copias de seguridad de las estructuras de datos clave del sistema de archivos, detectan clusters defectuosos que son remapeados a clusters libres y llevan a cabo un registro de transaccciones4 (journaling). La inclusión de registro de transacciones suele tener un pequeño impacto negativo sobre el rendimiento, pues la escritura en el archivo de registro tiene un coste temporal. Limitaciones de tamaño. Todos los sistemas de archivos tienen limitaciones en cuanto al tamaño máximo del sistema de archivos soportado, máximo tamaño de archivos, máximo número de caracteres en el nombre de archivos, etc. 3 La elección del tamaño del cluster por parte del sistema operativo es importante desde el punto del rendimiento y la eficiencia de almacenamiento. 4 La mayor parte de las operaciones sobre disco requieren varias etapas. Por ejemplo, el borrado de un archivo requiere eliminar la entrada de directorio correspondiente y además liberar los clusters usados de la lista correspondiente. Si el sistema cae nada más eliminar la entrada de directorio, se pierde la consistencia del sistema de archivos. Llevando un registro de transacciones, la transacción se puede completar cuando el sistema arranque de nuevo y se compruebe la consistencia del sistema de archivos. José María López López Dpto. De Informática de la Universidad de Oviedo 3 Encriptación. En algunos sistemas de archivos la información en el disco se puede guardar de forma encriptada, lo que dificulta la obtención de información del disco duro por parte de otras personas. La encriptación de los sistemas de archivos5 se lleva a cabo normalmente por software, por lo que afecta negativamente al rendimiento del sistema. La clave de encriptación suele guardarse en el sistema de archivos encriptada mediante una clave del usuario. Compresión. Algunos sistemas de archivos permiten la compresión de archivos de forma transparente al usuario. De nuevo, esto afecta negativamente al rendimiento del sistema. Metadatos que incorpora. Los sistemas de archivos no sólo almacenan archivos (datos), sino también información acerca de los archivos (metadatos). Ejemplo de metadatos son las fechas de creación de archivos, fechas de último acceso y las listas de control de acceso. Cuotas. Permiten establecer límites sobre la capacidad del sistema de archivos empleada por usuarios o grupos de usuarios. 3.3. El sistema de archivos FAT Se trata un sistema de archivos muy simple en su esencia, empleado ya desde los primeros PCs. Actualmente se puede encontrar en tres versiones: FAT12, FAT16 y FAT32. FAT12 se emplea típicamente en disquetes, mientras que FAT16 y FAT32 en discos duros y memorias USB extraíbles. La diferencia básica entre los sistemas de archivos FAT12, FAT16 y FAT32 es el número de bits empleados para identificar los clusters del disco. FAT12 emplea 12 bits y FAT16 16 bits. La implementación actual de FAT32 emplea sólo 28 de los 32 bits disponibles. El máximo número de clusters es algo inferior a 212 = 4K para FAT12, 216 = 64 K para FAT16 y 228 = 256 M clusters para FAT32, pues hay clusters reservados. En el caso de los disquetes de 1,44 Mbytes, el cluster coincide con el sector. En el caso de los discos duros que emplean formato FAT16 o FAT32, el tamaño del cluster suele depender del tamaño del volumen. No obstante, según la especificación de Microsoft, en ningún caso el tamaño del cluster puede ser superior a 32 Kbytes (64 sectores). Por ejemplo, en el caso de FAT16 esto plantea un límite de (216 x 64 x 512) = 2 Gbytes.Por ejemplo, una memoria USB de 8 Gbytes y con una única partición, no debería emplear el sistema de archivos FAT16, pues no sería posible acceder a los últimos 6 Gbytes. En su lugar, debería emplearse el sistema de archivos FAT32. La organización de la información en un volumen FAT depende de si se trata de un volumen FAT12, FAT16 o FAT32, tal como se muestra en la figura. 5 Los PCs portátiles modernos tienen la posibilidad de llevar a cabo encriptación hardware, pero ésta suele hacerse de forma global para todos los accesos al disco duro. José María López López Dpto. De Informática de la Universidad de Oviedo 4 El volumen FAT se divide en varias zonas consecutivas: Reserved Area. Se trata de una zona que define el punto de entrada al sistema de archivos así como sus parámetros. En el caso de un volumen FAT12 o FAT16 tiene un tamaño de 1 sector, es decir, coincide con el sector de arranque. En el caso de un volumen FAT32 puede tomar cualquier valor positivo, especificado en el sector de arranque. El área reservada contiene los siguientes sectores: o Sector de arranque, ubicado en el primer sector del volumen. Está dividido en los siguientes campos: Salto al código de arranque (bytes 0h a 2h). Cadena de texto que identifica el SO o fabricante (bytes 3h a Ah). BIOS Parameter Block (BPB). Describe la geometría del volumen y características básicas del sistema de archivos (bytes Bh a 59h). Código de arranque (bytes 5Ah a 1FDh). Firma 55AAh (bytes 1FEh y 1FFh). o FSInfo Sector. Se trata de un sector que especifica el número de clusters libres así como información para buscar el próximo cluster libre6. Esta característica está presente sólo en el sistema de archivos FAT32. o Backup del sector de arranque. Se almacena en el sector 6 y contiene una copia del primer sector, por si éste se estropea. Esta característica está presente sólo en el sistema de archivos FAT32. A continuación se muestra un ejemplo de sector de arranque FAT32. 6 Típicamente incluye el índice del último cluster que ha sido asignado. José María López López Dpto. De Informática de la Universidad de Oviedo 5 0000 EB 58 90 4D 53 44 4F 53 35 2E 30 00 02 10 24 00 .X.MSDOS5.0...$. 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0 00D0 00E0 00F0 0100 0110 0120 0130 0140 0150 0160 0170 0180 0190 01A0 01B0 01C0 01D0 01E0 01F0 02 1D 01 80 20 7B CD B6 C9 2A 01 84 EE 66 53 41 AA 42 66 C2 56 0F 4E 00 00 00 6E 6F 6B 61 72 ........?...?... ....*".......... ................ ..)..^^NO NAME FAT32 3..... {......|.N..V@.. ..s......f...@f. ....?.......Af.. .f..f.F..~..u8.~ *.w2f.F.f....... ...+..H...}.}... ..t.<.t......... ...}....}....... f`f;F...J.fj.fP. Sfh.....~.... .. A..U.V@........U .............F.. B.V@......fXfXfX fX.*f3.f..N.f... ...f..f....v.... V@............fa ..T.....f@I..q.. NTLDR ..... ................ ................ ..............Ca nnot start. Rem ove media....Dis k error...Press any key to resta rt............U. 00 91 00 00 20 8E 13 D1 66 00 00 C0 A0 60 66 BB 0F 8A 58 8A 40 82 54 00 00 00 6E 76 20 6E 74 00 11 06 29 46 C1 73 80 F7 77 E8 74 FB 66 68 AA 85 56 EB CA 8A 54 4C 00 00 00 6F 65 65 79 0D 00 01 00 F1 41 8E 05 E2 E1 32 2B 17 7D 3B 10 55 14 40 2A 66 E8 FF 44 00 00 00 74 20 72 20 0A 00 2A 00 9E 54 D9 B9 3F 66 66 00 3C EB 46 00 8A 00 8B 66 8B C0 81 52 00 00 00 20 6D 72 6B 00 F8 22 00 5E 33 BD FF F7 89 8B E9 FF E5 F8 01 56 F6 F4 33 D0 E4 C3 20 00 00 00 73 65 6F 65 00 00 00 00 5E 32 00 FF E2 46 46 48 74 A0 0F 00 40 C1 CD D2 66 06 00 20 00 00 00 74 64 72 79 00 00 00 00 4E 20 7C 8A 86 F8 1C 03 09 F9 82 80 CD 01 13 66 C1 0A 02 20 00 00 00 61 69 FF 20 00 3F 00 00 4F 20 88 F1 CD 83 66 A0 B4 7D 4A 7E 13 0F B0 0F EA CC 66 20 00 00 00 72 61 0D 74 00 00 00 00 20 20 4E 66 C0 7E 83 FA 0E EB 00 02 0F 84 F9 B7 10 B8 40 20 00 00 00 74 2E 0A 6F AC FF 00 00 4E 33 02 0F ED 16 C0 7D BB E0 66 00 82 0D 66 4E F7 01 49 20 00 00 00 2E FF 50 20 CB 00 00 00 41 C9 8A B6 06 00 0C B4 07 98 6A 0F 1C 00 58 18 76 02 0F 00 00 00 00 20 0D 72 72 D8 3F 02 00 4D 8E 56 C6 41 75 BB 7D 00 CD 00 85 00 FE 66 66 1A CD 85 00 00 00 0D 20 0A 65 65 00 00 00 00 45 D1 40 40 66 38 00 8B CD 16 66 20 81 46 58 F7 86 13 71 00 00 00 0A 52 44 73 73 00 00 00 00 20 BC B4 66 0F 83 80 F0 10 CD 50 00 FB 02 66 F1 D6 66 FF 00 00 00 43 65 69 73 74 55 00 00 00 20 F4 08 0F B7 7E B9 AC EB 19 06 B4 55 B4 58 FE 8A 61 C3 00 00 00 61 6D 73 20 61 AA Root Directory. Se trata del directorio raíz del volumen. Si el sistema de archivos es FAT12 o FAT16 se encuentra fuera del área de datos, justo después de las FATs y su tamaño se especifica en el BIOS Parameter Block (BPB). Si el sistema de archivos es FAT32 se encuentra dentro del área de datos y el cluster de comienzo se especifica también en el BPB. En cualquier caso, cada una de sus entradas tiene un tamaño de 32 bytes. FAT Area. Esta área suele contener dos FATs. La segunda FAT es una réplica de la primera, la cual pasa a emplearse cuando la primera resulta inservible. Cada FAT es una tabla con entradas de 12, 16 ó 32 bits, dependiendo del tipo de sistema de archivos FAT. Cada entrada de la FAT almacena un número de cluster que indica típicamente el siguiente cluster de datos del archivo o directorio. Hay valores especiales de cluster que indican un cluster defectuoso, un cluster reservado, un cluster libre, o un finalizador para indicar el final del archivo o directorio. Cada directorio y archivo, excepto el directorio raíz, tiene asociado un cluster inicial, definido por su entrada dentro del directorio padre que lo contiene. Data Area. Contiene todos los datos y metadatos de los archivos y directorios del volumen. Los clusters de esta área se numeran comenzando por el 2. En el caso de los volúmenes FAT32, el cluster 2 se emplea como primer cluster del directorio raíz, salvo que éste sea defectuoso, en cuyo caso suele elegirse el siguiente7. Un directorio no es más que un archivo especial cuyos datos se organizan en entradas. Cada una de las entradas de directorio tiene un tamaño de 32 bytes, en las cuales se almacena el 7 El hecho de que el directorio raíz no tenga que ubicarse en unos sectores fijos es útil en presencia de sectores defectuosos. Además le permite crecer o decrecer en función del número de entradas necesarias, como cualquier otro archivo o directorio. José María López López Dpto. De Informática de la Universidad de Oviedo 6 nombre de un archivo/subdirectorio, número de su primer cluster y otro tipo de metadatos, como fecha de creación, tamaño8, etc. La figura muestra un ejemplo de ubicación del archivo /dir1/file1.txt en un sistema de archivos FAT32. Los nombres de directorios FAT están formados a los sumo por 8 caracteres ASCII, mientras que los nombres de archivos FAT están formados a lo sumo por 8+3 caracteres ASCII, 8 para el nombre y 3 para la extensión. En una revisión posterior de los sistemas de archivos FAT se añadió un nuevo tipo de entrada de directorio que permite emplear nombres de archivo y directorio largos de hasta 255 caracteres Unicode de 16 bits. 3.4. El sistema de archivos NTFS Los sistemas de archivos FAT son muy sencillos y no proporcionan ninguna de las características de los sistemas de archivos modernos, tales como journaling, cuotas, control de acceso, etc. Su única ventaja es la velocidad en volúmenes pequeños. A día de hoy los sistemas de archivos FAT se emplean solamente en memorias USB y tarjetas de memoria FLASH9. Microsoft con la introducción del sistema operativo Windows NT, precursor de las versiones actuales de Windows, introdujo un nuevo sistema de archivos denominado NTFS. Pocos años después se convirtió en el sistema de archivos para discos duros estándar en todas las versiones de Windows. Uno de los problemas actuales de este sistema de archivos es que 8 El tamaño máximo del archivo es de 4 GBytes, pues la entrada de directorio especifica el tamaño con 4 bytes. 9 Dispositivos de electrónica de consumo como móviles, cámaras de fotos, grabadores de TDT, reproductores de DVD, etc., permiten la conexión de memorias USB y tarjetas de memoria exclusivamente con sistemas de archivos FAT. La razón es que al tratarse de un sistema de archivos tan sencillo, se simplifica y abarata enormemente el hardware de acceso al mismo. José María López López Dpto. De Informática de la Universidad de Oviedo 7 Microsoft, su creador, no ha publicado una especificación completa de dicho sistema de archivos, sino sólo ciertas partes del mismo10. La idea clave del sistema de archivos NTFS es que los metadatos se almacenan también en archivos. Por lo tanto, las estructuras de control del sistema de archivos no están almacenadas en lugares prefijados, sino que al ser archivos, pueden ubicarse en cualquier lugar del disco, como cualquier otro archivo. La única excepción es el punto de entrada al sistema de archivos, definido en archivo $Boot, ubicado al principio del volumen. La estructura de datos clave del sistema de archivos NTFS es la MFT (Master File Table). Se trata de un archivo de nombre $MFT que contiene al menos una entrada por cada archivo y directorio del sistema. La ubicación del archivo MFT está definida en el archivo $Boot. El volumen NTFS está dividido en las zonas mostradas en la figura. NTFS $Boot Datos Copia del sector de arranque La zona de datos incluye todos los archivos NTFS excepto el archivo $Boot. Al final del volumen NTFS se deja una copia del primer sector del volumen, pues en caso de pérdida, el volumen sería inaccesible. El archivo $Boot es el único archivo NTFS ubicado en una posición fija dentro del volumen. Está formado por los 16 primeros sectores del volumen. El primero de sus sectores es el sector de arranque del volumen NTFS, el cual coincide con el primer sector del cluster 0. Por lo tanto, el archivo $Boot comienza en el cluster 0. Durante el arranque desde la partición NTFS, el sector de arranque anterior es cargado en memoria y se lleva a cabo un salto a la primera posición en memoria del sector. En la primera posición se encuentra una instrucción de salto que produce el salto a la posición la primera instrucción del Initial Program Loader (IPL). El IPL es el fragmento de código que comienza en la posición 0054h y termina en la posición 01FDh del sector de arranque. Su misión es cargar el archivo ntldr en el caso de Windows XP, o el bootmgr en el caso de Windows Vista, el cual arranca el sistema operativo11. Esto requiere la lectura previa de la MTF, para localizar el directorio raíz del sistema de archivos NTFS y así poder localizar el archivo ntldr (o bootmgr) y cargarlo en memoria. Debido a la complejidad de acceso al sistema de ficheros NTFS, el IPL carga en memoria los 15 sectores siguientes12, los cuales constituyen la extensión del IPL, y prosigue la ejecución. En un momento dado de su ejecución, el IPL carga en memoria el archivo ntldr (o bootmgr) y le transfiere el control. 10 En la actualidad uno de los grupos de desarrollo de Linux está trabajando en obtener la máxima información posible sobre la especificación NTFS, para completar el driver NTFS de Linux. http://www.linux-ntfs.org 11 Esta situación es la que se tiene cuando se formatea empleando herramientas de Windows XP o Vista. Empleando herramientas de terceros podría cargarse otro archivo diferente o incluso no existir código de arranque si no es necesario arrancar desde el volumen. 12 Los últimos 15 sectores constituyen la extensión del IPL (aunque en la práctica sólo se usan los 5 primeros). Los 16 sectores en total forman parte del archivo $Boot del sistema de ficheros NTFS. José María López López Dpto. De Informática de la Universidad de Oviedo 8 Al final del sector de arranque se encuentra la firma 55AAh. La figura muestra un ejemplo de sector de arranque del volumen. 0000 0010 0020 0030 0040 0050 0060 0070 0080 0090 00A0 00B0 00C0 00D0 00E0 00F0 0100 0110 0120 0130 0140 0150 0160 0170 0180 0190 01A0 01B0 01C0 01D0 01E0 01F0 EB 00 00 04 F6 00 8E 10 08 0F B7 16 74 03 00 0F B4 66 66 1A 01 FF C3 B4 EB 20 0D 6E 6D 20 20 00 52 00 00 00 00 00 D8 E8 CD B6 C9 24 04 06 66 85 42 58 F7 00 02 06 A0 01 F2 65 0A 67 70 43 72 00 90 00 00 00 00 00 E8 53 13 D1 66 00 FE 1C 50 0C 8A 66 F1 86 CD 10 F8 8B C3 72 4E 00 72 74 65 00 4E 00 00 00 00 00 16 00 73 80 F7 CD 06 00 06 00 16 58 FE D6 13 00 01 F0 0D 72 54 0D 65 72 73 00 54 00 80 00 01 FA 00 68 05 E2 E1 13 14 66 53 E8 24 1F C2 8A 0F FF E8 AC 0A 6F 4C 0A 73 6C 74 00 46 F8 00 00 00 33 B8 00 B9 3F 66 72 00 3B 66 B3 00 EB 8A 16 82 0E 09 3C 41 72 44 4E 73 2B 61 00 53 00 80 00 00 C0 00 0D FF F7 A3 0F C3 06 68 FF 16 2D CA 24 19 0E 00 00 20 20 52 54 65 41 72 00 20 00 00 00 00 8E 0D 68 FF E2 20 81 66 20 10 80 1F 66 66 00 00 00 A0 74 64 6F 20 4C 64 6C 74 00 20 3F FD 5F 5E D0 8E 6A 8A 86 00 FB 60 00 00 3E 8B 33 8B 8A 8C 0F FB 09 69 63 69 44 00 74 0D 83 20 00 25 C2 EE BC C0 02 F1 CD C3 55 1E 0F 01 14 F4 D2 D0 E8 C0 85 01 B4 73 63 73 52 0D 2B 0A A0 20 FF 9C 09 3A 00 33 CB 66 C0 B4 AA 06 82 00 00 CD 66 66 C0 05 6F E8 0E 6B 75 20 20 0A 44 00 B3 00 00 00 00 D8 7C DB 8A 0F ED 41 75 66 3A 80 00 13 0F C1 E4 20 FF 03 BB 20 72 6D 69 50 65 00 C9 02 3F 00 00 12 FB C6 16 B6 06 BB 09 A1 00 3E 0F 66 B7 EA 06 00 07 00 07 72 72 69 73 72 6C 00 00 08 00 00 00 3B B8 06 24 C6 41 AA F6 10 1E 14 84 58 0E 10 0A 8E 1F FB 00 65 65 73 20 65 20 00 00 00 00 00 00 D8 C0 0E 00 40 66 55 C1 00 66 00 61 5B 18 F7 CC C0 66 EB CD 61 64 73 63 73 74 00 55 00 00 00 00 98 07 00 B4 66 0F 8A 01 66 6A 00 00 07 00 36 B8 66 61 FE 10 64 00 69 6F 73 6F 00 AA ëRミNTFS ..... .....ø..?...?... ....€.€.ý%œ..... ........_Â...... ö.......^î:Ø.;ؘ ....ú3ÀŽÐ¼.|û¸À. ŽØè..¸..ŽÀ3ÛÆ... .èS.h..hj.ËŠ.$.´ .Í.s.¹..Šñf.¶Æ@f .¶Ñ€â?÷â†ÍÀí.Af. ·Éf÷áf£ .ôA»ªUŠ .$.Í.r.•ûUªu.öÁ. t.þ...Ãf`..f¡..f ....f;. ..‚:..fj .fP.Sfh....€>... .…..è³.€>....„a. ´BŠ.$...‹ôÍ.fX[. fXfX.ë-f3Òf.·... f÷ñþŠÊf‹ÐfÁê.÷6 ..†ÖŠ.$.ŠèÀä..̸ ..Í..‚..ŒÀ. .ŽÀf .........…o...fa à ø.è.. û.è..ûëþ ´.‹ð¬<.t.´.»..Í. ëòÃ..A disk read error occurred. ..NTLDR is missi ng...NTLDR is co mpressed...Press Ctrl+Alt+Del to restart........ ........ƒ ³É..Uª Las posiciones 0003h a 000Ah definen una etiqueta de texto que identifica el sistema de archivos o fabricante, en este caso NTFS. Esta etiqueta resulta muy útil para buscar una partición NTFS que ha sido eliminada y así poder recuperarla. Las posiciones 0183h a 01FDh incluyen mensajes de error del IPL. Las posiciones 1FEh y 1FFh contienen la firma 55AAh. Las posiciones 000Bh a 0053h contienen el BIOS Parameter Block (BPB), el cual describe la geometría de la partición y características básicas del sistema de archivos NTFS, como es la ubicación del archivo $MFT. El archivo de sistema $MTF es la pieza clave del sistema de archivos NTFS, pues indica donde se ubican los archivos y los directorios. Cada archivo o directorio tiene al menos una entrada en la MFT. El tamaño de estas entradas se especifica en el sector de arranque del volumen, aunque en la práctica son siempre de tamaño 1Kbyte. Toda la información administrativa del sistema de archivos se almacena en unos archivos denominados archivos de metadatos. Las primeras entradas de la MFT están reservadas para estos archivos. Los archivos de metadatos ordenados a partir de su índice en la MTF, comenzando por el índice 0 son: $MFT, $MFTMirr, $LogFile, $Volume, $AttrDef, . (directorio raíz), $Bitmap, $Boot, $BadClus$, $Secure, $Upcase y $Extend. Como se puede observar, el archivo $MFT tiene la entrada 0 dentro de la MFT (es decir, la MFT se describe a si misma a través de dicha entrada). La entrada 5 se corresponde con el directorio raíz. La entrada $Extend se corresponde con un directorio empleado para poder añadir más archivos de metadatos. En la práctica incluye los archivos de metadatos $Objid y $Quota. José María López López Dpto. De Informática de la Universidad de Oviedo 9 Cada entrada de la MFT tiene una estructura como la de la figura: Cada entrada de la MFT comienza con una cabecera. Cabe destacar que al principio de dicha cabecera se encuentra el texto “FILE” para cualquier archivo o directorio 13. A continuación de la cabecera vienen los atributos, los cuales son estructuras de datos que almacenan un tipo de datos específico. Prácticamente todo son atributos, desde el nombre de un archivo, fecha de creación e incluso su contenido. Cada atributo tiene una cabecera que lo identifica y un contenido justo después. Cuando todos los atributos no caben en la entrada de la MFT, lo cual es habitual, la cabecera indica los clusters en los que se encuentra. El archivo $MFT comienza con un tamaño inicial y crece progresivamente según se van creando nuevos archivos y directorios. Los clusters al lado de la MFT son los últimos en asignar, para evitar la fragmentación de la MFT cuando esta crece. El archivo $MFTMirror contiene una copia de las primeras entradas de la MFT, en la práctica, las 4 primeras entradas: $MFT, $MFTMirr, $LogFile y $Volume. Suele ubicarse en el centro del volumen para poder ser accedido en caso de que el archivo $MFT esté corrupto o inaccesible. El archivo $LogFile contiene el registro de las transacciones llevadas a cabo en el disco. El archivo $Volume contiene información sobre el volumen, como por ejemplo la etiqueta. El archivo $AttrDef contiene información sobre los atributos, tales como sus nombres, sus identificadores y sus tamaños. El archivo $Bitmap contiene información sobre el estado de cada cluster. Dispone de un bit para cada cluster que indica si está asignado o no. El archivo $Badclus contiene una lista con los clusters defectuosos. El archivo $Secure contiene información de seguridad y control de acceso a los archivos y directorios. El archivo $Upcase contiene la versión mayúscula de cada carácter Unicode. El archivo $Objid contiene una lista de atributos de un cierto tipo empleados en el volumen. El archivo $Quota lleva la contabilidad de las cuotas de disco. 13 La excepción ocurre cuando se ejecuta la utilidad chkdsk y ésta detecta una incoherencia, marcando la entrada como “BAAD” (inválida). José María López López Dpto. De Informática de la Universidad de Oviedo 10 3.5. Los sistemas de archivos Ext2 y Ext3 Se trata de los sistemas de archivos más empleados en Linux. Ext3 es básicamente un sistema de archivos Ext2 al que se le ha añadido un registro de transacciones. Nos referiremos a ellos de forma genérica como Ext. La organización de un volumen Ext se muestra en la figura. Los primeros 1024 bytes del volumen están reservados. Pueden contener el código de arranque del volumen cuando el sistema operativo arranca desde el volumen14. El resto del volumen se divide en bloques de igual tamaño. El concepto de bloque es análogo al concepto de cluster de los sistemas de archivos FAT y NTFS. Los bloques se organizan en grupos, conteniendo todos ellos el mismo número de bloques, excepto el último que puede ser más pequeño. Cada bloque se referencia con un número, siendo el bloque cero el primer bloque justo después de los sectores de arranque. El superbloque tiene un tamaño de 1024 bytes (aunque muchos de estos bytes no los usa) y contiene los parámetros del sistema de archivos. Es análogo al BIOS Parameter Block de los sistemas de archivos FAT y NTFS. El superbloque contiene información como el tamaño del bloque, el número de bloques del sistema, nombre del volumen, fecha y hora en la que se montó por última vez el volumen, etc. La tabla de descriptores de grupo es una tabla de tamaño 1 bloque situada después del superbloque, la cual comienza siempre en un bloque nuevo. Por lo tanto, puede haber sectores que no se usan entre el superbloque y la tabla de descriptores de grupo. La tabla de descriptores de grupo contiene una entrada de 32 bytes por cada grupo de bloques en el volumen (aunque sólo se usan los 18 primeros bytes). Cada una de estas entradas proporciona: Número de bloque de comienzo del bitmap de bloques (4 bytes), Número de bloque de comienzo del bitmap de inodos (4 bytes) 14 Hay volúmenes arrancables que no incluyen código de arranque. En estos casos el arranque suele hacerse directamente desde el MBR o a través de un gestor de arranque, fuera del volumen. José María López López Dpto. De Informática de la Universidad de Oviedo 11 Número de bloque de comienzo de la tabla de inodos (4 bytes) Número de bloques que aún no han sido asignados en el grupo (2 bytes). Número de inodos que aún no han sido asignados en el grupo (2 bytes). Número de directorios en el grupo (2 bytes). Todos los grupos tienen una copia del superbloque y de la tabla de descriptores de grupo al comienzo del grupo15. Las copias del superbloque no son exactamente idénticas, pues hay información temporal que se almacena en el primer superbloque y no se actualiza en los otros. Además hay un campo en el superbloque que identifica el grupo en el cual se encuentra y por lo tanto es diferente para el superbloque de cada grupo. La contabilidad de los bloques que han sido asignados dentro de cada grupo se lleva a cabo con el bitmap de bloques. Cada bit del bitmap indica si un bloque del grupo ha sido asignado o no. El bit 0 de su primer byte está asociado al bloque 0, el bit 7 de su primer byte al bloque 7, el bit 0 de su segundo byte al bloque 8 y así sucesivamente. El bitmap de bloques comienza justo después de la tabla de descriptores del grupo y tiene un tamaño de 1 bloque. En la práctica, el número de bloques en un grupo coincide con el número de bits en el bitmap de bloques, es decir, se obtiene multiplicando por 8 el tamaño del bloque en bytes16. Para comprender el funcionamiento del bitmap de nodos y la tabla de inodos es necesario conocer el concepto de inodo. Cada archivo y directorio en el sistema tiene asociado un inodo almacenado en la tabla de inodos de un grupo. El inodo es una estructura de datos (metadatos) típicamente de 128 bytes17. El inodo contiene toda la información necesaria sobre un archivo o directorio, salvo el nombre y los datos que contiene. Por ejemplo, define los permisos, la fecha de creación, direcciones a los bloques de datos, etc. Cada inodo puede almacenar 12 punteros directos a bloques de datos, así como un puntero de simple indirección, un puntero de doble indirección y un puntero de triple indirección. Si un archivo o directorio requiere 12 bloques o menos se emplean los doce punteros directos. Si por ejemplo un archivo requiere más de 12 bloques de datos, puede usarse 1 puntero de simple indirección que apunta a un bloque que almacena punteros directos de bloques. La figura muestra gráficamente los conceptos de indirección. Cuando alguno de los punteros del inodo toma el valor cero, se supone que la información del bloque o bloques asociados es cero. Esto resulta muy útil en el caso de archivos con muchos ceros consecutivos (sparse files) o archivos que han sido creados con un cierto tamaño pero no han sido escritos. 15 La excepción está cuando se emplea la característica sparse superblock del sistema de archivos, en cuyo caso, sólo alguno de los grupos contiene una copia del superbloque y de la tabla de descriptores de grupo. 16 Esto facilita la localización de las copias del superbloque cuando falla la lectura del primer superbloque. 17 Si se emplea la versión dinámica de Ext2/Ext3 el tamaño del inodo puede ser variable. José María López López Dpto. De Informática de la Universidad de Oviedo 12 Los directorios no son más que archivos especiales que almacenan listas de entradas en sus bloques de datos. Cada entrada contiene un número de inodo, la longitud de la entrada, la longitud del nombre, el nombre del archivo y opcionalmente el tipo de archivo. La figura muestra un ejemplo simplificado de directorio En la figura anterior puede observarse además como hay dos entradas del directorio que apuntan al mismo inodo. A esto se le conoce como hard link. Básicamente consiste en tener dos nombres para el mismo archivo o directorio18. Una vez ha sido explicado el concepto de inodo se puede entender en que consiste la tabla de inodos de un grupo y su bitmap. La tabla de inodos comienza en el bloque indicado en el descriptor del grupo y tiene un tamaño especificado en el superbloque. Cada una de sus entradas es un inodo que hace referencia a un archivo o directorio. Las primeras entradas de la tabla están reservadas. Por ejemplo, la entrada número 2 contiene el inodo del directorio raíz. 18 Symbolic links o soft links son simplemente archivos que contienen dentro de sus datos el nombre de otro archivo o directorio. José María López López Dpto. De Informática de la Universidad de Oviedo 13 El bitmap de inodos tiene un tamaño de 1 bloque y funciona de forma análoga al bitmap de bloques. Cada entrada de la tabla de inodos tiene asociado un bit que se activa cuando la entrada es usada o se trata de una entrada reservada. Finalmente, comentar que Ext3 para llevar a cabo el registro de transacciones emplea un archivo cuyo inodo es típicamente el número 8, aunque se puede especificar en el superbloque. Bibliografía sobre sistemas de archivos Se recomienda el siguiente libro: “File System Forensic Analysis” by Brian Carrier. Addison Wesley Professional, 2005. ISBN: 0-32-126817-2 Todas las figuras del sistema de archivos FAT y la de la entrada MFT en los sistemas de archivos NTFS fueron extraídas del libro anterior. Sobre los sistemas de archivos FAT, la fuente más completa es “FAT32 File System Specification”, Version 1.03, 2000. Microsoft Corporation. http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx Sobre NTFS http://www.linux-ntfs.org Sobre Ext2 http://www.nongnu.org/ext2-doc/ext2.html José María López López Dpto. De Informática de la Universidad de Oviedo 14 3.6. Desfragmentación de los sistemas de archivos La fragmentación de los sistemas de archivos afecta negativamente a su rendimiento, es decir, disminuye la velocidad de lectura y escritura de los mismos. La figura muestra un ejemplo muy sencillo que nos permite observar la diferencia de rendimiento en el acceso en a un archivo. Fichero que requiere 3 clusters Cluster 76829 º Cluster 54235 Cluster 12345 Cluster 12346 Cluster 12347 Cluster 12345 Fichero sin fragmentación Fichero con fragmentación Para acceder al archivo en ausencia de fragmentación se necesita en término medio: 1xTiempo de búsqueda + 1xTiempo de latencia rotacional + 3xTiempo de transferencia de 1 sector Para acceder al archivo con fragmentación se necesita en término medio: 3xTiempo de búsqueda + 3xTiempo de latencia rotacional + 3xTiempo de transferencia de 1 sector Puesto que en la práctica el tiempo de transferencia es mucho menor que el tiempo de búsqueda y de latencia rotacional, resulta que el tiempo de lectura es casi el triple en el caso del archivo fragmentado. La fragmentación del sistema de archivos depende de muchos factores, especialmente de los siguientes: Porcentaje de ocupación del sistema de archivos. Algoritmo de ubicación de archivos en los clústeres libres. Tamaño de los archivos. Número de operaciones de borrado de archivos. Tamaño del cluster. La fragmentación de archivos es especialmente importante en el caso de archivos que se usan con mucha frecuencia, como son los archivos de paginación o metadatos de acceso muy frecuente. Por ejemplo, cualquier operación de lectura o escritura de un archivo requiere acceder al archivo $MTF en el caso de un sistema de archivos NTFS. Si este archivo estuviese muy fragmentado el rendimiento del sistema de archivos se resentiría José María López López Dpto. De Informática de la Universidad de Oviedo 15 notablemente19. La fragmentación del sistema de archivos es inevitable, aunque ciertas políticas pueden reducir su alcance. Por ejemplo, conviene separar los archivos del sistema, asociados al sistema operativo, de archivos de datos del usuario, especialmente si estos cambian muy a menudo o son borrados muy a menudo. Por ejemplo, en los sistema operativos Windows, es habitual que cada usuario tenga un directorio en “C:\Documents and Settings”, donde se almacena todo tipo de información de configuración relativa al usuario, así como información temporal de todo tipo. Si el sistema operativo necesita crear archivos del sistema o ampliar el tamaño de archivos de sistema existentes, estos pueden resultar fragmentados. En este sentido, es mejor la política seguida en muchos sistemas de archivos bajo Unix, pues toda la información del usuario se guarda en un directorio “/home” ubicado en una partición diferente de la partición del sistema operativo. La fragmentación de un sistema de archivos puede reducirse notablemente con el empleo de desfragmentadores, los cuales asignan nuevos clusters a los archivos para conseguir reducir su fragmentación. En cualquier caso, está claro que la desfragmentación resulta más difícil en sistemas de archivos casi llenos que en sistemas de archivos casi vacíos. Hay una serie de características de los desfragmentadores que deben ser tenidas en cuenta: La posibilidad de desfragmentar el sistema de archivos durante el funcionamiento normal del sistema. Es lo que se conoce como desfragmentación online. Esto mejora la disponibilidad del sistema y es imprescindible en servidores. La posibilidad de llevar a cabo desfragmentación offline. Hay ficheros del sistema que no se puede desfragmentar online. Por ejemplo, los archivos de paginación o el archivo $MFT en el caso de los sistemas de archivos NTFS. La automatización del proceso de fragmentación. Por ejemplo, resulta interesante poder programar la desfragmentación para que tenga lugar de forma periódica y transparente a los usuarios del sistema. El impacto sobre el rendimiento mientras tiene lugar la desfragmentación. Hay desfragmentadores que permiten ajustar el impacto sobre el sistema o emplear momentos de poca actividad. La posibilidad de gestión centralizada del proceso de desfragmentación. Es el caso de desfragmentadores empresariales, que son gestionados de forma centralizada. Por ejemplo, desde un equipo de control puede gestionarse el proceso de desfragmentación de todos los equipos de una empresa. 19 Ésta es la razón por la cual se reserva un gran número de clusters consecutivos al final del $MTF durante el proceso de formateo de un sistema de archivos NTFS, “cubriéndose las espaldas” ante futuros crecimientos del sistema de archivos. José María López López Dpto. De Informática de la Universidad de Oviedo 16 3.7. Backup de los sistemas de archivos El objetivo de la copia de seguridad (backup) es recuperar datos perdidos en caso de desastre o borrado accidental. En ocasiones también se llevan a cabo copias de seguridad del software de sistema, para poder restablecer su funcionamiento en el mínimo tiempo posible después de un desastre. Cada administrador e incluso cada usuario de un computador debería implementar una política de backup adecuada. El objetivo de este apartado es proporcionar conceptos generales, sin pretender ser muy exhaustivos. A continuación se describen las copias de seguridad atendiendo a diferentes factores: Grado de automatización. Una de las características fundamentales de cualquier política de backup es su automatización. La experiencia muestra que este tipo de operaciones deben ser llevadas a cabo con la mínima participación humana. En caso contrario, pueden realizarse incorrectamente o simplemente no realizarse por olvido o despreocupación. Características del soporte empleado. Hay varias características del soporte a destacar: fiabilidad, capacidad, coste y tiempo de recuperación. El soporte debe ser fiable, por lo que debemos tener cuidado con soportes de corta vida, entre los que se encuentran los discos ópticos. En cuanto al tiempo de recuperación, no es lo mismo recuperar los datos desde un disco duro que desde unidades de cinta. Separación física de los datos y su backup. A poder ser, deben estar alejados lo máximo posible. Si guardamos la copia de seguridad de nuestros datos en soportes ubicados en la misma estancia que el computador que contiene los datos, si se incendia la estancia perdemos los datos. De igual forma, si dejamos la copia de seguridad en otro computador en una estancia del mismo edificio y se produce una subida de tensión, se pueden estropear tanto el equipo con los datos como con el backup. Cuando la empresa tiene varias sedes separadas geográficamente, lo mejor es hacer una copia de seguridad remota, aprovechando el ancho de banda de las redes actuales. También hay empresas que proporcionan servicios de copia de seguridad remota. Hay que tener cuidado con sistemas de archivos ubicados en discos duros montados en RAID. Aunque diferentes esquemas RAID pueden mejorar sensiblemente la fiabilidad del sistema y permitir la recuperación de datos ante fallos de los discos, los discos duros en RAID están muy cerca unos de otros, por lo que se pueden estropear varios de estos discos a la vez. Combinación de soportes. El empleo de dos tipos de soportes nos puede dar una seguridad extra. Por ejemplo, si la copia de seguridad se encuentra sobre el disco duro de un computador remoto de la empresa y todos los computadores de la empresa son atacados por un virus y se borran tanto los datos como su copia, nos encontramos sin nada. Una solución a este problema es combinar por ejemplo una copia de seguridad automática y diaria sobre el disco duro de un computador remoto con una copia manual semanal sobre soportes extraíbles. Si se dispone de un número limitado de medios extraíbles, estos pueden rotarse. José María López López Dpto. De Informática de la Universidad de Oviedo 17 Modelo de repositorio. El coste de la copia de seguridad aumenta con el tamaño de ésta. Además, si la empresa lleva a cabo una copia de seguridad con cierta frecuencia, por ejemplo dos veces al día, las sucesivas copias de seguridad contendrán casi la misma información. Para enfrentarse a este problema de crecimiento desmesurado del espacio requerido por las copias de seguridad suelen emplearse diferentes estrategias: Full (completa). Cada copia de seguridad es una copia de todo el sistema de archivos. Se emplea en contadas ocasiones por el elevado coste de almacenamiento que supone. Se emplea típicamente para la clonación del sistema de archivos en el que se almacena el sistema operativo, para una rápida recuperación o replicación. Durante la vida del sistema se llevan a cabo este tipo de copias cuando se llevan a cabo grandes cambios en la instalación del sistema, para así poder recuperarlo rápidamente. Full + Incremental (completa + incremental). Se lleva a cabo una copia de seguridad completa y a continuación se copian sólo los archivos que han sido creados o modificados. Además, se marcan los archivos que han sido borrados. El problema es que la reconstrucción es costosa y puede requerir el procesamiento de cientos o miles de incrementos. Full + Differential (completo + diferencial). Evita el problema de la larga reconstrucción, haciendo que después del backup inicial completo, cada backup almacene las diferencias completas con respecto al backup inicial. La reconstrucción requiere sólo el backup completo y la última diferencia pero se requiere más espacio para hacer el backup. Mirror (Espejo). La copia de seguridad coincide exactamente con los datos. No hay incrementos. Lo habitual es que la copia se sincronice con los datos con una cierta frecuencia, por ejemplo una vez al día, aunque hay sistemas que permiten una sincronización continua. El principal problema es que se pierden cambios que se hayan hecho anteriormente. Este es el caso de que se haya borrado accidentalmente un archivo y la copia de seguridad sea posterior al momento del borrado. Mirror+Reverse Incrementals (espejo e incrementos hacia atrás). Es similar a la técnica anterior, pero se guardan además los últimos cambios llevados a cabo en el sistema de archivos. Por ejemplo, en un directorio pueden guardarse los últimos archivos borrados y modificados, los cuales son eliminados por orden de antigüedad una vez se sobrepasa una cierta capacidad. Éste mecanismo es en muchos casos el más apropiado, pues tenemos directamente el estado final del sistema de archivos, así como todos los archivos borrados y las diferentes versiones de los archivos modificados. Copia de seguridad de metadatos. Para la recuperación rápida del estado de un sistema después de la pérdida de datos también es necesario en muchos casos la recuperación de metadatos, como son los sectores de arranque y las tablas de particiones. La copia de estos datos requiere el empleo de herramientas específicas. Procesamiento de la copia de seguridad. En ocasiones, puede resultar interesante la compresión de los datos para el ahorro de espacio de almacenamiento. El inconveniente es el incremento en el tiempo necesario para llevar a cabo la copia de seguridad y especialmente, el tiempo necesario para recuperar los datos José María López López Dpto. De Informática de la Universidad de Oviedo 18 desde la copia. En otras ocasiones, también se decide por la encriptación de los datos, para evitar el acceso a los mismos por personas no autorizadas. La encriptación debería aplicarse especialmente cuando la copia de seguridad se almacena en una ubicación remota. 3.8. Recuperación de los sistemas de archivos La información de este apartado está destinada fundamentalmente a aquellos que no han llevado a cabo una política de backup adecuada y se encuentran con la pérdida de datos. Nos centramos fundamentalmente en la recuperación de archivos en discos duros, aunque la información proporcionada es útil para otro tipo de soportes, como son los discos ópticos. Puede ocurrir que de repente un disco duro en su totalidad o alguno de sus sistemas de archivos no sea accesible, o que hayamos borrado accidentalmente alguno de los archivos. ¿Qué podemos hacer? Cuando no se puede acceder a un disco duro, lo primero es identificar si se trata de un problema hardware o de un problema lógico. En el primer caso, puede ocurrir que el BIOS no detecte el disco, o que sí lo detecte pero acceda incorrectamente al mismo. En este caso, las herramientas software de recuperación de archivos son inútiles. Si después de comprobar todo el sistema llegamos a la conclusión de que el problema hardware reside en el disco, sólo tenemos dos posibilidades de recuperación: Encontrar una controladora integrada en disco compatible con la original, cambiarla y “cruzar los dedos” para que el problema sea en la controladora. Enviar el disco a una empresa especializada para la recuperación de la información. Hay muchas empresas de este tipo que permitirán recuperar gran parte de la información20, pero con un coste económico importante. Vamos a suponer que el hardware del disco está en perfectas condiciones y que elproblema reside en la información que almacena. Veamos a continuación diferentes situaciones y su solución. MBR corrupto. Si se trata de un disco duro desde el cual el sistema operativo arranca, ocurrirá que este dejará de arrancar. En el caso de un disco duro de datos, lo normal es que “desaparezcan” una o varias particiones con sus consiguientes sistemas de archivos. La recuperación del MBR es relativamente simple, empleando en primer lugar un MBR genérico obtenido de otro sistema similar y recreando a continuación la tabla de particiones. Para obtener la tabla de particiones pueden emplearse herramientas que buscan los sectores de arranque de sistemas de archivos conocidos. Una vez localizan el sector de arranque, conocen el sector de inicio de la partición. Además, este sector de arranque suele contener en uno de sus campos el tamaño del sistema de archivos, lo que define el último sector de la partición. La búsqueda de sectores de arranque se basa en la firma 55AAh al final del mismo y la aparición de ciertas cadenas de caracteres y datos característicos. 20 Si el disco funciona mal y hace ruidos extraños, cuanto más tiempo pase en funcionamiento, menos cantidad de información se recuperará. Los ruidos son un síntoma de alguna rotura mecánica que literalmente puede machacar la superficie magnética de los discos a velocidades del orden de 10000 rpm. José María López López Dpto. De Informática de la Universidad de Oviedo 19 Formateo o borrado accidental del sistema de archivos Un formateo del sistema de archivos hace desaparecer aparentemente todos los archivos del mismo. Sin embargo, los archivos siguen estando allí. En este caso la recuperación de archivos se basa fundamentalmente en la localización de los directorios dentro del disco, los cuales nos permitirán llegar a los archivos que contienen. Los archivos ubicados en el directorio raíz son más difíciles de recuperar, pues el directorio raíz se incializa durante el proceso de formateo. Cuando se borra un archivo, no se escribe ceros en los clusters que ocupa. Simplemente se modifica la lista de clusters libres, añadiendo los clusters del archivo, y se elimina la entrada del archivo dentro del directorio que lo contenía. Sin embargo, la información sigue en el disco hasta que una nueva escritura en el disco sobrescriba alguno de sus clusters. Por lo tanto para la recuperación de archivos borrados lo mejor es no llevar a cabo ninguna escritura sobre el disco, o incluso mejor, arrancar el ordenador desde un soporte extraible, hacer una imagen del sistema de archivos sobre un disco duro externo y trabajar sobre dicha imagen en otro ordenador, evitando así las escrituras llevadas a cabo por ciertas aplicaciones o el sistema operativo. La localización de archivos borrados depende en gran medida del sistema de archivos empleado. No obstante, hay técnicas generales basadas en información clave del archivo, como puede ser su cabecera. Por ejemplo, los archivos JPEG tienen una cabecera predefinida que puede ayudar a localizarlos en un disco borrado. Infección de virus y similares Si se dispone de un antivirus actualizado sobre CD/DVD arrancable o dispositivo USB, debe arrancarse desde cualquiera de ellos. Si no es ese el caso, debe conectarse el disco a otro ordenador con antivirus actualizado, bien sea como disco duro externo o interno. Es muy importante tener desactivada la opción de ejecución automática en el ordenador que incluye el antivirus, pues en caso contrario puede resultar infectado. En cualquier caso, un sistema en el que ya ha entrado un virus puede estar comprometido incluso después de su eliminación. José María López López Dpto. De Informática de la Universidad de Oviedo 20