¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Raspberry Pi 3 o Pi Zero
  3. Utilizar una memoria de almacenamiento externa
Extrait - Raspberry Pi 3 o Pi Zero Explote todo el potencial de su nano-ordenador
Extractos del libro
Raspberry Pi 3 o Pi Zero Explote todo el potencial de su nano-ordenador Volver a la página de compra del libro

Utilizar una memoria de almacenamiento externa

Introducción

La tarjeta micro SD (Secure Digital) de la Raspberry Pi ofrece a los usuarios una gran flexibilidad de uso. Basta con cambiar la tarjeta micro SD para iniciar rápidamente en otro sistema.

El arranque de la Raspberry Pi requiere, necesariamente, una tarjeta micro SD. Sin embargo, nada le impide, una vez arrancado el sistema, hacer que el sistema funcione en una memoria de almacenamiento externa, llave USB o disco duro.

Este capítulo presenta los elementos que debe tener en cuenta durante la elección de una solución, así como un ejemplo de puesta en marcha con una llave USB de 4 GB dividida en dos particiones de 2 GB. Esta descripción se aplica a los soportes externos de cualquier tamaño.

Después de la preparación de la llave USB para su uso con la Raspberry Pi, el montaje manual o automático de las particiones presentes en el soporte externo permitirá ampliar las posibilidades de la Raspberry Pi.

El uso de la línea de comandos para realizar todas las operaciones facilitará adquirir el control de este entorno, que desde un punto de vista de su uso es sencillo y habitualmente mucho más potente que las herramientas en modo gráfico. Normalmente esto no es más que una forma de ocultar la flexibilidad y riqueza del shell.

El uso de una memoria de almacenamiento masivo externa en modo gráfico, se trata en el capítulo Utilizar el modo gráfico....

¿Por qué una memoria externa?

Cuando el uso de la Raspberry Pi implica frecuentes escrituras en la tarjeta micro SD o necesita una capacidad de almacenamiento elevada, es porque la tarjeta micro SD ha alcanzado el límite de su capacidad. En ese caso, el usuario opta por otros medios de almacenamiento.

1. Características de la tarjeta microSD

images/08ri100.png

La tarjeta micro SD, creada en el 2000 por Panasonic, SanDisk y Toshiba, se ha convertido en un soporte necesario para el almacenamiento de los datos en muchos dispositivos con un sistema embebido (aparatos de toma de imágenes, reproductores de música, smartphones, tabletas, etc.).

Se divide en miniSD y microSD, que mantienen las características de la tarjeta micro SD original, pero con un tamaño adaptado a la miniaturización de los dispositivos actuales.

A mediados del año 2016, la capacidad más elevada de las tarjetas micro SD disponibles habitualmente en el mercado era de 128 GB, aunque las tarjetas de 256 GB todavía están disponibles, así como las tarjetas de 512 GB.

Tecnología de las tarjetas micro SD

Las tarjetas SD están construidas a partir de EEPROM (Electrically Erasable Programmable Read-Only Memory = memoria de solo lectura programable y borrable). La escritura de los datos en estas memorias de tipo NAND (Not-AND = memoria construida a base de puertas lógicas NO-SÍ) necesita el uso de una tensión más elevada que la utilizada en lectura. Si bien la lectura de las tarjetas SD puede hacerse indefinidamente sin deterioro, las escrituras repetidas provocan a la larga una degradación de las células de memoria.

Los fabricantes implementaron procesos que administran el lugar en que se producen las escrituras en las memorias. Un componente de la tarjeta guarda el número de escrituras por zona de memoria y optimiza el uso de estas zonas.

Tiempo de vida de las tarjetas micro SD

El tiempo de vida de las tarjetas micro SD actuales se estima en alrededor de 100.000 escrituras. Esto puede parecer suficiente y sería el caso, por ejemplo, para un aparato...

Discos y particiones en Linux

