Memoria
con acceso USB: particiones, sistemas de archivos y etiquetas 140410 |
Parámetros
por defecto Cuando
adquirimos memorias stick con acceso USB, comunmente llamadas memoria
USB o simplemente USB, tiene varios parámetros determinados por
el fabricante, con la intensión de "comprese y utilicese". Por
ejemplo, las memorias fabricadas por la compañia Kingston tienen
por defecto la etiqueta KINGSTON,
además,
dichas memorias tienen una sola partición y un sistema de
archivos FAT32, por la sencilla razón de que la
mayoría de las personas utilizan el sistema de archivos que
puede leer winbugs... upsss! perdón, windogs. Así, cuando
se inserta una memoria de este tipo en linux, el sistema tratará
de montarla en el directorio /media/
en un
subdirectorio con el nombre de la etiqueta, en el ejemplo
sería
/media/KINGSTON.
Esto simplemente
a mi no me gusta, yo quiero que tenga el nombre que yo elija,
además que es más comodo cuando tienes varias
memorias
conectadas con etiquetas personalizadas en lugar de /media/KINGSTON,
/media/KINGSTON-1,
/media/KINGSTON-2, etc. |
Identificando el dispositivo Debido a que linux mantiene un
nombramiento uniforme a los dispositivos independientemente de su
constitución física, nombra a los dispositivos como si
fueran archivos, los cuales los encontramos en el directorio /dev. Los dispositivos con acceso USB,
los nombra como si fueran dispositivos SCSI, haciendo una
emulación para su acceso. Los dispositivos de almacenamiento con
acceso USB son nombrados /dev/sdXN,
donde la X
es una letra de la a a la z y N
es el número de la partición, normalmente del 1 al 4.
Al insertar la memoria y ejecutando el comando dmesg, el kernel nos indica el nombre que le ha asignado al disposotivo, por ejemplo: $dmesg [44091.567613] usb 1-9: new high speed USB device using ehci_hcd and address 44 [44091.724494] usb 1-9: configuration #1 chosen from 1 choice [44091.727673] scsi30 : SCSI emulation for USB Mass Storage devices [44091.727673] usb-storage: device found at 44 [44091.727673] usb-storage: waiting for device to settle before scanning [44091.727673] usb 1-9: New USB device found, idVendor=1307, idProduct=0163 [44091.727673] usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [44091.727673] usb 1-9: Product: USB Mass Storage Device [44091.727673] usb 1-9: Manufacturer: USBest Technology [44091.727673] usb 1-9: SerialNumber: 0000000000000D [44098.809834] usb-storage: device scan complete [44098.811334] scsi 30:0:0:0: Direct-Access Ut163 USB2FlashStorage 0.00 PQ: 0 ANSI: 2 [44098.815333] sd 30:0:0:0: [sdj] 1974271 512-byte hardware sectors (1011 MB) [44098.823055] sd 30:0:0:0: [sdj] Write Protect is off [44098.823055] sd 30:0:0:0: [sdj] Mode Sense: 00 00 00 00 [44098.823055] sd 30:0:0:0: [sdj] Assuming drive cache: write through [44098.837283] sd 30:0:0:0: [sdj] 1974271 512-byte hardware sectors (1011 MB) [44098.841284] sd 30:0:0:0: [sdj] Write Protect is off [44098.841284] sd 30:0:0:0: [sdj] Mode Sense: 00 00 00 00 [44098.841284] sd 30:0:0:0: [sdj] Assuming drive cache: write through [44098.841284] sdj: sdj1 [44098.918605] sd 30:0:0:0: [sdj] Attached SCSI removable disk [44098.918605] sd 30:0:0:0: Attached scsi generic sg8 type 0 [44099.314524] FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive! Podemos notar entre otras cosas que el kernel le ha asignado el nombre /dev/sdj y a su primera partición /dev/sdj1. También identifica la capacidad de almacenamiento de la memoria y los modos de operación. Con el siguiente comando podemos ver el punto de montura asociado a cada uno de los dispositivos montados en el sistema: $df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda4 263056100 157382276 92311360 64% / tmpfs 1488536 0 1488536 0% /lib/init/rw udev 10240 132 10108 2% /dev tmpfs 1488536 0 1488536 0% /dev/shm /dev/sdg1 153834852 41926068 104094368 29% /media/disk /dev/sdj1 978004 4 978000 1% /media/KINGSTON |
Particionamiento Las memorias con acceso USB, son
emuladas como si fueran discos duros magnéticos, lo que facilita
su gestión al ser uniforme tanto para el kernel de linux como
para el usuario final. De la misma forma que un disco duro
magnético, una memoria USB puede ser particionada, aún
cuando evidentemente no está conformada por superficies
giratorias, ni cabezas lectoras, ni cilindros.
Podemos visualizar la tabla de particiones del dispositivos si ejecutamos, como super usuario, el comando: #fdisk -l /dev/sdj Disk /dev/sdj: 1010 MB, 1010826752 bytes 255 heads, 63 sectors/track, 122 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x91f72d24 Device Boot Start End Blocks Id System /dev/sdj1 1 122 979933+ b W95 FAT32 El comando fdisk es una herramienta poderosa para gestionar los dispositivos de almacenamiento. Permite eliminar (d) y crear (n) particiones, tanto primarias como extendidas. También permite cambiar la identificación (t y l) del sistema de archivos. Al igual que un disco duro magnético, una memoria USB puede tener 4 particiones primarias. Si se genera una partición extendida (o lógica) se pueden tener hasta 16 particiones. |
Sistema de archivos Los sistemas de archivos, son
estructuras y funciones que ayudan al sistema operativo para almacenar
y recuperar archivos en un sistema de almacenamiento de manera
eficiente. Los más utilizados (aunque no muy conocidos) son los
sistemas FAT12, FAT16, FAT32 y NTFS para windogs y los sistemas
extendidos ext2, ext3 y ext4 para linux. Cada uno tiene sus ventajas y
desventajas y actualmente contienen funciones de Journaled File
System, para la
actualización eficiente de los cambios en el sistema de archivos.
Para crear un sistema de archivos se debe primero hacer una partición y darle el ID adecuado. Después, se utilizan los comandos para crear el sistema de archivos. Por ejemplo, si quisiera que mi partición /dev/sdj1 tuviera un sistema de archivos FAT: #mkfs.vfat /dev/sdj1 o un sistema de archivos ext3: #mkfs.ext3 /dev/sdj1 Cada partición podrá tener un sistema de archivos diferente, evidentemente el sistema de archivos deberá ser soportado por el sistema operativo. |
Mtools Para cambiar la etiqueta de las
memorias se puede utilizar varias herramientas: mtools,
ntfsprogs,
e2fsprogs,
jfsutils,
xfsprogs,
etc. Por simplicidad utilizaremos
la colección de
aplicaciones mtools,
las cuales son un conjunto de herramientas de software libre
desarrolladas para UNIX/Linux para la manipulación de archivos y
sistemas de archivos MSDOS:
#apt-get install mtools |
Cambio de etiqueta (label) Para asignar la etiqueta mediante mtools,
es necesario mapear el dispositivo /dev/sdj1 a una letra de unidad (tipo
windows), por ejemplo p: estará mapeado a /dev/sdj1.
Se
puede editar un archivo con la información del mapeo para que
las mtools puedan acceder a dicha información y realizar la
operación. El archivo puede estar en el home del usuario o en el
archivo de
configuración general /etc/mtools.conf.
Creamos el archivo .mtoolsrc, en el home del usuario con el siguiente contenido: $vim ~/.mtoolsrc drive p: file="/dev/sdj1" Ahora ejecutamos el comando: $mlabel p:elOAN Si queremos que tenga más de dos palabras: $mlabel p:"la Pioja" Es posible que se genere un mensaje como el siguiente: Total number of sectors (7831520) not a multiple of sectors per track (63)!Lo podemos solucionar así: $echo mtools_skip_check=1 >> ~/.mtoolsrcAhora cada vez que insertemos nuestra memoria a un sistema linux, se creará un subdirectorio con el nombre /media/elOAN |
HAL vs montar HAL (hardware abstraction layer) es un demonio del sistema operativo
que funciona como una interfaz entre el software y el hardware
del sistema. Cuando se emplea HAL, las
aplicaciones no acceden directamente al hardware sino que lo hacen a
una capa abstracta. Del mismo modo que un API, HAL
permiten que las aplicaciones sean independientes del hardware porque
abstraen información acerca de tales sistemas.
...le sigo al ratito. |