6.0 Utilizando Discos y Otros Medios de Almacenamiento

"En un disco limpio puede buscar por siempre"

Cuando instala o actualiza su sistema, necesita realizar una cantidad de
trabajo razonable en sus discos. Para que los archivos puedan ser almacenados 
en los discos debe crear sistemas de archivos y reservar espacio para las 
diferentes partes del sistema.

En este captulo se explican todas las actividades iniciales que necesitan 
realizarse sobre los discos. Usualmente, una vez que consiga configurar su 
sistema, no tendr que realizar el trabajo nuevamente, excepto para utilizar 
disquetes. Solo necesitar volver a este captulo si agrega un nuevo disco o 
desea poner a punto de manera muy fina a la utilizacin del disco.

Las tareas bsicas en la administracin de discos son:

Formatear los discos. Formatear los discos realiza varias tareas, tal como 
chequear y registrar la existencia de bloques daados, y los prepara que que 
puedan ser utilizados. (El dar formato no es necesario en estos das para la 
mayora de los discos rgidos).

Particionar los discos rgidos. Si desea utilizar los discos para varias 
actividades, las cuales supuestamente no deben interferir con ninguna otra, 
debe crear particiones (o al menos debe crear una para poder utilizarlo). Una 
razn por la que debe particionar en varias partes un disco es almacenar 
varios sistemas operativos en el mismo. Otra razn es para mantener los 
archivos de los usuarios separados de los archivos del sistema, lo cual 
simplifica la tarea de realizar copias de seguridad y ayuda a proteger el 
sistema de una corrupcin.

Crear un sistema de archivos (de un tipo particular) en cada disco o 
particin. El disco no significa nada para un sistema GNU/Linux hasta que 
no genere un sistema de archivos; entonces luego, los archivos pueden 
ser creados y accedidos.

Montar sistemas de archivos diferentes para formar una estructura de rbol 
individual, automticamente o manualmente como sea necesario. (Si se montan 
sistemas de archivos manualmente, entonces usualmente, necesitan que tambin 
sean desmontados manualmente).

El Captulo 5 contiene informacin acerca de memoria virtual y cach de disco, 
de lo cual necesita estar percatado al momento de utilizar discos.




6.1 Dos tipos de dispositivos

UNIX, y por lo tanto GNU/Linux, reconoce dos tipos de dispositivos: 
dispositivos de bloques de acceso-aleatorio (tales como discos), y 
dispositivos de caracteres (tales como cintas y lineas seriales), algunos de 
estos ltimos pueden ser de acceso secuencial y algunos de accesos-aleatorio. 
Cada dispositivo soportado en GNU/Linux es representado en el sistema de 
archivos como un archivo de dispositivo. Cuando lea o escriba sobre un 
archivo de dispositivo, los datos van o vienen desde el dispositivo que este 
representa. De esta manera no se necesitan programas especiales (y no se 
necesitan ningn mtodo especial de programacin, como descubrir interrupciones
o escudriar puertos seriales) para acceder a los 
dispositivos. Por ejemplo, para enviar un archivo a la impresora, puede 
simplemente ejecutar :

$ cat nombre-de-archivo > /dev/lp1
$

y el contenido del archivo es impreso (en este cado, el archivo debe estar
en un 
formato que la impresora comprenda). Note, que no es una buena idea 
tener a varias personas realizando cat de sus archivos a la impresora al mismo 
tiempo. Generalmente se utiliza un programa especial para enviar los archivos a
que sean impresos (usualmente lpr). Estos programas se aseguran de que solo un 
archivo est siendo impreso en un momento dado, y automticamente enva 
archivos a la impresora en cuanto se finalice la impresin del archivo previo. 
Algo similira puede ser necesario para la mayora de los dispositivos.
De hecho, raramente los archivos de dispositivos son utilizados directamente.

Desde que los archivos de dispositivos se muestran como archivos en el sistema 
(en el directorio /dev), es fcil ver cuales de ellos existen, 
utilizando ls o algn otro comando similar. En la salida del comando ls -l, la 
primera columna indica el tipo de archivo y sus permisos. Por ejemplo, 
observe la salida al inspeccionar un archivo de dispositivo de un puerto serial
:

$ ls -l /dev/cua0
crw-rw-rw-	1	root	uucp	5, 64 Nov 30 1993 /dev/cua0
$

El primer caractr en la primera columna arriba, es decir 'c' en crw-rw-rw-, 
le indica el tipo de archivo, en este caso un 
dispositivo de caracteres. Para archivos comunes el primer caracter es 
'-', para directorios es'd' y para dispositivos de bloques es 'b'. Examine la
pgina de manual de ls para obtener informacin mas detallada.

Note que usualmente todos los archivos de dispositivos existen, an cuando el 
dispositivo por si mismo no se encuentre instalado. Esto quiere decir que 
aunque exista un 
archivo llamado /dev/sda, no significa que realmente haya un disco SCSI 
instalado. 
Tener todos los archivos de dispositivos facilita la instalacin de los 
programas, y la incorporacin de nuevo hardware (no 
existe la necesidad de tener que conocer los parmetros correctos para crear 
los archivos de dispositivos de los nuevos dispositivos).


6.2 Discos Rgidos

Esta subseccin introduce terminologa relacionada a los discos rgidos. Si ya 
conoce los trminos y conceptos, entonces puede obviar esta subseccin.

La Figura 4-1 muestra un esquema de las partes importantes de un 
disco rgido. Un disco rgido consiste de uno o ms discos circulares. Las
superficies de estos discos se encuentran cubiertas de una 
substancia magntica utilizada para grabar los datos. Por cada superficie 
existe una cabeza lectora-escritora que examina o altera los datos 
all grabados. Los discos rotan sobre un eje comn, y tpicamente la
velocidad de 
rotacin es de 3600 vueltas o revoluciones por minuto, aunque los discos 
rgidos de altas prestaciones tienen velocidades mucho mayores. Las cabezas se 
mueven a lo largo de los radios de los discos; y este movimiento combinado con 
el de rotacin de los discos, permite a las cabezas acceder a todas las partes 
de las superficies.

El procesador (CPU) y el disco se comunican a travs de una controladora 
de disco. Esto libera al resto de la computadora de tener que conocer 
como utilizar el dispositivo,
 debido a que los controladores para diferentes tipos de discos pueden ser 
construdos para que utilicen la misma interface para comunicarse con el 
resto de la computadora. 
Por lo tanto, la computadora solo tiene que decir "hey!, Disco!, dame lo que 
yo quiero", en vez de de tener que indicarle, con una larga y compleja 
serie de seales 
electricas, como mover la cabeza a la ubicacin apropiada, esperar a que 
ls posicin correcta del disco pase por debajo de la 
cabeza y realizar todos los pasos necesarios pocos amistosos. En 
realidad,  la interface de la controladora es bastante compleja, pero mucho 
menos de lo que puede llegar a ser un acceso directo al disco si esta no 
existiera. La controladora puede adems realizar otras tareas, como reemplazar 
automticamente sectores defectuosos o hacer cach.

Lo anterior es usualmente todo lo necesita comprender acerca del funcionamiento
del hardware. Existen tambin un puado de otras cosas, tales como el motor que
gira los discos y mueve las cabezas, y la electrnica que controla las 
operaciones de las partes mecnicas. Pero estas cuestiones no son relevantes 
para entender 
los principios de como trabaja un disco rgido.

Las superficies estn normalmente divididas en anillos concntricos, 
llamado pistas, y estos por su parte, se encuentran divididas en sectores. 
Esta 
divisin es utilizada para especificar ubicaciones dentro de los discos rgidos
 y 
para asignar espacio en disco para los archivos.
Para encontrar una ubicacin en particular en el disco rgido, uno puede decir 
"superficie 3, pista 5, sector 7". Normalmente la cantidad de sectores es el 
mismo en todas las pistas, pero algunos discos ponen ms sectores en las 
pistas ms externas al centro (todos los sectores son del mismo tamao fsico, 
por lo que mayor cantidad de ellos caben en las pistas mas 
salientes-externas). Tpicamente, un sector alberga 512 bytes de datos. El 
disco, por si slo, no puede manejar cantidades mas pequeas de datos que 
las contenidas en un sector.

Cada superficie esta dividida dentro de pistas (y sectores) de la misma forma. 
Esto significa que cuando la cabeza se encuentra sobre una 
pista particular, las cabezas para las otras superficies estn tambin en el 
mismo nmero de pista. Todas las pistas correspondientes a un mismo nmero de 
pista de cada superficie es llamado un cilindro. El movimiento de las
cabezas desde una pista (cilindro) a otra toma un determinado intervalo de 
tiempo. Entonces, si los datos que se desean 
acceder (digamos un archivo), se encuentran en ubicaciones contiguas dentro
del disco, el movimiento de las cabezas sera menor, mejorando la performance
del sistema. Sin embargo, no siempre es posible almacenar los archivos de esta 
forma; as que  
los archivos que estn ubicados en diversos lugares del disco son llamados 
fragmentados.

El nmero de superficies (o cabezas, lo cual es la misma cosa), cilindros, y 
sectores varan bastante. La especificacin del nmero de cada uno de estos
tems es llamada la 
geometra del disco rgido. La geometra es usualmente almacenada en una 
 memoria especial alimentada a batera, llamada la CMOS RAM, 
desde donde el sistema operativo puede obtenerla durante el inicio 
del sistema o la iniciacin del controlador.

