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.