3 sistemas de archivos

Anuncio
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
Descargar