Desafortunadamente, la BIOS tiene una limitacin de diseo, lo cual hace 
imposible que se especifique un nmero de pista que sea mas grande que 1024 en 
la CMOS RAM, aunque este valor sea muy pequeo para un disco grande. 
Para solucionar este inconveniente, 
 la controladora del disco rgido "miente" acerca de la geometra, y traduce 
las direcciones dadas por la computadora dentro de valores que se ajustan 
realmente. Por ejemplo, un disco rgido puede tener 8 cabezas, 2048 pistas, y 
35 sectores por pista. Esta controladora puede mentirle a la computadora y 
decirle que el disco tiene 16 cabezas, 1024 pistas y 35 sectores por pista.
Estos valores no exceden el nmero de pistas permitido y traduce las 
direcciones suministrada por la computadora dividiendo por dos el nmero de 
cabezas y duplicando el nmero de pistas.
 En realidad, la matemtica es un 
poco ms complicada, porque los nmeros pueden no ser 
tan exactos como en nuestro ejemplo. Sin embargo,estos 
detalles no son relevantes para la comprensin del 
principio. Este tipo de traduccin distorsiona la vista que tienen los 
sistemas operativos sobre como estn organizados los discos, por lo tanto,
dificulta la accin de almacenar toda la informacin (por ej. de un archivo) 
en un mismo cilindro para mejorar la performance.

La traduccin es solo un problema para los discos de tipo IDE. Los discos SCSI
utilizan un nmero de sector secuencial. En este caso, la controladora traduce
un nmero de sector secuencial en una direccin compuesta por cabeza, cilindro
y sector, y utilizan un mtodo completamente diferente de comunicacin entre
la CPU y la controladora, por lo que no tienen el tipo de problema que existe
con los discos IDE. Note, sin embargo, que la computadora tampoco puede conocer
 la verdadera geometra de un disco SCSI. 

Debido a que Linux no conoce con frecuencia la verdadera geometra de un disco,
sus sistemas de archivos no intentan colocar los archivos en un mismo cilindro.
En vez de esto, intenta utilizar sectores consecutivos, lo que proporciona una
performance similar. El tema es un poco ms complicado si existen prelecturas
automticas y cach manejadas por la controladora.

Cada disco rgido es representado por un archivo de dispositivo separado. 
Los archivos de dispositivos para los discos rgidos IDE son  /dev/hda, 
/dev/hdb, /dev/hdc y /dev/hdd. Los archivos de dispositivos para los discos 
rgidos SCSI son /dev/sda, /dev/sdb, etc. Existen convenciones de nombres
similares para otros tipos de discos rgidos; lea el captulo 5 para obtener
ms informacin. Note que los archivos de dispositivos para los discos
rgidos dan acceso a todo el disco, no a particiones individuales (las cuales
estn explicadas en subsecciones siguientes). Por esta razn, puede ser simple
tener inconveniente con la informacin entre las particiones si no tiene 
cuidado al accederlos. Usualmente, solo debe utilizar los archivos de 
dispositivos de discos para acceder al master boot record (el cual tambin
es explicado ms adelante).


6.3 Disquetes

Un disco flexible (o disquete) consiste de una membrana flexible, 
la cual se encuentra 
cubierta en uno o en ambos lados con una substancia magntica similar a la de 
los discos rgidos. El disco flexible por si mismo no tiene una cabeza 
lectora-escritora, esta se encuentra includa en la unidad. Un disquete se 
corresponde a lo que es un solo disco en un disco rgido, pero este es de 
caracter removible, lo que significa que una misma unidad puede ser utilizada 
para acceder a diferentes disquetes, a diferencia de los discos rgidos en la 
que cada unidad es indivisible.

Al igual que un disco rgido, un disquete se encuentra dividido en pistas y 
sectores (y las dos pistas que se corresponden en ambos lados del disquete 
forman un cilindro), aunque existe mucha menos cantidad de ellas que en un 
disco rgido.

Una unidad de disquetes soporta en general varios tipos diferentes de discos; 
por ejemplo, una unidad de 3.5 pulgadas puede utilizar discos de 720 Kb y 
tambin de 1,44 Mb.  Debido a que la unidad tiene para operar un bit que 
utiliza para distinguir, y el sistema operativo debe conocer que tan grande 
(en capacidad) es el disco, existen muchos archivos de dispositivos para 
unidades de disquetes, uno por combinacin de unidad y de tipo de disco. Por 
ejemplo, el archivo /dev/fd0H1440 es la primera unidad de disquetes (fd0),  
la cual debe ser una unidad de 3.5 pulgadas, utilizando un disco de alta 
densidad (H) de 3.5 pulgadas de 1440 kB (1440), es decir, un disquete de alta 
densidad de 3.5 pulgadas normal.

Para ms informacin sobre las convenciones 
de nombres para los dispositivos de disquetes, vea XXX (lista de dispositivos).

Los nombres de los archivos de dispositivos para unidades de disquetes 
son complejos, sin embargo, en Linux existen tipos especiales de dispositivos 
que pueden detectar  
automticamente el tipo de disco flexible que se encuentra en la unidad. Este 
trabaja intentando leer el primer sector de un disquete recin insertado, 
utilizando diferentes tipos, hasta que alguno de ellos consiga leer
el disquete correctamente. 
Se requiere que el disquete se encuentre formateado para que este procedimiento
 funcione. Los archivos de dispositivos automticos son /dev/fd0, /dev/fd1,...,
 etc.

Los parmetros que los dispositivos automticos utilizan para acceder a un 
disco pueden ser establecidos mediante el programa setfdprm. Este comando 
es til en aquellos casos en que desees acceder a un disco flexible que no 
tiene un tamao de los que normalmente se utilizan, debido a que
 por ejemplo, contiene un nmero de sectores inusual. O tambin,  
si por alguna razn la autodeteccin falla y el archivo de dispositivo no se 
encuentra.

Linux puede utilizar muchos formatos de discos flexibles no estndar, que se 
suman a todos los estndar a los que Linux tiene soporte. Algunos de estos 
requieren que se utilice programas especiales para darles formato. 
Omitiremos estos tipos de discos por ahora, pero en el momento en que debas
utilizar uno de ellos, puedes examinar el archivo /etc/fdprm. Este especifica 
los parmetros que serfdprm reconoce.

El sistema operativo debe conocer cuando se cambia un disco flexible en la 
unidad, por ejemplo, para evitar que los datos que estn en cach y que 
pertenecan al disquete que se estuvo utilizando previamente, sigan siendo
vlidos para el nuevo disquete insertado. 
Desafortunadamente, la lnea serial que se utiliza para esta tarea algunas 
veces est daada, y para peor, no siempre notifica cuando se est utilizando 
una unidad como suceda con MS-DOS. Si experimentas problemas utilizando 
disquetes, esta puede ser la razn. La nica forma de solucionar este problema
es reparando la unidad de disquete.


6.4. CD-ROM

Un dispositivo CD-ROM utiliza un disco cubierto de plstico
el cul se lee de
forma ptica. La informacin se graba sobre la superficie
del disco [15] en
pequeos "surcos" alineados a lo largo de una espiral
desde el centro hacia el
borde. El dispositivo dirige un rayo lser sobre la
espiral para leer el disco. Cuando el lser choca
contra un surco, se refleja de una determinada manera;
cuando choca contra la superficie lisa lo hace de
otra. Esto hace posible codificar bits, y por lo
tanto informacin. El resto es sencillo, es simplemente mecnica.


Los dispositivos CD-ROM resultan lentos comparados con los discos
duros. Tpicamente mientras un disco duro tiene un tiempo
medio de bsqueda inferior a 15 milisegundos, un CD-ROM
puede tardar dcimas de segundo en una bsqueda. La
velocidad actual de transferencia de datos es medianamente alta,
de unos cientos de kilobytes por segundo. La lentitud
significa que los CD-ROM no son tan agradables de
usar como los discos duros (algunas distribuciones de Linux
proporcionan sistemas "live" en CD-ROM, haciendo innecesario copiar archivos
al disco duro, facilitando la instalacin y salvando espacio
en disco), aunque es todava posible. Para instalar programas
nuevos, los CD-ROM son muy adecuados, ya que una
alta velocidad no es esencial durante la instalacin.

Hay varias maneras de acomodar datos en un CD-ROM.
La ms popular se encuentra definida en el estndar
internacional ISO 9660. Este estndar especifica un sistema de
archivos mnimo, que incluso es ms tosco que el
que usa MS-DOS. Por otro lado, es tan mnimo
que cualquier sistema operativo debera ser capaz de mapearlo
hacia su sistema nativo.

Para un uso normal UNIX no puede utilizar el
sistema de archivos ISO 9660, as que se ha
desarrollado una extensin del estndar, denominada extensin Rock Ridge.
Rock Ridge permite nombres de archivo largos, enlaces simblicos,
y un montn de otros regalos, haciendo que un
CD-ROM parezca ms o menos como cualquier sistema de
archivos UNIX contemporneo. Mejor an, un sistema de archivos
Rock Ridge todava es un sistema de archivos ISO
9660 vlido, posibilitando su uso tambin en sistemas no
UNIX. Linux soporta tanto ISO 9660 como la extensin
Rock Ridge; ambas son reconocidas y utilizadas automticamente.

De todas formas, el sistema de archivos es tan
slo la mitad de la batalla. La mayora de
los CD-ROM contienen datos que requieren un programa especial
para acceder a ellos, y la mayora de estos
programas no funcionan en Linux (excepto posiblemente bajo dosemu,
el emulador Linux de MS-DOS, o wine, el emulador
de Windows). [16] Tambin est VMWare, un producto comercial
que emula mediante software una mquina x86 completa [17]).


