Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutorial Montar Pen Drive Linux
Tutorial Montar Pen Drive Linux
Este tutorial está creado para los alumnos de la Cátedra de Sistemas Operativos de la Facultad
Regional Tucumán de la Universidad Tecnológica Nacional, y cubre el tema de montar un pen drive o
cualquier otro dispositivo de almacenamiento extraíble (como podría ser un disco rígido o lectora de
DVD portátil) en un sistema GNU/Linux, y en particular en el entorno de los laboratorios donde se
desarrolla la práctica de la materia.
Hace varios años se asignó a estos identificadores el nombre de “letra de unidad”, porque
estaban asociadas a una unidad física de almacenamiento. Actualmente también representan
Página 1 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
particiones (unidades lógicas). Esto a veces lleva a confusiones, porque un sistema puede presentar
letras de unidad C:, D:, y E:, y sólo con esta información no se puede saber si tiene 3 discos o un disco
con 3 particiones, por ejemplo.
Se puede encontrar más de información sobre las letras de unidad en
http://es.wikipedia.org/wiki/Letra_de_unidad y en inglés, en mejor detalle
http://en.wikipedia.org/wiki/Drive_letter_assignment.
Suponga que Ud. tiene un disco rígido de 1 TB (un TeraByte, hoy considerado un disco
relativamente grande) en blanco y lo coloca en una PC para que sea su unidad de almacenamiento
principal, y que no hay otros discos en ella. Ahora instala el sistema operativo, y ya puede comenzar a
utilizar la PC.
En 1 año, el sistema operativo muestra un desempeño deteriorado, y Ud. resuelve volver a
instalar desde cero. El disco está utilizado al 80% de su capacidad con datos importantes para Ud.
¿Qué debe hacer? Conseguir una unidad de almacenamiento con tamaño suficiente, mover los datos
hacia ella, luego formatear el disco principal, reinstalar todo y volver a mover los datos hacia él.
En otro escenario, quiere instalar un segundo sistema operativo, para poder iniciar en el
arranque en cualquiera de los dos. ¿Qué debe hacer? Instalar una segunda unidad de disco.
Estas dos situaciones previas podrían haberse evitado usando particiones. Particionar es
dividir el espacio de almacenamiento (de un disco o pen drive, por ejemplo) en unidades lógicas
(también conocidas como volúmenes lógicos) de menor tamaño, que actúan como si fueran unidades
independientes.
Contando con esta herramienta, al instalar el disco en la PC podría haber particionado en
por lo menos 2 unidades lógicas, una para el sistema operativo y otra para los datos. Al momento de
reinstalar el sistema operativo, podrá formatear esa unidad lógica con la tranquilidad de dejar
inalterada la que contiene los datos importantes, evitando el trabajo de tener que moverlos.
En el segundo escenario, podría definir varias particiones, instalar varios sistemas
operativos, uno en cada una, y dejar reservada una o más particiones adicionales para datos. Las
particiones también se pueden redimensionar.
Cabe aclarar que, salvo excepciones, para poder ser usada una partición debe tener un
sistema de archivos, tal como FAT, NTFS o ext4, lo cual se obtiene mediante la operación de dar
formato o formateo.
Página 2 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
cat /proc/partitions
8 0 488386584 sda
8 1 104391 sda1
8 2 102400 sda2
8 3 19422585 sda3
8 4 1 sda4
8 5 19530752 sda5
8 6 4881408 sda6
8 7 400377856 sda7
8 8 24417280 sda8
8 9 19529728 sda9
11 0 1048575 sr0
8 16 15975360 sdb
8 17 15974336 sdb1
Acá se observa que hay 3 dispositivos: sda, que contiene 9 particiones; sdb que contiene
sólo una; y sr0 que es la unidad de DVD.
Página 3 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
Cabe destacar que, a partir de Windows XP, las unidades de disco y particiones pueden ser
montadas en carpetas fuera del tope de la jerarquía tal como es en GNU/Linux, mientras que las
versiones anteriores no permiten esta opción. La siguiente figura ejemplifica este caso, mostrando que
desde el Administrador de discos de Windows XP es posible montar una unidad lógica en una carpeta
NTFS vacía.
Página 4 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
Vamos a suponer que tenemos un entorno como el de los laboratorios de práctica, donde
hay una PC con Microsoft Windows y está ejecutando el software de virtualización Player de VMware,
con una máquina virtual que a su vez ejecuta un sistema GNU/Linux. Para acceder al pen drive desde
Linux, primero será necesario, desde luego, que esté conectado a la máquina física, y que sea detectado
por Windows. Podemos verificar esto accediendo a sus archivos como de costumbre.
Luego, es preciso ir al menú Devices de VMware Player, y buscar el pen drive por su
nombre en el listado que se despliega, y a continuación hacer click en Connect, como se muestra en la
figura siguiente:
Hubo casos en los cuales el pen drive no se conectaba de inmediato, con y sin mensaje de
error por parte de VMware Player. En estos casos, es recomendable desconectar el pen drive, esperar
unos 20 segundos, luego conectar nuevamente, esperar 1 ó 2 minutos y revisar si se conecta a la MV.
Página 5 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
Una vez conectado el dispositivo a la MV, se pierde posibilidad de acceso al mismo desde
Windows, para evitar problemas de consistencia en su contenido.
En los sistemas GNU/Linux no existen las letras de unidades ni la restricción del montaje
en la jerarquía superior: hay una sóla raíz, y todos los sistemas de archivos están montados en ella.
Esto significa que, en Linux, los sistemas de archivos se montan en directorios (también
llamados carpetas). Puede ser en cualquier directorio. En Windows, para entrar al pen drive podríamos
buscar E: por ejemplo. En Linux, deberíamos buscar el directorio donde está montado.
Vamos a iniciar sesión como usuario root (pass root) en el sistema GNU/Linux (en los
laboratorios sería en la máquina virtual), porque montar sistemas de archivos es una acción
privilegiada. Cabe recordar que se debe prestar especial atención a los espacios en las órdenes a
ingresar en la consola, puesto que es por ellos que el intérprete puede discernir entre lo que es el
comando, sus parámetros y sus opciones.
Una vez hecho esto, para ver los dispositivos USB detectados usamos el comando
lsusb
El resultado será un listado de hubs USB que son internos de la PC o MV, y también el pen
drive, si está conectado debidamente, como en el ejemplo siguente se ve en la última línea:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0e0f:0008 VMware, Inc.
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 002: ID 03f0:5307 HewlettPackard
Página 6 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
cat /proc/partitions
proc (el nombre está en minúsculas a propósito) es un sistema de archivos virtual que el
kernel pone a disposición del usuario tanto para brindar información como para realizar
configuraciones en el funcionamiento del SO en marcha, y que está montado en la ruta /proc.
El archivo partitions (dentro de /proc) refleja información de todas las tablas de
particiones de los dispositivos de almacenamiento detectados por el kernel. Ahí se presentará sda, con
sus 3 particiones, que es el HDD de la MV, y debería haber un sdb, con 0 o más particiones, que sería
el pen drive. Con esto ya sabemos el nombre del dispositivo a montar, (ej. sdb si no hay particiones, o
sdb1 si las hay, para montar la primera). Y la ruta al dispositivo comienza siempre en el directorio
/dev. A continuación, un resultado posible de ejecutar el comando descrito.
8 0 4194304 sda
8 1 3968000 sda1
8 2 1 sda2
8 5 224256 sda5
11 0 433316 sr0
8 16 15975360 sdb
8 17 15974336 sdb1
soutndeb:~ # dmesg
...
[ 470.114455] usb 11: new highspeed USB device number 2 using ehci_hcd
[ 470.425652] usb 11: New USB device found, idVendor=03f0, idProduct=5307
[ 470.425663] usb 11: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[ 470.425668] usb 11: Product: v165w
[ 470.425672] usb 11: Manufacturer: HP
[ 470.425677] usb 11: SerialNumber: AA00000000004417
[ 470.590772] Initializing USB Mass Storage driver...
[ 470.590881] scsi3 : usbstorage 11:1.0
[ 470.591001] usbcore: registered new interface driver usbstorage
[ 470.591003] USB Mass Storage support registered.
[ 471.820370] scsi 3:0:0:0: DirectAccess hp v165w 1100
PQ: 0 ANSI: 4
[ 471.822057] sd 3:0:0:0: Attached scsi generic sg2 type 0
[ 471.823481] sd 3:0:0:0: [sdb] 31950720 512byte logical blocks: (16.3
GB/15.2 GiB)
[ 471.826776] sd 3:0:0:0: [sdb] Write Protect is off
[ 471.826786] sd 3:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 471.827977] sd 3:0:0:0: [sdb] No Caching mode page present
[ 471.827979] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[ 471.834118] sd 3:0:0:0: [sdb] No Caching mode page present
[ 471.834146] sd 3:0:0:0: [sdb] Assuming drive cache: write through
Página 7 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
Entre la abundante información sobre el pen drive recientemente conectado, las últimas
líneas indican [sdb] lo cual ya nos indica el nombre del dispositivo. Sólo resta elegir la partición si la
hubiera. En la cuarta línea desde abajo, que está resaltada, muestra que contiene una partición, sdb1.
Ahora que conocemos el primer parámetro para mount, que es la ruta al dispositivo, en
este caso /dev/sdb1, resta elegir el punto de montaje. Típicamente se usa /mnt para realizar montajes
eventuales o de ocasión. En los montajes frecuentes se suele crear un directorio para el propósito
particular, con algún nombre más significativo, en la carpeta /media.
El directorio elegido para punto de montaje puede no estar vacío. En este caso, luego de
montar el dispositivo se perderá acceso a todo archivo y directorio contenido en el punto de montaje,
debido a que será reemplazado por el sistema de archivos del pen drive. Sin embargo, el acceso será
restablecido luego de desmontar el dispositivo. En otras palabras, montar un sistema de archivos en un
directorio no vacío impide el uso de los archivos y directorios preexistentes, pero no los elimina, nada
más quedan ocultos mientras el nuevo sistema de archivos esté montado. Es como si el sistema de
archivos viejo o preexistente fuera “tapado” por el nuevo.
Los sistemas de archivos NTFS pueden presentar una advertencia de que se montaron en
modo de sólo lectura. Esto se debe a que el driver de NTFS en Linux que se encuentra instalado es una
versión incompleta (no está implementada la escritura), y sólo debe ser tomado en cuenta si hay
intenciones de realizar escrituras en él, en cuyo caso habrá que instalar otro tipo de driver. Esto queda
fuera del alcance del presente tutorial.
Para verificar el éxito del montaje, basta con no recibir mensajes de error en la consola.
Adicionalmente, se puede ejecutar mount sin parámetros, y nos mostrará la lista de todos los sistemas
de archivos montados, entre los que encontraremos /dev, /proc, el root (/), y nuestro dispositivo al
último normalmente, en /mnt, con opciones de montaje (ej.: rw, noexec, etc.).
A continuación se muestra la salida de ejecutar el comando mount, y se resalta la línea
correspondiente al pen drive.
soutndeb:~ # mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=30517,mode=755)
devpts on /dev/pts type devpts
(rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=25452k,mode=755)
/dev/disk/byuuid/7311017045444cd195cf711236243c4b on / type ext4
(rw,relatime,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=50900k)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
Página 8 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
Ahora si hacemos:
cd /mnt
dir
Deberíamos estar viendo los archivos del pen drive. Queda como ejercicio para el lector el
listado del contenido del pen drive usando una ruta absoluta.
umount /dev/sdb1
umount /mnt
Puede ser que nos presente un error que indique que el dispositivo está siendo usado. Esto
se debe a que hay algún proceso que está ocupando el dispositivo y el sistema operativo nos advierte
para evitar la situación de pérdida descrita anteriormente.
De ser necesario saber qué proceso está ocupando el sistema de archivos montado, se
puede encontrar con el comando fuser, que se encarga de listar los procesos que tienen abierto un
determinado archivo o directorio. A continuación un ejemplo típico:
Se presenta un listado de los procesos que están utilizando archivos dentro de /mnt, y nos
muestra que es un punto de montaje (ACCESS = mount), y que el proceso bash (PID 2651) lo usa
como directorio de trabajo (ACCESS = c). Puede obtener más información en la página de manual de
fuser.
Página 9 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux
Otra alternativa para relacionar archivos abiertos con procesos es lsof (list open files). El
listado es extenso y conviene usar como parámetro el punto de montaje, para que presente por pantalla
sólo aquellas líneas de lsof relacionadas con éste, lo cual nos mostrará, entre otras cosas, nombre y PID
(identificador de proceso) de todo proceso que esté usando un archivo o carpeta dentro del dispositivo
y que posiblemente sea lo que está impidiendo que se desmonte. Veamos el siguiente ejemplo:
La salida del comando nos muestra que hay 3 procesos que usan /mnt. Pero los 2 últimos
son el mismo comando lsof ejecutado recientemente (que figura 2 veces porque posee 2 hilos 1), que
al terminar de presentar el listado en pantalla se cierra y por lo tanto no sería lo que impide el
desmonte. Queda el proceso bash (que es nuestro intérprete de comandos), para el cual el campo FD
nos indica el valor cwd (current working directory), haciendo notar que /mnt es el directorio actual de
trabajo de bash.
El sólo hecho de que algún intérprete de comandos esté actualmente en una carpeta dentro
del pen drive (que es nuestro caso actual) es motivo suficiente para que no se pueda desmontar.
Entonces la solución es usar el comando cd para salir totalmente fuera del árbol de directorios del
dispositivo, por ejemplo
cd /
Luego podemos verificar nuevamente con lsof o fuser, y en caso de que no arroje
coincidencias, podremos repetir el comando umount usado anteriormente para desmontar el
dispositivo.
Página 10 de 10