Está en la página 1de 10

Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux

Cómo montar un pen drive en GNU/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.

Particiones y letras de unidad

En los sistemas operativos Windows(R), la configuración preestablecida (también llamada


por defecto) establece que cada partición presente sea identificada o asociada con una letra que
representa una raíz independiente, y colocada en el tope de la jerarquía de directorios. Podemos
mencionar como ejemplos A:, típicamente reservado para las antiguas unidades de disco flexible
(disquette), C: (que en muchos sistemas es donde se encuentran los archivos propios del sistema
operativo), D:, etc. Decimos que están en el tope de la jerarquía porque no hay otros directorios por
encima de estos identificadores, y todos se encuentran al mismo nivel (no se presenta, por ejemplo, un
E: dentro de C:).

Figura 1: Jerarquía típica de los sistemas operativos Microsoft Windows.

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.

¿Qué es una partición en un dispositivo de almacenamiento?

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.

¿Cómo distinguir entre una partición y un disco?

En Windows está el programa para Administración de Discos, dentro de sus Herramientas


Administrativas, que muestra qué particiones corresponden a qué unidad de almacenamiento. En la
siguiente figura, podemos observar que hay dos discos físicos, el primero tiene sólo una partición o
unidad lógica, identificada con C:, y el segundo presenta dos particiones, E: y F:, cuyos nombres de
volumen son “Datos1” y “Datos2”, respectivamente. También se presenta un dispositivo de
almacenamiento extraíble (típicamente un pen drive), identificado con letra de unidad G:, con nombre
“v165w”. Finalmente está la unidad óptica (CD o DVD) en D: sin disco.

Página 2 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux

Figura 2: el administrador de discos mostrando las unidades físicas y lógicas conectadas al


sistema.

En GNU/Linux, tecleando en la consola

cat /proc/partitions

Veremos un listado de dispositivos: aquellos que terminen en un número son unidades


lógicas, y los que no, son las unidades de almacenamiento que las contienen. Por ejemplo, podría ser:

major minor #blocks name

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

¿Qué es montar un sistema de archivos?

Montar un sistema de archivos es hacerlo visible y utilizable por el sistema operativo.


Dicho de otro modo, no es posible el acceso a los archivos de un dispositivo que no está montado.

Si tuviéramos abierto un explorador de archivos, como se muestra en la Figura 1, al


momento de insertar un pen drive en una PC que ejecuta, por ejemplo, Windows XP, veríamos que al
ser reconocido el dispositivo de almacenamiento, automáticamente se agregaría una letra de unidad (o
más, según la cantidad de particiones del dispositivo), y haciendo click en ella podríamos acceder al
contenido del pen drive. En la Figura 3 se presenta este caso, donde fue insertado un dispositivo
extraíble y se montó en la letra de unidad G:.

Figura 3: Jerarquía después de montar un pen drive.

En este caso, decimos que Windows monta automáticamente el sistema de archivos


presente en el pen drive bajo el nombre de una letra de unidad, para que accedamos a su raíz a partir de
ese identificador. Recién a partir de éste momento podremos definir rutas válidas para los archivos que
se encuentran en el pen drive.

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

Figura 4: montar unidad lógica en una carpeta en Windows XP.

Conectar y desconectar un pen drive a una máquina virtual

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:

Figura 5: conectando el pen drive a la máquina virtual

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.

Para retirar el pen drive de la MV y recuperar el acceso desde Windows, el procedimiento a


seguir es similar, excepto que hay que hacer click en Disconnect, como se muestra en la siguiente
figura:

Figura 6: desconectando el pen drive de la máquina virtual

Montar sistemas de archivos en GNU/Linux

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 Hewlett­Packard

Página 6 de 10
Sistemas Operativos UTN - FRT – Cómo montar un pen drive en GNU/Linux

Para montar se usa el comando mount, y necesita 2 parámetros: ruta al dispositivo, y


ruta al punto de montaje, o sea, qué se desea montar y dónde. Para averiguar el nombre del
dispositivo, podemos usar:

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.

major minor #blocks name

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

Opcionalmente, para averiguar el punto de montaje si no está claro con el procedimiento


anterior, podemos usar el comando dmesg, que muestra mensajes del kernel, y entre ellos,
encontraremos aquellos generados luego de la conexión del dispositivo, por ejemplo:

soutn­deb:~ # dmesg

...

[ 470.114455] usb 1­1: new high­speed USB device number 2 using ehci_hcd
[ 470.425652] usb 1­1: New USB device found, idVendor=03f0, idProduct=5307
[ 470.425663] usb 1­1: New USB device strings: Mfr=1, Product=2,
SerialNumber=3
[ 470.425668] usb 1­1: Product: v165w
[ 470.425672] usb 1­1: Manufacturer: HP
[ 470.425677] usb 1­1: SerialNumber: AA00000000004417
[ 470.590772] Initializing USB Mass Storage driver...
[ 470.590881] scsi3 : usb­storage 1­1:1.0
[ 470.591001] usbcore: registered new interface driver usb­storage
[ 470.591003] USB Mass Storage support registered.
[ 471.820370] scsi 3:0:0:0: Direct­Access 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 512­byte 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

[ 471.835289] sdb: sdb1


[ 471.843512] sd 3:0:0:0: [sdb] No Caching mode page present
[ 471.843517] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[ 471.843520] sd 3:0:0:0: [sdb] Attached SCSI removable disk

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.

El comando entonces, puede ser:

mount /dev/sdb1 /mnt

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.

soutn­deb:~ # 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/by­uuid/73110170­4544­4cd1­95cf­711236243c4b 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

/dev/sdb1 on /mnt type fuseblk


(rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)

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.

Este procedimiento es montar un dispositivo en un directorio, y ahora se puede acceder a


sus archivos como a cualquier otro del árbol del sistema de archivos de Linux.
Cabe destacar que el contenido del dispositivo de almacenamiento no se copia en la
carpeta, sino que se está viendo la raíz de su sistema de archivos a partir del directorio o carpeta
elegido. Una vez que el pen drive sea desmontado se perderá este acceso hasta que vuelva a ser
montado.

Desmontar el sistema de archivos montado

Desmontar es el equivalente a “extraer el dispositivo con seguridad” de Windows. Esta es


una práctica recomendada antes de desconectar físicamente el dispositivo del sistema. De no hacerse,
pueden quedar escrituras pendientes (datos de una operación de copia de archivo que no terminó, por
ejemplo) que resultan en pérdida de datos y posibles daños al sistema de archivos.
Para esto en GNU/Linux se usa el comando umount, con un parámetro que es una ruta, y
que puede ser la ruta al dispositivo o la ruta al punto de montaje. Por ejemplo, los siguientes dos
comandos son equivalentes si lo que se busca es desmontar el pen drive montado como ejemplo:

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:

soutn­deb:/mnt # fuser ­vm /mnt


USER PID ACCESS COMMAND
/mnt: root kernel mount /mnt
root 2651 ..c.. bash

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:

soutn­deb:/mnt # lsof /mnt


COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2663 root cwd DIR 8,1 4096 5998 /mnt
lsof 3424 root cwd DIR 8,1 4096 5998 /mnt
lsof 3425 root cwd DIR 8,1 4096 5998 /mnt

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.

1 Esto se puede comprobar ejecutando lsof ­R /mnt/ & ps ­o "user,pid,ppid,spid,cmd" ­m $!

Página 10 de 10

También podría gustarte