En el sistema Linux, los discos no aparecen directamente en el sistema de archivos (la arborescencia) como en Windows. El acceso a los discos y particiones se hace a través de los archivos especiales, que sirven de interfaz entre el sistema y el periférico.

1. Identificación de los discos en Linux

Un disco externo USB, conectado a una máquina que funciona con Windows, se detecta y aparece como una partición en el administrador de discos. Estas particiones se llaman F:, G: u otra, según la primera letra disponible después de las reservadas para los lectores locales.

En Linux, un disco aparece en la carpeta /dev como un archivo especial que permite al sistema acceder al disco.

Los discos IDE (Integrated Drive Electronics = disco duro de integración electrónica) conectados a la placa base de los PC por una capa de 40 cables tienen el nombre de hda, hdb... en la carpeta /dev. Desde hace algunos años, se han sustituido por los discos SATA (Serial Advanced Technology Attachment = unión en serie en tecnología de puntos).

Los discos SATA o SCSI (Small Computer System Interface = interfaz para pequeños sistemas informáticos) se llaman sda, sdb... en la carpeta /dev.

2. Identificación de las particiones en Linux

En Linux, las particiones reciben un nombre que se forma con el nombre del disco duro en el que se encuentran (nombre del disco completo seguido de una cifra). Por ejemplo, un disco llamado sda y con dos particiones, se mostrará como sda1 y sda2. Las particiones están accesibles en el directorio /dev, que agrupa todos los archivos especiales del sistema Linux.

Archivos especiales

Para tener una visión general de los archivos especiales presentes en el directorio /dev de la Raspberry Pi, escriba el comando:


pi@raspberrypi ~ $ ls /dev
 
images/RI10_14.png

Esto son cerca de 160 archivos especiales que existen en /dev. Es aquí donde aparecen los discos y particiones que nos interesan.

Nomenclatura de los archivos especiales

La tarjeta micro SD se identifica con el nombre mcblk0 (Memory Card Block) y sus particiones mcblk0p1 (partición 1) a mcblk0p6 (partición 6).

La llave USB aparece como sda. Está en la categoría de los discos SCSI/SATA (sd = SCSI Disk) y como es el primer disco tiene la letra a. Un segundo disco conectado a un puerto USB de la Raspberry Pi toma el nombre sdb. Las particiones...

Definir un punto de conexión

En Windows, cada partición se identifica con una letra distinta C:, D:, etc. En Linux las particiones simplemente se "cuelgan" en la arborescencia general del sistema, con un "Punto de conexión".

1. La arborescencia en Linux

En Linux, el sistema de archivos se organiza en forma de árbol (consulte el capítulo Usar la línea de comandos).


pi@raspberrypi ~ $ ls / 
bin  dev home lost+found mnt proc run  selinux sys usr 
boot etc lib  media      opt root sbin srv     tmp var
 

Hay dos directorios que nos interesan particularmente:

  • /media destinado a la conexión de los medios extraíbles.

  • /mnt habitualmente utilizado para la conexión temporal de sistemas de archivos.

Para acceder a las particiones de la llave USB, es necesario crear un directorio a partir del cual el sistema operativo podrá acceder al sistema de archivos presente en el soporte.

Este directorio se puede situar en cualquier parte del árbol, pero una buena práctica consiste en usar los directorios previstos para este efecto.

Para probar las etapas de conexión/desconexión de un sistema de archivos, /mnt es el directorio adecuado.

2. Crear un punto de conexión

La creación de un punto de conexión se resume en la creación de un directorio /mnt/partition1, destinado a acoger el sistema de archivos situado...

Utilizar una memoria externa

Tan pronto como se han creado los directorios que van a servir de punto de conexión, es posible colgar sistemas de archivos externos a la arborescencia de la Raspberry Pi.

1. Conexión manual de la llave USB