Un dispositivo CD-ROM se accede a travs del correspondiente
archivo de dispositivo. Hay varias formas de conectar un
CD-ROM a un ordenador: va SCSI, a travs de
una tarjeta de sonido, o mediante EIDE. Las tcnicas
hardware necesarias para hacer esto caen fuera del objetivo
de este libro, pero el tipo de conexin determina
el archivo de dispositivo.


6.5. Cintas

Un dispositivo de cinta utiliza una banda magntica, similar
[18] a las casetes de msica. Una cinta es
de tipo serie por naturaleza, lo que significa que
para acceder a cualquier parte de ella, primero se
deben atravesar todas las partes anteriores. Un disco puede
accederse de forma aleatoria, esto es, se puede saltar
directamente a cualquier lugar del disco. El acceso serie
de las cintas hacen de ellas dispositivos lentos.

Por otro lado, las cintas son relativamente baratas de
fabricar, ya que no es necesario que sean muy
rpidas. Adems pueden hacerse bastante largas, y por lo
tanto contener una gran cantidad de datos. Esto hace
que las cintas sean muy adecuadas para archivar o
realizar copias de seguridad, que no requieren altas velocidades,
pero se benefician del bajo coste y alta capacidad
de almacenamiento.


6.6. Dar formato

Se denomina formatear al proceso de escribir marcas en
el medio magntico que se utilizan para delimitar pistas
y sectores. Antes de formatear un disco, su superficie
magntica es un completo desorden de seales magnticas. Cuando
se le da formato, se trae un cierto orden
al caos bsicamente dibujando lneas en los lugares donde
van las pistas, y donde son divididas para formar
sectores. En una descripcin en detalle no sera exactamente
as, pero esto es irrelevante. Lo importante aqu es
que un disco no puede utilizarse a menos que
haya sido formateado.

La terminologa aqu se vuelve un poco confusa: en
MS-DOS y MS Windows, la palabra formatear se utiliza
para cubrir el proceso de creacin de un sistema
de archivos (que discutiremos ms abajo). All, los dos
procesos se combinan, especialmente en los discos flexibles. Cuando
se necesita realizar la distincin, el formateo real se
denomina formateo de bajo nivel, mientras que construir el
sistema de archivos se llama formateo de alto nivel.
En los crculos UNIX, los dos se llaman formatear
y crear un sistema de archivos, y as ser
como tambin lo usemos en este libro.

Para los discos IDE y algunos SCSI el formateo
se realiza en la fbrica y no necesita repetirse;
as que la mayora 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 sustitucin automtica de sectores defectuosos.

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 ms de ellos, debe hacerse
algo para evitar utilizar esas partes del disco. Lo
lgico para hacer esto se encuentra dentro del propio
sistema de archivos; cmo aadir la informacin al sistema
de archivos se describe ms abajo. De forma alternativa.
uno puede crear una particin pequea que cubra exctamente
la parte mala del disco; esta opcin 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 parmetro. 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 parmetros
del dispositivo con setfdprm. Para lograr el mismo efecto
que antes, debera 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 ms conveniente elegir el archivo de dispositivo
que mejor se adapte al tipo del disquete. Tenga
en cuenta que es desaconsejable formatear disquetes para contener
ms informacin que aquella para la que ha sido
diseado.

fdformat tambin comprobar el disquete, es decir, buscar sectores
defectuosos. Intentar recuperar un sector defectuoso varias veces (normalmente
se puede or esto, el ruido del disco cambia
drsticamente). 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 comprobacin. El ncleo
imprimir mensajes por cada error de entrada/salida que encuentre;
estos irn a parar a la consola, o si
se usa syslog, al archivo /usr/log/messages. fdformat por s
mismo no indicar dnde 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.
Formating ... done
Verifying .. read: Unknown error
$

