El misterio de los puntos de montaje

ArticleCategory:

UNIXBasics

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Guido Socher

en to es Roberto Uris

AboutTheAuthor:[A small biography about the author]

A Guido le gusta Linux debido a la comuindad que existe alrededor de este sistema operativo. Es un proyecto enorme en la cual diferentes personas alrededor del mundo estan trabajando, todos con un mismo objetivo: Mejorarlo cada dia.
Desafortunadamente Linux se ha vuelto tan grande que tambi�n atrae a los chicos malos que solamente quieren hacer dinero y no dar nada a cambio. Cuidese de estas personas! Suelen dar la imagen de ser empresas "pro-linux" pero en realidad solamente son oportunistas.

Abstract:

Este articulo explica el concepto the puntos the montaje, pero tambien espero que proporcione informaci�n interesante para lectores no muy novatos.

ArticleIllustration:

mount

ArticleBody:

Introducci�n

Iniciar� explicando el concpeto del montaje the sistemas de archivos y luego tocar� algunos temas m�s avanzados. Si Ud. cree que ya es un experto en Linux, puede saltarse las primeras secciones.

Como funciona

Bajo windows exsite,al a�adir un disco duro nuevo siempre se hace un l�o. Lo que antes era D, de repente es E: y tanto los usuarios como los programas instalados se confunden.

En Unix no existe este problema porque todos los discos f�sicos se insertan en el arbol del directori�. Esto se puede ver cuando se teclea "mount" � "df":
# df
Filesystem 1K-blocks    Used Available Use% Mounted on
/dev/hda1    9070728 4701180   3908768  55% /
/dev/hda3   24950428  683412  22999584   3% /home
none          257236       0    257236   0% /dev/shm

# mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda3 on /home type ext3 (rw)
Aqu� tenemos dos particiones, uno que contiene todo menos /home. Este es la partici�n raiz "/", y se encuentra conectado fisicamente a hda1. hda1 es la primera partici�n (1) en el disco duro ide (hda). La tercera partici�n (hda3) en el mismo disco esta montado en /home. Por ende, si Ud. accesa /home, entonces esta accesando los archivos en hda3. De esta forma no tendria que preocuparse si esto es ahora D: � E: � ??? por que siempra ser� un arbol de directori�s y esto siempre permanecer� igual.

El problema "file-system busy"

Linux realiza operaciones de lectura y escritura en b�fer. Esto se puede evidenciar si Ud. tiene conectado algun disco por medio de usb version 1.1 y accesa alg�n archivo grande en ese dispositivo. La primera vez que accesa ese archivo es muy lento pero la segunda vez que accesa ese mismo archivo se hace a una muy alta velocidad, tanto asi que la luz en el dispositivo usb nisiquiera se prende.

Debido a esta caracteristica es necesario desmontar el disco antes de quitarlo f�sicamente. Para discos duros internos esto nunca es un problema pero si lo es para cdroms y dispositivos USB.

Si por ejemplo Ud. monta un usb-stick baj� /mnt/usb y tecl�a "cd /mnt/usb", entonces bash esta usando ese sistema de archivos. Si Ud. trata de desmontarlo desde otra terminal obtendr� un error "file system busy" (sistema de archivos ocupado) y el desmontaje fallar�. Es suficiente con salirse del directori� /mnt/usb con "cd" y entonces s� podr� desmontar el dispositivo. A veces el problema puede ser que Ud. se olvid� quien esta usando el dispositivo y tiene tantas aplicaciones abiertas que es dif�cil saber que es lo que esta causando el problema.

Le puede preguntar a su computadora!
# fuser -m -u /mnt/usb
/mnt/usb:   1347c(root)  1348c(guido)  1349c(guido)  
El resultado de fuser es una lista de procesos que todav�a estan utilizando el sistema de archivos en questi�n. Ahora puede revisar con "ps auxw" c�al es el proceso � simplemente lo puede detener con un "kill". Ahora s�, umount puede funcionar.

�Y windows lo puede hacer tambi�n?

�Por qu� no simplemente sacar el usb-stick? Bueno,computadoras de anta�o con dos/win3.1 pod�an ser apagadas con simplemente persionar el b�ton. No se necesitaba hacer un "shutdown". Uno de mis amigos se quej� de que con Linux ten�a que hacer un "shutdown" antes de apagar la maquina. Pero luego win95 apareci� y se acabar�n esas quejas.

