SISTEMAS DE FICHEROS |
4.8 Gestionando Sistemas de Ficheros
Otra tarea del administrador de sistemas es el cuidado de los sistemas de ficheros. Mucho de este trabajo se basa en
comprobaciones periódicas del sistema de ficheros en busca de ficheros dañados o corrompidos;
muchos sistemas comprueban automáticamente los sistemas de ficheros en tiempo de arranque.
El sistema de ficheros que ve cualquier usuario de Unix constituye un árbol, cuyo nodo raíz se representa por el
carácter "/". En este sistema de ficheros puede haber ficheros y directorios situados físicamente en distintos
dispositivos, pero el usuario no necesita preocuparse de esta localización física cuando accede a los ficheros.
El sistema de ficheros global que ve el usuario puede estar a su vez constituido por varios sistemas de ficheros
procedentes de dispositivos concretos. También es necesario indicar que los discos duros suelen dividirse en particiones
(o secciones lógicamente independientes) que se tratarán como dispositivos en el sistema.
4.8.1 Tareas de Gestión del sistema de ficheros
El usuario de un sistema Unix usa de forma transparente ficheros/directorios situados en dispositivos locales y remotos
según se mueve por el árbol del sistema de ficheros. Así, cuando se sitúa en el directorio /sbin está viendo ficheros pertenecientes
al sistema de ficheros raíz, normalmente situados en un partición de disco duro, donde está instalado el sistema operativo.
Cuando en otro momento el usuario se sitúa en su directorio principal (/home/login), probablemente estará viendo ficheros
situados en dispostivos locales (conectados directamente a nuestro ordenador) y en otros, los ficheros accesibles estarán físicamente
en algún dispositivo conectado a algún otro ordenador en red con el nuestro. Así pues, el administrador deberá encargarse
de que tanto los ficheros locales como los remotos estén disponibles para su uso en el sistema.
El administrador será el encargado de añadir nuevos dispositivos de almacenamiento y quitarlos cuando se requiera, y repartir
el uso del espacio de disco de forma que el funcionamiento del sistema sea lo más eficiente y seguro posible.
Otra labor del administrador del sistema es planificar los respaldos de distintas partes del sistema de ficheros con una
frecuencia adecuada a la forma de trabajo con el ordenador que se administra.
Finalmente, el administrador tendrá que asegurarse de que los sistemas de ficheros se mantienen coherentes en todo momento.
4.8.2 Organización de los sistemas de ficheros
En la transparecia vemos un sistema de ficheros Unix, representando mediante un árbol con la raiz a la izquierda y las
hojas a la derecha.
Las distintas cajas representadas en el árbol representan a su vez sistemas de ficheros situados en distitos
dispositivos o particiones de disco. Concretamente, tenemos ficheros residentes en tres discos diferentes (con nombres
a, b y c en la parte inferior de la figura). A su vez, en el disco a se han definido dos particiones diferentes. Cada una
de estas particiones alberga un sistema de ficheros que se ha hecho visible en un directorio determinado del árbol global
de ficheros. Esas dos particiones son /dev/hda1 y /dev/hda2 y cada una contiene un sistema de ficheros. La primera de estas
particiones constituirá el sistema de ficheros raíz de nuestro sistema de ficheros global, y contendrá los ficheros y directorios
del sistema operativo. La segunda partición se hace visible en el sistema de ficheros global, bajo el directorio /var
.
Si miráramos las particiones de los otros discos veríamos que la partición del disco b contiene un conjunto
de directorios de usuarios, y la del disco c contiene información relativa a un departamento concreto (en este caso de química).
A continuación veremos en detalle los comandos que utilizaría el administrador del sistema para hacer visibles
los sistemas de ficheros de una partición en el sistema de ficheros global.
4.8.3 Montando sistemas de ficheros
Para empezar, algunos conceptos acerca de sistemas de ficheros. Antes de que un sistema de ficheros sea accesible al
sistema, debe ser montado en algún directorio. Por ejemplo, si se tiene un sistema de ficheros en un disquete,
se debe montar bajo algún directorio, digamos /mnt, para poder acceder a los ficheros que contiene
(véase la sección 4.6.2). Tras montar el sistema de ficheros, todos los ficheros en dicho sistema aparecen en ese
directorio. Tras desmontar el sistema de ficheros, el directorio (en este caso, /mnt) estará vacío.
Lo mismo es válido para los sistemas de ficheros del disco duro. El sistema monta automáticamente los sistemas de ficheros
del disco duro en tiempo de arranque. El así llamado "sistema de ficheros raíz" es montado en el directorio /. Si se
tiene un sistema de ficheros separado para /usr, por ejemplo, se monta en /usr.
Si sólo se tiene un sistema de ficheros raíz, todos los ficheros (incluyendo los de /usr) existen en ese sistema de
ficheros.
El comando mount se utiliza para montar un sistema de ficheros. Llamando al comando mount sin parámetros,
podremos ver en cualquier momento los distintos sistemas de ficheros montados en el sistema. Un ejemplo del uso
del comando mount sin parámentros:
/dev/hda2 on / type ext2 (rw) /dev/hda3 on /usr type ext2 (rw) /dev/hda4 on none type swap /proc on /proc type proc |
mount -a |
# dispositivo directorio tipo opciones fre-bu or-fsck /dev/hda2 / ext2 defaults 0 1 /dev/hda3 /usr ext2 defaults 0 2 /dev/hda4 none swap sw 0 3 /proc /proc proc none 0 4 |
Sistema de ficheros | Nombre de tipo | Comentarios |
Third Extended Filesystem | ext3 | Ofrece Journaling |
Second Extended Filesystem | ext2 | Sistema de ficheros más común en Linux |
Extended Filesystem | ext | Reemplazado por ext2 |
Minix Filesystem | Minix | original,no utilizado. |
Network Filesystem | nfs | Sistema de ficheros en Red |
Swap Filesystem | swap | Particiones de intercambio |
Xia Filesystem | xia | Como ext2, pero raras veces utilizado. |
UMSDOS Filesystem | umsdos | Para instalar Linux en una partición MS-DOS. |
MS-DOS Filesystem | msdos | Utilizado para acceder a ficheros MS-DOS. |
proc Filesystem | proc | Suministra información de proceso para ps, etc. |
ISO 9660 Filesystem | iso9660 | Formato utilizado por muchos CD-ROMs. |
Xenix Filesystem | xenix | Sistema de ficheros de Xenix. |
System V Filesystem | sysv | Variantes del System V para el x86 |
Coherent Filesystem | coherent | Acceso a ficheros de Coherent. |
HPFS Filesystem | hpfs | Acceso en lectura a particiones HPFS (DoubleSpace). |
/bin/mount /dev/cdrom /cdrom -t iso9660 -o ro |
/bin/mount /cdrom |
# mount -t ext2 /dev/hda3 /usr |
# mkdir /alumnos |
# mount -t ext2 /dev/hda2 /alumnos |
# umount /alumnos |
4.8.4 Accediendo a Disquetes y CD's
Hasta ahora hemos visto ejemplos de ficheros almacenados en particiones de disco duro. Sin embargo, en Unix podremos
utilizar de la misma manera ficheros almacenados en disquetes o en CD-ROM.
En el caso de ficheros almacenados en un disquete, tenemos muchas formas de trabajar con ellos desde un sistema Unix.
Aquí se incluyen algunas de estas posibilidades:
1. Podemos crear un sistema de ficheros local de tipo ext2 como los que tenemos en cualquier partición del disco duro,
hacerlos visibles en algún punto del árbol de ficheros y tratarlos exactamente igual que si procedieran del disco duro.
2. Podemos crear un sistema de ficheros compatible con DOS (tipo msdos), y una vez montado, manipularlo como en el caso
anterior con comandos normales de Unix.
3. Podemos tratar los ficheros del diskette como los trataríamos en sistemas DOS, mediante unas utilidades especiales
(mtools): mdir, mcopy, ... Estas utilidades, además de tener el mismo nombre que en DOS, precedido con una "m",
utilizan la misma notación para hacer referencia al diskette:
#mcopy fichero a: |
/dev/fd0 /floppy msdos rw,user,noauto 0 0 |
# mount /floppy # cp fichero /floppy # ls /floppy |
# mke2fs /dev/fd0 1440 |
# mount -t ext2 /dev/fd0 /mnt |
# umount /dev/fd0 |
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0 |
# mount /cdrom |
# ls /cdrom # cp /cdrom/fichero copia |
4.8.5 Comprobando sistemas de ficheros
Normalmente es una buena idea el comprobar de vez en cuando los sistemas de ficheros en busca de ficheros dañados o
corrompidos. Algunos sistemas comprueban automáticamente sus sistemas de ficheros en tiempo de arranque
(con los comandos apropiados en /etc/rc).
El comando utilizado para comprobar un sistema de ficheros depende del tipo de sistema de ficheros en cuestión.
Para sistemas de ficheros ext2 (el tipo más utilizado normalmente), el comando es fsck. Por ejemplo, el comando
# fsck -av /dev/hda2 |
# umount /dev/hda2 |