El comando badblocks puede utilizarse para buscar bloques defectuosos
en cualquier disco o particin (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 badblock es el nmero de los
bloques malos que encuentra. La mayora 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 ms
adelante. La bsqueda inicial de bloques malos puede hacerse
a travs del comando mkfs (que inicia el sistema
del archivos), pero ms adelante las comprobaciones deben realizarse
con badblock y los nuevos bloques deben aadirse con
fsck. Describiremos mkfs y fsck ms adelante.

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


6.7. Particiones

Un disco duro puede dividirse en varias particiones. Cada
particin funciona como si fuera un disco duro independiente.
La idea es que si slo se tiene un
disco, y se quieren tener, digamos, dos sistemas operativos
en l, se pueda dividir el disco en dos
particiones. Cada sistema operativo utilizar su propia particin tal
y como se desea, y no tocar la otra.
De esta forma los dos sistemas operativos pueden coexistir
pacficamente en el mismo disco duro. Sin particiones se
tendra que comprar un disco duro para cada sistema
operativo.

Los disquetes generalmente no se particionan. No hay ninguna
razn tcnica para ello, pero dado que son tan
pequeos, particionarlos sera til slo en extraas ocasiones. Los
CD-ROM tampoco se suelen particionar, ya que es ms
fcil utilizarlos como un disco grande, y raramente existe
la necesidad de tener varios sistemas operativos en uno
de ellos.


6.7.1. El MBR, sectores de arranque y la tabla
de particiones

La informacin sobre cmo se particiona un disco se
almacena en su primer sector (esto es, el primer
sector de la primera pista sobre la primera superficie
del disco). Este primer sector es el registro de
arranque maestro (MBR) del disco; ste es el sector
que la BIOS lee y arranca cuando se enciende
la mquina. El registro de arranque maestro integra un
pequeo programa que lee la tabla de particiones, comprueba
qu particin est activa (es decir, marcada como arrancable),
y lee el primer sector de esa particin, el
sector de arranque de la particin (el MBR tambin
es un sector de arranque, pero tiene una importancia
especial y de ah su nombre especial). Este sector
de arranque contiene otro pequeo programa que lee la
primera parte del sistema operativo almacenado en esa particin
(asumiendo que es arrancable), y entonces la inicia.

El esquema de particin no est integrado en el
hardware, ni siquiera en la BIOS. Tan slo es
una convencin que muchos sistemas operativos siguen. No todos
los sistemas operativos la siguen, pero son las excepciones.
Algunos sistemas operativos soportan particiones, pero ocupan una particin
en el disco duro, y utilizan su propio sistema
de particionamiento dentro de esa particin. El ltimo convive
pacficamente con otros sistemas operativos (incluido Linux), y no
requiere de medidas adicionales, pero un sistema operativo que
no soporte particiones no puede coexistir en el mismo
disco con otro sistema operativo.

Como medida de precaucin, es buena idea anotar la
tabla de particiones en papel, de manera que si
alguna vez se corrompe no tenga que perder todos
sus archivos. (Una tabla de particin errnea puede corregirse
con fdisk). La informacin relevante la proporciona el comando
fdsik -l:

$ fdisk -l /dev/hda

Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders
Units = cylinders of 512 bytes

Device Boot Begin Start End Blocks Id System
/dev/hda1 1 1 24 10231+ 82 Linux swap
/dev/hda2 25 25 48 10260 83 Linux native
/dev/hda3 49 49 408 153900 83 Linux native
/dev/hda4 409 409 790 163305 5 Extended
/dev/hda5 409 409 744 143611+ 83 Linux native
/dev/hda6 745 745 790 19636+ 83 Linux native
$


6.7.2. Particiones extendidas y lgicas

El esquema original de particionamiento para discos duros de
PC permita slamente cuatro particiones. Esto rpidamente se volvi
demasiado escaso para la vida real, en parte porque
algunas personas queran ms de cuatro sistemas operativos (Linux,
MS-DOS, OS/2, Minix, FreeBSD, NetBSD, o Windows/NT, por nombrar
algunos), pero principalmente porque algunas veces es buena idea
tener varias particiones para un sistema operativo. Por ejemplo,
el espacio swap est generalmente mejor colocado para Linux
en su propia particin en lugar de la particin
principal por cuestiones de rapidez (vea ms abajo).

Para superar este problema de diseo, se inventaron las
particiones extendidas. Este truco permite particionar una particin primaria
en sub-particiones. Esta particin primaria subdividida es la particin
extendida; las subparticiones son las particiones lgicas. Se comportan
como particiones primarias, pero se crean de diferente manera.
No existen diferencias de rendimiento entre ellas.

La estructura de particiones de un disco duro debe
parecerse a la que aparece en la figura 6-2.
El disco se divide en tres particiones primarias, la
segunda de las cuales se divide en dos particiones
lgicas. Una parte del disco no est particionada. El
disco como un todo y cada particin primaria tienen
un sector de arranque.

Figura 6-2. Ejemplo de particionamiento de un disco duro.


6.7.3. Tipos de particiones

Las tablas de particiones (aquella en el MBR, y
las de las particiones extendidas) tienen un byte por
particin que identifica el tipo de esa particin. sta
intenta identificar el sistema operativo que utiliza la particin,
o el que suele hacerlo. El propsito es evitar
que dos sistemas operativos accidentalmente utilicen la misma particin.
De cualquier modo, en realidad, los sistemas operativos no
tienen en cuenta el byte de tipo de particin;
por ejemplo, Linux no lo toma en consideracin en
absoluto. Incluso peor, algunos lo utilizan incorrectamente; por ejemplo,
al menos una versin de DR-DOS ignora el bit
ms significativo del byte, mientras que otras no lo
hacen.

No existe un estndar para especificar lo que significa
cada valor del byte, pero algunos comnmente aceptados se
incluyen en la tabla 6-1. Una lista ms exhaustiva
est disponible en el programa de Linux fdisk.

Tabla 6-1. Tipos de particin (obtenida del programa de
Linux fdisk).

 0  Vacio           18  AST Windows swa 5c  Priam Edisk     a5  BSD/386        
 1  FAT12           1b  Hidden Win95 FA 61  SpeedStor       a6  OpenBSD        
 2  XENIX root      1c  Hidden Win95 FA 63  GNU HURD o SysV a7  NeXTSTEP       
 3  XENIX usr       1e  Hidden Win95 FA 64  Novell Netware  b7  BSDI fs        
 4  FAT16 <32M      24  NEC DOS         65  Novell Netware  b8  BSDI swap      
 5  Ampliado        39  Plan 9          70  DiskSecure Mult c1  DRDOS/sec (FAT-
 6  FAT16           3c  PartitionMagic  75  PC/IX           c4  DRDOS/sec (FAT-
 7  HPFS/NTFS       40  Venix 80286     80  Old Minix       c6  DRDOS/sec (FAT-
 8  AIX             41  PPC PReP Boot   81  Minix / old Lin c7  Syrinx         
 9  AIX bootable    42  SFS             82  Linux swap      db  CP/M / CTOS / .
 a  OS/2 Boot Manag 4d  QNX4.x          83  Linux           e1  DOS access     
 b  Win95 FAT32     4e  QNX4.x segunda  84  Unidad C: ocult e3  DOS R/O        
 c  Win95 FAT32 (LB 4f  QNX4.x tercera  85  Linux ampliado  e4  SpeedStor      
 e  Win95 FAT16 (LB 50  OnTrack DM      86  Conjunto de vol eb  BeOS fs        
 f  Win95 Ext'd (LB 51  OnTrack DM6 Aux 87  Conjunto de vol f1  SpeedStor      
10  OPUS            52  CP/M            8e  Linux LVM       f4  SpeedStor      
11  Hidden FAT12    53  OnTrack DM6 Aux 93  Amoeba          f2  DOS secondary  
12  Compaq diagnost 54  OnTrackDM6      94  Amoeba BBT      fd  Linux raid auto
14  Hidden FAT16 <3 55  EZ-Drive        9f  BSD/OS          fe  LANstep        
16  Hidden FAT16    56  Golden Bow      a0  Hibernaci de  ff  BBT            
17  Hidden HPFS/NTF



6.7.4. Particionando el disco duro

Existen muchos programas para crear y eliminar particiones. La
mayora de sistemas operativos tienen el suyo propio, y
es buena idea utilizar el propio con cada sistema
operativo, por si se diera el caso que haga
algo inusual que los otros no puedan hacer. Muchos
de estos programas se llaman fdisk, incluido el de
Linux, o variaciones de esa palabra. Los detalles de
uso del fdisk de Linux se dan en su
pgina de manual. El comando cfdisk es similar a
fdisk, pero tiene una interfaz ms agradable (a pantalla
completa).

Cuando se utilizan discos EIDE, la particin de arranque
(la particin con los archivos de imagen del ncleo
arrancables) debe estar completamente definida en los primeros 1024
cilindros. Esto es as porque el disco se utiliza
a travs de la BIOS durante el arranque (antes
de que el sistema entre en el modo protegido),
y la BIOS no puede manejar ms de 1024
cilindros. A veces es posible utilizar una particin de
arranque que parcialmente se encuentre dentro de los primeros
1024 cilindros. Esto funciona siempre que todos los archivos
que lee la BIOS se encuentran en los primeros
1024 cilindros. Como esto es difcil de conseguir, es
mala idea intentarlo; nunca se sabe si una actualizacin
del ncleo o una desfragmentacin del disco originar un
sistema no arrancable. As que asegrese que su particin
de arranque est completamente colocada dentro de los primeros
1024 cilindros. [19]

Algunas versiones modernas de BIOS y discos IDE pueden,
de hecho, manejar discos de ms de 1024 cilindros,
Si tiene uno de esos sistemas, se puede olvidar
del problema; si no est seguro, coloque la particin de arranque en los
primeros 1024 cilindros.

Cada particin debe tener un nmero par de sectores,
puesto que el sistema de archivos Linux utiliza un
tamao de bloque de 1 kilobyte , es decir,
dos sectores. Un nmero impar de sectores provocar que
el ltimo no pueda utilizarse. Esto no es ningn
problema, pero resulta feo, y algunas versiones de fdisk
avisarn de ello.

Cambiar el tamao de una particin requiere que primero
se realice una copia de seguridad de todo lo
que quiera salvar de esa particin (a ser posible
de todo el disco, por si acaso), borrar la
particin, crear una nueva, y entonces restaurarlo todo a
la nueva particin. Si la particin crece, puede necesitar
ajustar los tamaos (y guardar y restaurar) las particiones
adjuntadas tambin.

Como cambiar una particin es doloroso, es preferible establecerlas
correctamente al principio, o tener un rpido y fcil
de utilizar sistema de copia de seguridad. Si est
instalando desde un medio que no requiere demasiada intervencin
humana (digamos, desde un CD-ROM, en contraposicin a los
disquetes), es generalmente ms fcil probar con diferentes configuraciones
al principio. Como no tiene todava datos que guardar,
no es tan costoso el modificar particiones varias veces.

Existe un programa de MS-DOS, llamado fips [20], que
redimensiona una particin MS-DOS sin tener que guardar y
restaurar, pero para otros sistemas de archivos es todava
necesario.

N.T.: Existe un programa muy til para Linux llamado ntfs-resize
que pertenece al proyecto Linux-ntfs. Puede redimensionar
de manera segura y no destructiva particiones de tipo NTFS. Adems 
soporta todas las versiones de NTFS y trabaja an cuando el sistema de 
archivos se encuentre fragmentado. (11/05/2005)


6.7.5. Archivos de dispositivo y particiones

Cada particin y particin extendida posee su propio archivo
de dispositivo. El convenio de nombres para estos archivos
es que se aade un nmero de particin detrs
del nombre del disco entero, con el convenio de
que las particiones primarias van del 1 al 4
(independientemente de cuantas particiones primarias existan) y las particiones
lgicas tienen nmeros mayores que 5 (independientemente de la
particin primaria en la que residan). Por ejemplo, /dev/hda1
es la primera particin primaria del primer disco duro
IDE, y /dev/sdb7 es la tercera particin extendida en
el segundo disco duro SCSI.


6.8. Sistemas de archivos

6.8.1. Qu son los sistemas de archivos?

Un sistema de archivos son los mtodos y estructuras
de datos que un sistema operativo utiliza para seguir
la pista de los archivos de un disco o
particin; es decir, es la manera en la que
se organizan los archivos en el disco. El trmino
tambin es utilizado para referirse a una particin o
disco que se est utilizando para almacenamiento, o el
tipo del sistema de archivos que utiliza. As uno
puede decir "tengo dos sistemas de archivos" refirindose a
que tiene dos particiones en las que almacenar archivos,
o que uno utiliza el sistema de archivos extendido",
refirindose al tipo del sistema de archivos.

La diferencia entre un disco o particin y el
sistema de archivos que contiene es importante. Unos pocos
programas (incluyendo, razonablemente, aquellos que crean sistemas de archivos)
trabajan directamente en los sectores crudos del disco o
particin; si hay un archivo de sistema existente all
ser destruido o corrompido severamente. La mayora de programas
trabajan sobre un sistema de archivos, y por lo
tanto no utilizarn una particin que no contenga uno
(o que contenga uno del tipo equivocado).

Antes de que una particin o disco sea utilizada
como un sistema de archivos, necesita ser iniciada, y
las estructura de datos necesitan escribirse al disco. Este
proceso se denomina construir un sistema de archivos.

La mayora de los sistema de archivos UNIX tienen
una estructura general parecida, aunque los detalles exactos pueden
variar un poco. Los conceptos centrales son superbloque, nodo-i,
bloque de datos, bloque de directorio, y bloque de
indireccin. El superbloque tiene informacin del sistema de archivos
en conjunto, como su tamao (la informacin precisa aqu
depende del sistema de archivos). Un nodo-i tiene toda
la informacin de un archivo, salvo su nombre. El
nombre se almacena en el directorio, junto con el
nmero de nodo-i. Una entrada de directorio consiste en
un nombre de archivo y el nmero de nodo-i
que representa al archivo. El nodo-i contiene los nmeros
de varios bloques de datos, que se utilizan para
almacenar los datos en el archivo. Slo hay espacio
para unos pocos nmeros de bloques de datos en
el nodo-i; en cualquier caso, si se necesitan ms,
ms espacio para punteros a los bloques de datos
son colocados de forma dinmica. Estos bloques colocados dinmicamente
son bloques indirectos; el nombre indica que para encontrar
el bloque de datos, primero hay que encontrar su
nmero en un bloque indirecto.

Los sistemas de archivos UNIX generalmente nos permiten crear
un agujero en un archivo (esto se realiza con
la llamada al sistema lseek(); compruebe su pgina de
manual), lo que significa que el sistema de archivos
simplemente intenta que en un lugar determinado en el
archivo haya justamente cero bytes, pero no existan sectores
del disco reservados para ese lugar en el archivo
(esto significa que el archivo utilizar un poco menos
de espacio en disco). Esto ocurre frecuentemente en especial
para pequeos binarios, libreras compartidas de Linux, algunas bases
de datos, y algunos pocos casos especiales. (los agujeros
se implementan almacenando un valor especial en la direccin
del bloque de datos en el bloque indirecto o
en el nodo-i. Esta direccin especial indica que ningn
bloque de datos est localizado para esa parte del
archivo, y por lo tanto, existe un agujero en
el archivo).


6.8.2. Sistemas de archivos soportados por Linux

Linux soporta una gran cantidad de tipos diferentes de sistemas de archivos. 
Para nuestros propsitos los ms importantes son:

minix
El ms antiguo y supuestamente el ms fiable, pero
muy limitado en caractersticas (algunas marcas de tiempo se
pierden, 30 caracteres de longitud
mxima para los nombres de los archivos) y restringido
en capacidad (como mucho 64 MB de tamao por
sistema de archivos).

xia
Una versin modificada del sistema de archivos minix que
eleva los lmites de nombres de archivos y tamao
del sistema de archivos, pero por otro lado no
introduce caractersticas nuevas. No es muy popular, pero se
ha verificado que funciona muy bien.

ext3
El sistema de archivos ext3 posee todas las propiedades
del sistema de archivos ext2. La diferencia es que
se ha aadido una bitcora (journaling). Esto mejora el
rendimiento y el tiempo de recuperacin en el caso
de una cada del sistema. Se ha vuelto ms
popular que el ext2.

ext2
El ms sistema de archivos nativo Linux que posee
la mayor cantidad de caractersticas. Est diseado para ser
compatible con diseos futuros, as que las nuevas versiones
del cdigo del sistema de archivos no necesitar rehacer
los sistemas de archivos existentes.

ext
Una versin antigua de ext2 que no es compatible
en el futuro. Casi nunca se utiliza en instalaciones
nuevas, y la mayora de la gente que lo
utilizaba han migrado sus sistemas de archivos al tipo
ext2.

reiserfs
Un sistema de archivos ms robusto. Se utiliza una
bitcora que provoca que la prdida de datos sea
menos frecuente. La bitcora es un mecanismo que lleva
un registro por cada transaccin que se va a
realizar, o que ha sido realizada. Esto permite al
sistema de archivos reconstruirse por s slo fcilmente tras
un dao ocasionado, por ejemplo, por cierres del sistema
inadecuados.

Adicionalmente, existe soporte para sistemas de archivos adicionales ajenos,
para facilitar el intercambio de archivos con otros sistemas
operativos. Estos sistemas de archivos ajenos funcionan exactamente como
los propios, excepto que pueden carecer de caractersticas usuales
UNIX , o tienen curiosas limitaciones, u otros inconvenientes.

msdos
Compatibilidad con el sistema de archivos FAT de MS-DOS
(y OS/2 y Windows NT).

umsdos
Extiende el dispositivo de sistema de archivos msdos en
Linux para obtener nombres de archivo largos, propietarios, permisos,
enlaces, y archivos de dispositivo. Esto permite que un
sistema de archivos msdos normal pueda utilizarse como si
fuera de Linux, eliminando por tanto la necesidad de
una particin independiente para Linux.

vfat
Esta es una extensin del sistema de archivos FAT
conocida como FAT32. Soporta tamaos de discos mayores que
FAT. La mayora de discos con MS Windows son
vfat.

iso9660
El sistema de archivos estndar del CD-ROM; la extensin
popular Rock Ridge del estndar del CD-ROM que permite
nombres de archivo ms largos se soporta de forma
automtica.

nfs
Un sistema de archivos de red que permite compartir
un sistema de archivos entre varios ordenadores para permitir
fcil acceso a los archivos de todos ellos.

smbfs
Un sistema de archivos que permite compartir un sistema
de archivos con un ordenador MS Windows. Es compatible
con los protocolos para compartir archivos de Windows.

hpfs
El sistema de archivos de OS/2.

sysv
EL sistema de archivos de Xenix, Coherent y SystemV/386.


La eleccin del sistema de archivos a utilizar depende
de la situacin. Si la compatibilidad o alguna otra
razn hace necesario uno de los sistemas de archivos
no nativos, entonces hay que utilizar se. Si se
puede elegir libremente, entonces lo ms inteligente sera utilizar
ext3, puesto que tiene todas las caractersticas de ext2,
y es un sistema de archivos con bitcora.

Existe tambin el sistema de archivos proc, generalmente accesible
desde el directorio /proc, que en realidad no es
un sistema de archivos, an cuando lo parece. El
sistema de archivos proc facilita acceder a ciertas estructura
de datos del ncleo, como la lista de procesos
(de ah el nombre). Hace que estas estructuras de
datos parezcan un sistema de archivos, y que el
sistema de archivos pueda ser manipulado con las herramientas
de archivos habituales. Por ejemplo, para obtener una lista
de todos los procesos se puede utilizar el comando


$ ls -l /proc
total 0
dr-xr-xr-x 4 root root 0 Jan 31 20:37 1
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95
dr-xr-xr-x 4 root users 0 Jan 31 20:37 98
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99
-r--r--r-- 1 root root 0 Jan 31 20:37 devices
-r--r--r-- 1 root root 0 Jan 31 20:37 dma
-r--r--r-- 1 root root 0 Jan 31 20:37 filesystems
-r--r--r-- 1 root root 0 Jan 31 20:37 interrupts
-r-------- 1 root root 8654848 Jan 31 20:37 kcore
-r--r--r-- 1 root root 0 Jan 31 11:50 kmsg
-r--r--r-- 1 root root 0 Jan 31 20:37 ksyms
-r--r--r-- 1 root root 0 Jan 31 11:51 loadavg
-r--r--r-- 1 root root 0 Jan 31 20:37 meminfo
-r--r--r-- 1 root root 0 Jan 31 20:37 modules
dr-xr-xr-x 2 root root 0 Jan 31 20:37 net
dr-xr-xr-x 4 root root 0 Jan 31 20:37 self
-r--r--r-- 1 root root 0 Jan 31 20:37 stat
-r--r--r-- 1 root root 0 Jan 31 20:37 uptime
-r--r--r-- 1 root root 0 Jan 31 20:37 version
$

(Puede haber no obstante algunos archivos adicionales que no
correspondan con ningn proceso. El ejemplo anterior se ha
recortado.)

Tenga en cuenta que aunque se llame sistema de
archivos, ninguna parte del sistema de archivos proc toca
el disco. Existe tan slo en la imaginacin del
ncleo. Cuando alguien intenta echar un vistazo a alguna
parte del sistema de archivos proc, el ncleo hace
que parezca como si esa parte existiera en alguna
parte, aunque no lo haga. As, aunque exista un
archivo /proc/kcore de muchos megabytes, no quita espacio del
disco.


6.8.3. Qu sistemas de archivos deben utilizarse?

Existe generalmente poca ventaja en utilizar muchos sistemas de
archivos distintos. Actualmente, el ms popular sistema de archivos
es ext3, debido a que es un sistema de
archivos con bitcora. Hoy en da es la opcin
ms inteligente. Reiserfs es otra eleccin popular porque tambin
posee bitcora. Dependiendo de la sobrecarga del listado de
estructuras, velocidad, fiabilidad (percibible), compatibilidad, y otras 
varias razones,
puede ser aconsejable utilizar otro sistema de archivos. Estas
necesidades deben decidirse en base a cada caso.

Un sistema de archivos que utiliza bitcora se denomina
sistema de archivos con bitcora. Un sistema de archivos
con bitcora mantiene un diario, la bitcora, de lo
que ha ocurrido en el sistema de archivos. Cuando
sobreviene una cada del sistema, o su hijo de
dos aos pulsa el botn de apagado como el
mo adora hacer, un sistema de archivos con bitcora
se disea para utilizar los diarios del sistema de
archivos para recuperar datos perdidos o no guardados. Esto
reduce la prdida de datos y se convertir en
una caracterstica estndar en los sistemas de archivos de
Linux. De cualquier modo, no extraiga una falsa sensacin
de seguridad de esto. Como todo en esta vida,
puede haber errores. Procure siempre guardar sus datos para
prevenir emergencias.


6.8.4. Crear un sistema de archivos

Un sistema de archivos se crea, esto es, se
inicia, con el comando mkfs. Existen en realidad programas
separados para cada tipo de sistemas de archivos. mkfs
es nicamente una careta que ejecuta el programa apropiado
dependiendo del tipo de sistemas de archivos deseado. El
tipo se selecciona con la opcin -t fstype.

Los programas a los que mkfs llama tienen lneas
de comando ligeramente diferentes. Las opciones ms comunes e
importantes se resumen ms abajo; vea las pginas de
manual para ms informacin.

-t fstype
Selecciona el tipo de sistema de archivos.

-c
Busca bloques defectuosos e inicia la lista de bloques
defectuosos en consonancia.

-l archivo
Lee la lista inicial de bloques defectuosos del archivo
dado.

Para crear un sistema de archivos ext2 en un
disquete, se pueden introducir los siguiente comandos:

$ fdformat -n /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
$ badblocks /dev/fd0H1440 1440 $>$ bad-blocks
$ mkfs -t ext2 -l bad-blocks /dev/fd0H1440
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
360 inodes per group

Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$

Primero el disquete es formateado (la opcin -n impide
la validacin, esto es, la comprobacin de bloques defectuosos).
A continuacin se buscan los bloques defectuosos mediante badblocks,
con la salida redirigida a un archivo, bad-blocks. Finalmente,
se crea el sistema de archivos con la lista
de bloques defectuosos iniciada con lo que hubiera encontrado
badblocks.

La opcin -c podra haberse utilizado con mkfs en
lugar de badblocks y un archivo a parte. El
ejemplo siguiente hace esto.

$ mkfs -t ext2 -c /dev/fd0H1440
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
360 inodes per group

Checkng for bad blocks (read-only test) : done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
$

La opcin -c es ms conveniente que la utilizacin
a parte de badblocks, pero badblocks se necesita para
comprobar el sistema de archivos una vez creado.

El proceso para preparar sistemas de archivos en discos
duros o particiones es le mismo que para los
disquetes, excepto que no es necesario el formateo.


6.8.5. Montar y desmontar

Antes de que se pueda utilizar un sistema de
archivos, debe ser montado. El sistema operativo realiza entonces
operaciones de mantenimiento para asegurarse que todo funciona. Como
todos los archivos en UNIX estn en un mismo
rbol de directorios, la operacin de montaje provocar que
el contenido del nuevo sistema de archivos aparezca como
el contenido de un subdirectorio existente en algn sistema
de archivos ya montado.

Por ejemplo, la Figura 6-3 muestra tres sistemas de
archivos independientes, cada uno de ellos con su propio
directorio raz. Cuando se montan los dos ltimos sistemas
de archivos bajo /home y /usr respectivamente, en el
primer sistema de archivos, obtenemos un nico rbol de
directorios, como se observa en la Figura 6-4.

Figura 6-3. Tres sistemas de archivos independientes.

Figura 6-4. /home y /usr montados.

El montaje puede realizarse como en el siguiente ejemplo:


$ mount /dev/hda2 /home
$ mount /dev/hda3 /usr
$

El comando mount tiene dos argumentos. El primero es
el archivo de dispositivo correspondiente al disco o particin
que contiene el sistema de archivos. El segundo es
el directorio bajo el cual va a ser montado.
Tras estos dos comandos el contenido de los dos
sistemas de archivos aparecen como los contenidos de los
directorios /home y /usr, respectivamente. Se dice que "/dev/hda2
est montado en /home", e igualmente para /usr. Para
ver cualquiera de los sistemas de archivos, se puede
mirar el contenido del directorio en el que fue
montado, como si fuera cualquier otro directorio. Observe la
diferencia entre el archivos de dispositivo, /dev/hda2, y el
directorio de montaje, /home. El archivo de dispositivo proporciona
acceso al contenido crudo del disco, el directorio de
montaje proporciona acceso a los archivos del disco. El
directorio de montaje se denomina punto de montaje.

Linux soporta multitud de sistemas de archivos. mount intenta
adivinar el tipo de sistema de archivos. Se puede
utilizar la opcin -t fstype para especificar el tipo
directamente; esto es necesario en determinados casos, puesto que
la heurstica que utiliza mount no siempre funciona. Por
ejemplo, para montar un disquete MS-DOS, se puede utilizar
el comando siguiente:

$ mount -t msdos /dev/fd0 /floppy
$

El directorio de montaje necesita estar vaco, aunque debe
existir. Cualquier archivo en l, en cualquier caso, ser
inaccesible por su nombre mientras el sistema de archivos
est montado. (Cualquier archivo que estuviera abierto seguir estando
accesible. Archivos que tengan enlaces duros desde otros directorios
podrn accederse utilizando esos nombres.) No hay dao alguno
haciendo esto, y puede incluso ser til. Por ejemplo,
a alguna gente le gusta tener a /tmp y
/var/tmp como sinnimos, y poner /tmp como enlace simblico
a /var/tmp. Cuando el sistema arranca, antes de montar
el sistema de archivos /var, se utiliza un directorio
/var/tmp residente en el sistema de archivos raz en
su lugar. Cuando /var se monta, convertir al directorio
/var/tmp del sistema de archivos raz inaccesible. Si /var/tmp
no existe en el el sistema de archivos raz,
ser imposible utilizar los archivos temporales antes de montar
/var.

Si no tiene intencin de escribir nada en el
sistema de archivos, utilice el modificador -r de mount
para realizar un montaje de slo-lectura. Esto provocar que
el ncleo detenga cualquier intento de escribir en el
sistema de archivos, y tambin impedir que el ncleo
actualice el tiempo de acceso a los nodos-i. Montaje
de slo-lectura son necesarios para medios no grabables, como
los CD-ROM.

El lector atento habr notado un ligero problema lgico.
Cmo se monta el primer sistema de archivos (denominado
sistema de archivos raz, ya que contiene al directorio
raz), si obviamente no puede montarse sobre otro sistema
de archivos? Bueno, la respuesta es que se realiza
un truco de magia. [21] El sistema de archivos
raz se monta mgicamente a la hora del arranque,
y se puede confiar en que siempre ser montado.
Si el sistema de archivos no puede montarse, el
sistema no arrancar. El nombre del sistema de archivos
que mgicamente se monta como root est compilado dentro
del ncleo, o se especifica utilizando LILO o rdev.


El sistema de archivos raz se monta generalmente para
slo-lectura. Los guiones (scripts) de inicio ejecutarn entonces fsck para
comprobar su validez, y si no hay problemas, volver
a montarlo para permitir la escritura. fsck no debe
ejecutarse en sistemas de archivos montados, puesto que cualquier
cambio en el sistema de archivos mientras se ejecuta
fsck puede causar problemas. Como el sistema de archivos
raz se monta como slo-lectura mientras se comprueba, fsck
puede corregir cualquier problema sin preocuparse, porque la operacin
de remontaje vaciar cualquier metadato que el sistema de
archivos mantuviera en memoria.

En muchos sistemas existen otros sistemas de archivos que
tambin deben montarse de forma automtica durante en el
arranque. Estos se especifican en el archivo /etc/fstab; vea
la pgina de manual de fstab para los detalles
en el formato. Los detalles sobre cundo se montan
exactamente los sistemas de archivos adicionales dependen de muchos
factores, y pueden ser configurados por cada administrador si
lo necesita; vea el Captulo 8.

Cuando un sistema de archivos no se necesita seguir
montado, puede desmontarse con umount. [22] umount toma un
argumento: o bien el archivo de dispositivo o el
punto de montaje. Por ejemplo, para desmontar los directorios
del ejemplo anterior, se pueden utilizar los comandos

$ umount /dev/hda2
$ umount /usr
$

Lea la pgina de manual para ms informacin sobre
cmo utilizar el comando. Es obligatorio que siempre se
desmonte un disquete montado. No saque nicamente el disquete
de la disquetera! Debido al cacheado de disco, los
datos no se escriben necesariamente hasta que se desmonta
el disquete, as que sacar el disquete de la
disquetera demasiado pronto puede provocar que el contenido se
vuelva errneo. Si nicamente lee del disquete, esto no
es muy usual, pero si escribe, incluso accidentalmente, el
resultado puede ser catastrfico.

Montar y desmontar requieren privilegios de superusuario, esto es,
slo root puede hacerlo. La razn para esto es
que si un usuario puede montar un disquete en
cualquier directorio, entonces es relativamente fcil crear un disquete
con, digamos, un caballo de Troya disfrazado de /bin/sh,
o cualquier otro programa frecuentemente utilizado. De cualquier modo,
se necesita generalmente permitir a los usuarios utilizar los
disquetes, y hay varias maneras de hacerlo:

Dar al usuario la contrasea de root. Esto es
obviamente inseguro, pero es la solucin ms sencilla. Funciona
muy bien si no hay otras necesidades de seguridad,
que es el caso de muchos sistemas personales sin
red.
Utilizar un programa como sudo para permitir a los
usuarios que monten. Esto tambin es inseguro, pero no
proporciona privilegios de superusuario directamente a todo el mundo.
[23]
Hacer que el usuario utilice mtools, un paquete para
manipular sistemas de archivos MS-DOS, sin tener que montarlos.
Esto funciona bien si todo lo que se necesitan
son disquetes MS-DOS, pero es bastante lioso en otros
casos.
Listar los dispositivos flexibles y su punto de montaje
permitido junto a las opciones oportunas en /etc/fstab.

La ltima alternativa puede implementarse aadiendo una lnea como
la siguiente en el archivo /etc/fstab:

/dev/fd0 /floppy msdos user,noauto 0 0

Las columnas corresponden a: archivo de dispositivo a montar,
directorio de montaje, tipo de sistema de archivos, opciones,
frecuencia de copia de seguridad (utilizado por dump), y
el nmero de paso para fsck (especifica el orden
en el que los sistemas de archivos son comprobados
en el arranque; 0 significa que no se comprueba).

La opcin noauto impide que se monte automticamente al
iniciar el sistema (es decir, previene que mount -a
la monte). La opcin user permite a cualquier usuario
montar el sistema de archivos, y, debido a cuestiones
de seguridad, deniega la ejecucin de programas (normales o
con setuid) y la interpretacin de sistemas de archivos
desde el sistema de archivos montado. Despus de eso,
cualquier usuario puede montar un disquete con un sistemas
de archivos msdos con el comando siguiente:

$ mount /floppy
$

El disquete puede (y necesita de ello, por supuesto)
desmontarse con la orden umount correspondiente.

Si desea otorgar acceso para varios tipos de disquetes,
necesita proporcionar distintos puntos de montaje. Las opciones pueden
ser diferentes para cada punto de montaje. Por ejemplo,
para permitir accesos a disquetes MS-DOS o ext2, se
pueden tener las siguientes lneas en /etc/fstab:

/dev/fd0 /dosfloppy msdos user,noauto 0 0
/dev/fd0 /ext2floppy ext2 user,noauto 0 0

Para sistemas de archivos MS-DOS (no slo disquetes), probablemente
quiera restringir el acceso utilizando las opciones del sistema
de archivos uid, gid y umask, descritas en detalle
en la pgina de manual de mount. Si no
es cuidadoso, montar un sistema de archivos MS-DOS proporciona
al menos acceso de lectura a los archivos que
hay en l, lo que no es una buena
idea.


6.8.6. Comprobar la integridad de un sistema de archivos
con fsck

Los sistemas de archivos son criaturas complejas, y como
tales, tienden a ser propensos a los errores. La
correccin y validacin de un sistema de archivos puede
ser comprobada utilizando el comando fsck. Puede ser instruido
para reparar cualquier problema menor que encuentre, y alertar
al usuario si hay errores irreparables. Afortunadamente, el cdigo
implementado en los sistemas de archivos puede estudiarse de
forma muy efectiva, as que escasamente hay problemas, y
normalmente son causados por fallos de alimentacin, hardware defectuoso,
o errores de operacin; por ejemplo, no apagar el
sistema adecuadamente.

La mayora de los sistemas se configuran para ejecutar
fsck automticamente durante el arranque, as que cualquier error
se detecta (y esperemos que corregido) antes que el
sistema se utilice. Utilizar un sistema de archivos corrupto
tiende a empeorar las cosas: si las estructuras de
datos se mezclan, utilizar el sistema de archivos probablemente
las mezclar an ms, resultando en una mayor prdida
de datos. En cualquier caso, fsck puede tardar un
tiempo en ejecutarse en sistemas de archivos grandes, y
puesto que los errores casi nunca suceden si el
sistema se ha apagado adecuadamente, pueden utilizarse un par
de trucos para evitar realizar comprobaciones en esos casos.
El primero es que si existe el archivo /etc/fastboot,
no se realizan comprobaciones. El segundo es que el
sistema de archivos ext2 tiene una marca especial en
su superbloque que indica si el sistema de archivos
se desmont adecuadamente despus del montaje previo. Esto permite
a e2fsck (la versin de fsck para el sistema
de archivos ext2) evitar la comprobacin del sistema de
archivos si la bandera indica que se realiz el
desmontaje (la suposicin es que un desmontaje adecuado indica
que no hay problemas). Que el truco de /etc/fastboot
funcione en su sistema depende de sus guiones (scripts) de
inicio, pero el truco de ext2 funciona cada vez
que utilice e2fsck. Debe ser sobrepasado explcitamente con una
opcin de e2fsck para ser evitado. (Vea la pgina
de manual de e2fsck para los detalles sobre cmo.)


La comprobacin automtica slo funciona para los sistemas de
archivos que se montan automticamente en el arranque. Utilice
fsck de forma manual para comprobar otros sistemas de
archivos, por ejemplo, disquetes.

Si fsck encuentra problemas irreparables, necesita conocimientos profundos de
cmo funciona en general un sistema de archivos, y
en particular el tipo del sistema de archivos corrupto,
o buenas copias de seguridad. Lo ltimo es fcil
(aunque algunas veces tedioso) de arreglar, el precedente puede
solucionarse a travs de un amigo, los grupos de
noticias y listas de correo de Linux, o alguna
otra fuente de soporte, si no sabe cmo hacerlo
usted mismo. Me gustara contarle ms sobre el tema,
pero mi falta de formacin y experiencia en este
asunto me lo impiden. El programa de Theodore Ts'o
debugfs puede ser de ayuda.

fsck debe ser utilizado nicamente en sistemas de archivos
desmontados, nunca en sistemas de archivos montados (a excepcin
del raz en slo-lectura en el arranque). Esto es
as porque accede al disco directamente, y puede por
lo tanto modificar el sistema de archivos sin que
el sistema operativo se percate de ello. Habr problemas,
si el sistema operativo se confunde.


6.8.7. Comprobar errores en el disco mediante badblocks

Puede ser buena idea comprobar los bloques defectuosos peridicamente.
Esto se realiza con el comando badblocks. Saca una
lista de los nmeros de todos los bloques malos
que puede encontrar. Esta lista puede introducirse en fsck
para grabar en el sistema de archivos las estructuras
de datos para que el sistema operativo no intente
utilizar los bloques malos para almacenar datos. El ejemplo
siguiente muestra cmo puede hacerse esto.

$ badblocks /dev/fd0H1440 1440 > bad-blocks
$ fsck -t ext2 -l bad-blocks /dev/fd0H1440
Parallelizing fsck version 0.5a (5-Apr-94)
e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Check reference counts.
Pass 5: Checking group summary information.

/dev/fd0H1440: FILE SYSTEM WAS MODIFIED
/dev/fd0H1440: 11/360 files, 63/1440 blocks
$

Si badblocks informa de que un bloque se est
utilizando, e2fsck intentar mover el bloque a otro lugar.
Si el bloque estaba realmente defectuoso, no tan slo
marginado, el contenido del archivo puede estar corrupto.


6.8.8. Luchar contra la fragmentacin

Cuando un archivo se escribe en el disco, no
puede escribirse siempre en bloques consecutivos. Un archivos que
no est almacenado en bloques consecutivos est fragmentado. Leer
un archivo fragmentado requiere mayor tiempo, puesto que la
cabeza de lectura-escritura del disco debe moverse ms. Es
deseable evitar la fragmentacin, aunque es un problema menor
en un sistema con un buen cach buffer con
lectura progresiva.

El sistema de archivos ext2 intenta mantener la fragmentacin
al mnimo, manteniendo todos los bloques de un archivo
juntos, incluso cuando no pueden almacenarse en sectores consecutivos.
Ext2 efectivamente localiza el bloque libre ms cercano a
los otros bloques del archivo. Por lo tanto para
ext2 hay poca necesidad de preocuparse por la fragmentacin.
Existe un programa para desfragmentar un sistema de archivos
ext2, llamado extraamente defrag [24].

Existen muchos programas de desfragmentacin MS-DOS que mueven los
bloques por todo el sistema de archivos para eliminar
la fragmentacin. Para otros sistemas de archivos, la desfragmentacin
debe hacerse guardando el sistema de archivos, volverlo a
crear, y restaurando los archivos de la copia guardada.
Guardar un sistema de archivos antes de desfragmentarlo es
una buena idea para cualquier sistema de archivos, puesto
que muchas cosas pueden ir mal durante la desfragmentacin.


6.8.9. Otras herramientas para todos los sistemas de archivos

Algunas herramientas adicionales pueden resultar tiles para manejar sistemas
de archivos. df muestra el espacio libre en disco
de uno o ms sistemas de archivos. du muestra
cunto espacio en disco ocupa un directorio y los
archivos que contiene. Estos pueden utilizarse para encontrar desperdiciadores
de espacio en disco. Ambos tienen pginas de manual
que detallan las (muchas) opciones que pueden utilizarse.

sync fuerza que todos los bloques no escritos en
la cach buffer (vea la Seccin 7.6) se escriban
al disco. Es raro hacer esto esto a mano;
el demonio update hace esto automticamente. Puede ser til
en caso de catstrofe, por ejemplo si update o
su proceso ayudante bdflush muere, o si debe apagar
el ordenador ahora y no puede esperar que se
ejecute update. De nuevo, estn las pginas de manual.
El comando man es su mejor amigo en linux.
Su sobrino apropos es tambin muy til cuando no
sabe cul es el nombre del comando que quiere.


6.8.10. Otras herramientas para el sistema de archivos ext2/ext3

Adems del creador (mke2fs) y del comprobador (e2fsck) de
sistemas de archivos accesibles directamente o a travs de
las caretas independientes del tipo del sistema de archivos,
ext2 posee herramientas adicionales que pueden resultar tiles.

tune2fs ajusta parmetros del sistema de archivos. Algunos de
los parmetros ms interesantes son:

Un contador mximo de montados. e2fsck fuerza una comprobacin
cuando el sistema de archivos se ha montado demasiadas
veces, incluso si la bandera de limpiado est activa.
Para un sistema que se utiliza para desarrollo o
pruebas de sistema, puede ser una buena idea reducir
este lmite.
Un tiempo mximo entre comprobaciones. e2fsck puede tambin forzar
un tiempo mximo entre dos comprobaciones, incluso si la
bandera de limpiado est activa, y el sistema de
archivos no se monta frecuentemente. De cualquier forma, esto
puede desactivarse.
Nmero de bloques reservados para root. Ext2 reserva algunos
bloques para root de manera que si el sistema
de archivos se llena, todava ser posible realizar tareas
de administracin sin tener que borrar nada. La cantidad
reservada es por defecto el 5%, lo que en
la mayora de discos no supone un desperdicio. De
cualquier manera, para los disquetes no existe justificacin en
reservar ningn bloque.

Vea la pgina de manual de tune2fs para ms
informacin.

dumpe2fs muestra informacin acerca de un sistema de archivos
ext2, la mayora referente al superbloque. La Figura 6-5
muestra una salida de ejemplo. Alguna informacin en la
salida es tcnica y requiere comprensin acerca de cmo
trabaja el sistema de archivos (vea el apndice XXX
ext2fspaper), pero la mayora es comprensible incluso para aprendices.


Figura 6-5. Salida de ejemplo de dumpe2fs

dumpe2fs 0.5b, 11-Mar-95 for EXT2 FS 0.5, 94/10/23
Filesystem magic number: 0xEF53
Filesystem state: clean
Errors behaviour: Continue
Inode count: 360
Block count: 1440
Reserved block count: 72
Free blocks: 1133
Free inodes: 326
First block: 1
Block size: 1024
Fragment size: 1024
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 360
Last mount time: Tue Aug 8 01:52:52 1995
Last write time: Tue Aug 8 01:53:28 1995
Check interval: 0
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)

Group 0:
Block bitmap at 3, Inode bitmap at 4, Inode
table at 5
1133 free blocks, 326 free indoes, 2 directories
Free blocks: 307-1439
Free inodes: 35-360

debugfs es un debugger para un sistema de archivos.
Permite acceso directo al sistema de archivos y a
las estructuras de datos almacenadas en el disco y
puede utilizarse por tanto para reparar un disco tan
estropeado que fsck no puede repararlo atomticamente. Tambin es
conocido por recuperar archivos eliminados. De cualquier modo, debugfs
requiere mucho que comprenda lo que est haciendo: un
fallo puede destruir todos sus datos.

dump y restore pueden utilizarse para guardar un sistema
de archivos ext2. Hay versiones especficas para ext2 de
las herramientas tradicionales de copias de seguridad UNIX. Vea
el Captulo 12 para ms informacin sobre copias de
seguridad.


6.9. Discos sin sistemas de archivo

No todos los discos o particiones se utilizan como
sistemas de archivos. Una particin de intercambio, por ejemplo,
no tendr un sistema de archivos en ella. Muchos
disquetes se utilizan en modo emulacin de cintas, de
manera que un tar (archivo de cinta) u otro
archivo sea escrito directamente en el disco, sin un
sistema de archivos. Los disco de arranque de Linux
no contienen un sistema de archivos, slo el ncleo
puro y duro.

Evitar un sistema de archivos tiene la ventaja de
hacer utilizable mayor parte del disco, ya que un
sistema de archivos siempre tiene una carga. Tambin hace
al disco ms fcilmente compatible con otros sistemas; por
ejemplo, el formato de archivo tar es el mismo
en todos los sistemas, mientras que los sistemas de
archivos son distintos en la mayora de sistemas. Rpidamente
se habituar a utilizar discos sin sistemas de archivos
si los necesita. Los disquetes de arranque de Linux
tampoco tienen necesariamente un sistema de archivos, aunque pueden
tenerlo.

Una razn para utilizar el disco puro es realizar
copias imagen en ellos. Por ejemplo, si el disco
contiene un sistema de archivos parcialmente corrupto, es buena
idea hacer una copia exacta de l antes de
intentar arreglarlo, porque entonces puede comenzar otra vez si
los arreglos han empeorado las cosas. una forma de
hacer esto es utilizar dd:

$ dd if=/dev/fd0H1440 of=floppy-image
2880+0 records in
2880+0 records out
$ dd if=floppy-image of=/dev/fd0H1440
2880+0 records in
2880+0 records out
$

El primer dd realiza una imagen exacta del disquete
en el archivo floppy-image, el segundo escribe la imagen
en el disco. (El usuario presumiblemente cambiar el disquete
antes del segundo comando. De otra forma la pareja
de comandos es doblemente intil.)


6.10. Situando el espacio en disco

6.10.1. Esquemas de particionamiento

No es fcil particionar un disco de la mejor
manera posible. Peor incluso, no existe una forma universal
correcta de hacerlo; hay demasiados factores involucrados.

La forma tradicional es tener un sistema de archivos
raz (relativamente) pequeo, que contenga /bin, /etc, /dev, /lib,
/tmp, y otros elementos necesarios para mantener al sistema
activo y funcionando. De esta forma, el sistema de
archivos raz (en su propia particin o en su
propio disco) es todo lo que se necesita para
levantar el sistema. La razn es que si el
sistema de archivos raz es lo suficientemente pequeo y
no se utiliza intensamente, es menos probable que se
corrompa cuando el sistema se caiga, y por lo
tanto encontrar ms sencillo solucionar cualquier problema causado por
la cada. Entonces se crean particiones separadas o se
utilizan discos independientes para el rbol de directorios bajo
/usr, los directorios hogar de los usuarios (generalmente bajo
/home), y el espacio de intercambio. Separar los directorios
hogar (con los archivos de los usuarios) en su
propia particin facilita las copias de seguridad, ya que
no es necesario guardar los programas (que residen bajo
/usr). En un entorno de red es posible compartir
/usr entre varias mquina (por ejemplo utilizando NFS), disminuyendo
por tanto el espacio total requerido en algunas decenas
o cientos de megabytes segn nmero de mquinas.

El problema de tener varias particiones es que fracciona
el espacio total de espacio libre en varios trozos
pequeos. Hoy en da, con disco y (afortunadamente) sistemas
operativos ms fiables, mucha gente prefiere tener una nica
particin que contenga todos sus archivos. Por el otro
lado, es menos doloroso guardar (y restaurar) una particin
pequea.

Para un disco duro pequeo (suponiendo que no realice
desarrollo del ncleo), la mejor manera es probablemente tener
una nica particin. Para discos grandes, es seguramente mejor
tener algunas particiones grandes, por si acaso algo va
mal. (Tenga en cuenta que "pequeo" y "grande" se
utilizan aqu en sentido relativo; sus necesidades de espacio
en disco deciden cul es el lmite.)

Si tiene varios discos, puede querer tener el sistema
de archivos raz (incluido /usr) en uno, y los
directorios de usuarios en otro.

Es buena idea estar preparado para experimentar un poco
con diferentes esquemas de particionamiento (siempre, no slo a
primera hora al instalar el sistema). Esto requiere un
poco de trabajo, ya que es necesario que instale
el sistema desde cero varias veces [25], pero es
la nica forma de asegurarse de que se hace
bien.


6.10.2. Requerimientos de espacio

La distribucin Linux que usted instala le dar alguna
indicacin sobre cunto espacio en disco necesita para varias
configuraciones. Los programas instalados independientemente tambin 
harn lo mismo.
Esto le ayudar a planificar el uso del espacio
en disco, pero debe estar preparado par el futuro
y reservar algn espacio extra para cosas que luego
se dar cuenta que necesitaba.

La cantidad que necesita para archivos de usuario depende
de qu quiere que hagan los usuarios. La mayora
de la gente parece necesitar cuanto ms espacio sea
posible para sus archivos, pero la cantidad con la
que ellos vivirn a gusto vara mucho. Algunos slo
realizan procesamientos de texto ligero y pueden sobrevivir con
unos pocos megabytes, mientras que otros realizan procesados de
imagen y necesitan gigabytes.

Por cierto, cuando se comparan tamaos de archivo dados
en kilobytes o megabytes con espacio en disco dado
en megabytes, es importante saber que las dos unidades
pueden ser diferentes. Algunos fabricantes de discos fingen que
un kilobyte son 1000 bytes y un megabyte son
1000 kilobytes, mientras que el resto del mundo que
utiliza ordenadores utiliza 1024 para ambos factores. Por lo
tanto, mi disco duro de 345 MB es en
realidad un disco de 330 MB.

La ubicacin de espacio de intercambio se encuentra explicada en
la Seccin 7.5.


6.10.3. Ejemplos de colocacin de disco duro

Yo sola tener un disco duro de 109 MB.
Ahora uso uno de 330 MB. Explicar cmo y
por qu particion estos discos.

El disco de 109 MB lo particione de varias
formas, a medida que mis necesidades y los sistemas
operativos que utilizaba cambiaban; explicar dos situaciones tpicas. Primero,
sola ejecutar MS-DOS junto con Linux. Para ello, necesitaba
unos 20 MB de disco duro, o lo suficiente
para tener MS-DOS, un compilador de C, un editor,
unas pocas de otras utilidades, el programa en el
que estaba trabando, y suficiente espacio libre para no
sentirme claustrofbico. Para Linux, tena una particin de intercambio
de 10 MB, y el resto, 79 MB, era
una nica particin con todos los archivos que tena
bajo Linux. Experiment con tener independientes las particiones raz,
/usr y /home, pero no haba nunca suficiente espacio
libre en un trozo para hacer nada interesante.

Cuando no necesit ms de MS-DOS, reparticion el disco
de manera que tena 12 MB de particin de
intercambio, y de nuevo tuve el resto en un
nico sistema de archivos.

El disco de 330 MB est particionado en varias
particiones, as:

5 MB sistema de archivos raz
10 MB particin de intercambio
180 MB sistema de archivos /usr
120 MB sistema de archivos /home
15 MB particin improvisada

La particin improvisada es para jugar con cosas que
necesitan su propia particin, como por ejemplo probar distribuciones
de Linux, o comparar la velocidad de los sistemas
de archivos. Cuando no se necesita para nada ms,
se utiliza como espacio de intercambio (me gusta tener
un montn de ventanas abiertas). [26]


6.10.4. Aadir ms espacio en disco para Linux

Aadir ms espacio en disco para Linux es fcil,
al menos despus de que el hardware se ha
instalado correctamente (la instalacin de hardware queda fuera de
los objetivos de este libro). Se formatea si es
necesario, luego se crean las particiones y sistemas de
archivos como se ha descrito ms arriba, y se
aaden las lneas adecuadas en /etc/fstab para que se
monte automticamente.


6.10.5. Consejos para liberar espacio en disco

El mejor consejo para liberar espacio en disco es
evitar instalar programas innecesarios. La mayora de distribuciones Linux
tienen una opcin para instalar nicamente parte de los
paquetes que contienen, y analizando sus necesidades puede darse
cuenta que no necesita la mayora de ellos. Esto
le ayudar a liberar mucho espacio en disco, ya
que muchos programas son grandes. Incluso si necesita un
paquete o programa determinado, puede que no lo necesite
entero. Por ejemplo, alguna documentacin en lnea puede ser
innecesaria, como puede ser algunos de los archivos Elisp
de GNU Emacs, algunas fuentes para X11, o algunas
de las libreras para programar.