Linux lo puede hacer tambi�n.

Tambi�n existen soluciones en Linux para simplemente poder remover el disco(por ejemplo, un disco usb). Linux Mandrake contiene una funci�n llamada supermount que d� los mismos resultads(y problemas) que windows. Pero no lo recomiendo por que puede causar inestabilidad y p�rdida de archivos.

Es mejor utilizar las mtools (http://mtools.linux.lu/). mtools es un conjunto de programas que tienen acceso a b�sicamente todos los dispositivos removibles con un sistema de archivos FAT sin la necesidad de montarlos.

El truco es el siguiente:
  1. Edit /etc/mtools.conf and add a line that says
    drive u: file="/dev/sda1" # o sda4; algunos usb-stick tienen particiones
                              # 4 es creado como default de fabrica.
    


  2. Ahora no es necesario montar /dev/sda1. Simplemente tecel�e
    mdir u:
    para ver el contenido del usb-stick.

    mcopy * u:
    para copiar todos los archivos en el directori� act�al hacia el usb-stick.

    mcopy u:\* .
    para copiar todos los archivos del usb-stick hacia el directori� act�al(percates� del \ en frente del *).

F�cil de utilizar.

Permitir que cualquiera monte un sistema de archvos

Normalmente necesitar� ser root para montar sistemas de archivos. Para dispositivos como cdroms o usb-stick tal vez quiera darle permiso a cualquier usuario para que los monte. Todo lo que necesita hacer en este caso, es a�adir una l�nea como la siguiente en /etc/fstab:
# dev     mount point    fs type   flags
/dev/sda1  /mnt/usb      auto      noauto,user 0 0
Esta l�nea significa que sda1 (la primera partici�n en el primer disco scsi, discos usb se map�an a discos scsi) no seran montados automat�camente (noauto) y pueden ser montados y desmontados por cualquier usuario(user). El campo fs-type tambi�n se pone en auto para que al montar un usb-stick formateado con vfat o ext2 el sistema automaticamente detect� el archivo de sistemas.

Laptops y nfs

El sistema de archivos para red, NFS(Network File System), es muy �til si necesita tener un respaldo centralizado de todos los directori�s para varios usuarios. Todo lo que necesita hacer es montar los directori�s /home desde un servidor central y todos los usuarios tendran sus directori� /home disponibles en todas las computadoras en la red a�nado a las mismas preferencias y datos en cualquier computadora que utilicen. Es muy bueno.

�Pero como lidiamos con usuarios mobiles con laptops?

Una vez que el usuario se desconecte de la red, el directori� dejar� de existir. Esto se puede resolver copiando todos los datos (con rsync), pero esto puede causar inconsistencias si Ud. no es muy disciplinado, y es que en realidadmuchas veces no necesita el directori� /home completo. Cre� que una buena soluci�n ser�a tener un segundo directori� /home con solamente los datos que necesito cuando voy de viaje.

Cuando montamos un sistema de archivos (cualquier sistema de archivos/disco, incluso nfs) sobre un directori� no-vac�o, el nuevo sistema de archivos monatado reemplaza al directori� local, permitiendonos as� ver el nuevo sistema de archivos que fue montado.

La soluci�n a esto es la siguiente: Crear un punto de montaje para el directori� home(/home) y automontar all� los diferentes directorios de home cuando la computadora no esta conectada a la red. Sin embargo,para los usuarios que utilizan sus laptop, antes de montar cualquier sistema de archivos, deben crear un softlink hac�a un directori� /home que no este en red:
/home/guido -> ../home_nonet/guido
Esto significa que cuando el usuario guido se conect� a la red podr� ver su directori� /home normal. Pero cuando �l no este conectado a la red, entonces ver� a /home_nonet/guido como su directori� home (/home/guido).

Una soluci�n bastante buena.

Conclusi�n

Una de las metas de Unix es crear una capa de abstracci�n para el hardware. El montar/desmontar sistemas de archivos/discos fu� una de las formas de cumplir con su meta. Este es una idea bastante avanzada y moderna aunque Unix es mucho mas viejo que otros sistemas operativos modernos.