Después de crear los puntos de conexión, es necesario montar las particiones en estos directorios para que aparezcan en el sistema de archivos de la Raspberry Pi. El comando mount realiza esta operación.

 La partición presente en la llave USB, llamada /dev/sda1 por el sistema, se conecta en el punto de conexión /mnt/partition1 con el comando:


pi@raspberrypi /mnt $ sudo mount -t ext4 /dev/sda1  
/mnt/partition1
 

Sintaxis

El comando mount recibe tres argumentos:

  • -t ext4 indica el tipo de partición a montar. Los tipos de partición reconocidos son muchos (ext, ext2, ext3, ext4, hpfs, msdos, vfat, nfs, iso9660, smbfs, etc.). De esta manera, es posible montar una gran variedad de soportes de memoria de almacenamiento en el sistema de archivos de la Raspberry Pi.

  • /dev/sda1 es la partición que es necesario montar en el punto de conexión.

  • /mnt/partition1 es el directorio en el que aparecerá /dev/sda1.

El comando mount también acepta opciones con argumentos -o, entre los que figuran:

  • ro autoriza únicamente la lectura en el sistema de archivos montado.

  • rw autoriza la lectura y la escritura en el sistema de archivos montado.

  • user autoriza a los usuarios normales (los que no son root) a montar un sistema de archivos.

 Monte la segunda partición de la llave USB en el directorio /mnt/partition2 y dele permisos de solo lectura. Compruebe con el comando mount que la opción ro se ha aplicado correctamente en /mnt/partition2. El comando mount utilizado solo muestra la lista de los archivos montados.


/dev/sda1 on /mnt/partition1 type ext4 (rw,relatime,data=ordered) 
/dev/sda2 on /mnt/partition2 type ext4 (ro,relatime,data=ordered)
 

La conexión manual de las particiones da una gran flexibilidad para administrar memorias de almacenamiento externas. Sin embargo, el sistema Linux utiliza un sistema que ahorra las transferencias USB. Cuando escribe en la llave, el sistema guarda los archivos en la memoria RAM de la Raspberry y solo escribe en la llave USB si el tamaño de los datos a escribir es suficiente, o para garantizar una desconexión correcta.

Esto significa que entre el momento en que escribe...

Modificación de los permisos

Durante la preparación de la llave USB se aplican los permisos del administrador. Para que un usuario normal pueda usar el periférico, es necesario modificar los permisos de acceso.

Aplicar el permiso 777 al conjunto del disco puede parecer sencillo, pero resulta peligroso porque abre el disco a cualquier acceso sin ningún control.

1. Partición FAT o NTFS

Para una partición FAT o NTFS es mejor crear un grupo que tenga acceso al disco y darle los permisos al conjunto del disco. Basta con añadir a continuación los usuarios a este grupo para asignarles dichos permisos. Estos usuarios pueden ser usuarios reales o usuarios establecidos por las aplicaciones.

Cree el grupo diskuser, autorizado a usar el disco:


pi@raspberrypi ~ $ sudo groupadd diskuser
 

A continuación hay que añadir el usuario pi, y el resto que desee, al grupo diskuser


pi@raspberrypi ~ $ sudo usermod -a -G diskuser pi
 

Añada ahora la siguiente línea al archivo /etc/fstab, para montar automáticamente la partición FAT:


/dev/sda2 /mnt auto auto,async,gid=diskuser,umask=007  0 2
 

El argumento umask elimina los permisos indicados. Aquí, el valor 7 indica que los usuarios que no son ni propietarios ni miembros del grupo propietario no tendrán ningún permiso. Este valor es opcional.

Una vez se ha montado la partición, todas las carpetas y archivos de la partición...

Conclusión

El uso de una tarjeta micro SD limita la cantidad de memoria disponible. El uso de una memoria de almacenamiento externo da acceso a capacidades de almacenamiento más extendidas, particularmente considerables si la Raspberry Pi se usa como centro multimedia.