Dar formato

Se denomina formatear al proceso de escribir marcas en el medio magn�tico que se utilizan para delimitar pistas y sectores. Antes de formatear un disco, su superficie magn�tica es un completo desorden de se�ales magn�ticas. Cuando se le da formato, se trae un cierto orden al caos b�sicamente dibujando l�neas en los lugares donde van las pistas, y donde son divididas para formar sectores. En una descripci�n en detalle no ser�a exactamente as�, pero esto es irrelevante. Lo importante aqu� es que un disco no puede utilizarse a menos que haya sido formateado.

La terminolog�a aqu� se vuelve un poco confusa: en MS-DOS y MS Windows, la palabra formatear se utiliza para cubrir el proceso de creaci�n de un sistema de archivos (que discutiremos m�s abajo). All�, los dos procesos se combinan, especialmente en los discos flexibles. Cuando se necesita realizar la distinci�n, el formateo real se denomina formateo de bajo nivel, mientras que construir el sistema de archivos se llama formateo de alto nivel. En los c�rculos UNIX, los dos se llaman formatear y crear un sistema de archivos, y as� ser� como tambi�n lo usemos en este libro.

Para los discos IDE y algunos SCSI el formateo se realiza en la f�brica y no necesita repetirse; as� que la mayor�a de la gente no deber� preocuparse por �l. De hecho, formatear un disco duro puede hacer que funcione peor, por ejemplo porque necesite ser formateado de una forma especial para que funcione la sustituci�n autom�tica de sectores defectuosos.

Discos que necesitan o pueden ser formateados usualmente requieren un programa especial, ya que, debido a que la interfase para realizar un formateo logico de un disco difiere de un disco a otro. El programa para formatear el disco est� usualmente en la controladora de la BIOS o es suministrado por un programa MS-DOS. Ninguno de ellos puede ser usado facilmente dentro de Linux.

Durante el formateo uno puede encontrarse puntos defectuosos en el disco, llamados bloques malos o sectores defectuosos. Algunas veces estos son manejados por el propio disco, pero incluso entonces, si aparecen m�s de ellos, debe hacerse algo para evitar utilizar esas partes del disco. Lo l�gico para hacer esto se encuentra dentro del propio sistema de archivos; c�mo a�adir la informaci�n al sistema de archivos se describe m�s abajo. De forma alternativa. uno puede crear una partici�n peque�a que cubra exactamente la parte mala del disco; esta opci�n puede ser una buena idea si la parte mala es muy grande, ya que los sistemas de archivos tienen problemas con zonas defectuosas muy grandes.

Los discos flexibles se formatean con fdformat. El archivo de dispositivo de disquete se proporciona como par�metro. Por ejemplo, el comando siguiente formatea un disquete de 3.5 pulgadas y alta densidad en ubicado en la primera unidad lectora-escritora de discos flexibles:

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 
1440 kB.
Formatting ... done
Verifying ... done
$

Tenga en cuenta que si desea utilizar el dispositivo auto-detectable (es decir, /dev/fd0), debe primero configurar los par�metros del dispositivo con setfdprm. Para lograr el mismo efecto que antes, deber�a hacer los siguiente:

$ setfdprm /dev/fd0 1440/1440
$ fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity 
1440 kB.
Formatting ... done
Verifying ... done
$

Generalmente es m�s conveniente elegir el archivo de dispositivo que mejor se adapte al tipo del disquete. Tenga en cuenta que es desaconsejable formatear disquetes para contener m�s informaci�n que aquella para la que ha sido dise�ado.

fdformat tambi�n comprobar� el disquete, es decir, buscar� sectores defectuosos. Intentar� recuperar un sector defectuoso varias veces (normalmente se puede o�r esto, el ruido del disco cambia dr�sticamente). Si el disco est� solamente defectuoso temporalmente (debido a polvo en la cabeza de lectura/escritura, algunos errores son falsas alarmas), fdformat no lo indicar�, pero un error real abortar� el proceso de comprobaci�n. El n�cleo imprimir� mensajes por cada error de entrada/salida que encuentre; estos ir�n a parar a la consola, o si se usa syslog, al archivo /usr/log/messages. fdformat por s� mismo no indicar� d�nde est� el error (tampoco importa mucho, los disquetes son lo suficientemente baratos como para desechar uno defectuoso).

$ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 
1440 kB.
Formatting ... done
Verifying ... read: Unknown error
$

El comando badblocks puede utilizarse para buscar bloques defectuosos en cualquier disco o partici�n (incluidos los disquetes). No formatea el disco, as� que puede utilizarse incluso con sistemas de archivos existentes. El ejemplo siguiente comprueba un disquete de 3,5 pulgadas con dos sectores malos.

$ badblocks /dev/fd0H1440 1440
718
719
$

La salida de badblocks es el n�mero de los bloques malos que encuentra. La mayor�a de sistemas de archivos pueden evitar estos bloques. Mantienen una lista de sectores defectuosos conocidos, que se inicia cuando se crea el sistema de archivos, y se puede modificar m�s adelante. La b�squeda inicial de bloques malos puede hacerse a trav�s del comando mkfs(que inicia el sistema del archivos), pero m�s adelante las comprobaciones deben realizarse con badblocks y los nuevos bloques deben a�adirse con fsck. Describiremos mkfs y fsck m�s adelante.

Muchos discos modernos autom�ticamente detectan bloques malos, e intentan arreglarlos utilizando en su lugar un bloque especial reservado en buen estado. Esto es transparente al sistema operativo. Esta caracter�stica debe estar documentada en el manual del disco, si es lo bastante curioso para mirar si aparece. Incluso estos discos pueden fallar, si el n�mero de sectores defectuosos crece demasiado, aunque existen posibilidades de que por entonces el disco est� tan estropeado que no pueda utilizarse.