jueves, 19 de septiembre de 2013

Instalar una imagen en la tarjeta SD desde un sistema Linux


¿Sirve este procedimiento para todas las distribuciones disponibles para la raspberry?

Claro. Siempre que la distribución facilite un archivo imagen, el procedimiento es esencialmente el mismo.

Enlaces recomendados

http://elinux.org/RPi_Easy_SD_Card_Setup (en inglés) Explica el proceso de forma mucho más detallada y exahustiva que este post, que pretende solo ser un rápido how-to.

¿Que necesito?

  • Un ordenador de trabajo con sistema linux instalado, con ranura o dispositivo para acceder a una SD y conexión a internet.
  • Una SD de dos o mas gigas
  • Idealmente una Raspberry para probar el resultado

Pasos de la instalación

  1. Descargar la distribución desde http://www.raspberrypi.org/downloads (en adelante supondremos que el archivo descargado es el  archlinux-hf-2013-07-22.img.zip)
  2. Una vez descargado comprobamos que es el archivo correcto ejecutando sha1sum archlinux-hf-2013-07-22.img.zip. El resultado debe coincidir con el indicado como valor de SHA1-checksum para el archivo.
  3. Una vez descomprimido el archivo .gz, comprobamos que lo que tenemos es un archivo .img, es decir, una imagen completa de una tarjeta SD de dos gigas, incluida la tabla de particiones 
  4. Desde linea de comando, ejecutamos df -k    Esto nos mostrará los sistemas de archivos conectados a nuestro ordenador
  5. Pinchamos la tarjeta SD en nuestro ordenador de trabajo.
  6. Volvemos a ejecutar df -k. Nos aparecerá una o varias lineas nuevas (una por cada partición que contenga la SD pinchada). Valores habituales son “/dev/mmcblk0p1" or "/dev/sdd1” (A partir de ahora suponemos que el valor aparecido es /dev/mmcblk0p1).
  7. Desmontamos el dispositivo para que no pueda leerse o escribirse en él mientras volcamos la imagen. Para ello ejecutaremos el comando umount /dev/mmcblk0p1 (Si se ha generado más de un punto de montaje, deberemos desmontarlos todos).
  8. Escribiremos la imagen en la sd con el comando dd. Hay que tener en cuenta que no vamos a escribir la imagen en una partición de la tarjeta, sino directamente en la tarjeta. Eso quiere decir que como destino utilizaremos /dev/mmcblk0 o /dev/ssd, ya que la última parte corresponde al número de partición dentro del dispositivo: sudo dd if=archlinux-hf-2013-07-22.img of=/dev/mmcblk0 El comando dd no muestra barra de progreso, tener en cuenta que puede llevar algún tiempo, la velocidad de escritura de una SD no es muy alta.
  9. Asegurarnos de que los datos se han escrito en su totalidad antes de extraer la tarjeta con el comando sudo sync 
  10. Pinchar la tarjeta  y conectar la raspberry a una toma de red, y a una toma de corriente. El sistema arrancará de forma automática nada más instalarle la toma de corriente. La forma más sencilla para conectarse a ella es mediante ssh. A tener en cuenta:
    • En las dos distribuciones que he probado (arch y raspbian) la raspberry toma la dirección IP directamente por DHCP. La forma mas sencilla de averiguar qué IP ha tomado, en una instalación doméstica, es mirarlo directamente en la tabla del router.
    • El login-password por defecto en arch es root/root, pero de todas formas teneis todos los usuarios y password en la página de descargas de distribuciones (http://www.raspberrypi.org/downloads)

Anexo: Reparticionar la tarjeta

  1. Si hemos utilizado una tarjeta de más de dos gigas, actualmente estamos desaprovechando ese espacio, ya que al copiar la imagen se le ha asignado una tabla de particiones correspondiente a dos gigas. Algunas distribuciones de Raspberry reparticionan automáticamente la tarjeta en el primer arranque, otras no. Lo mejor es que compruebes después del primer arranque si estás perdiendo espacio (df -k o df -m nos dará el tamaño en kbytes o en megas). En caso de que el tamaño disponible sea menor al disponible en la tarjeta:
    • ejecutar sudo raspi-config
    • seleccionar en el menú la opción expand_rootfs
    • ejecutar sudo reboot
    • comprobar que el tamaño disponible es ahora el correcto
  2. Si la distribución que utilizamos no tiene el script raspi-config, necesitaremos reparticionar la SD a mano. El proceso es algo largo y yo personalmente no lo he realizado, con lo que me limitaré a facilitaros un enlace (en inglés) donde se indican diversos modos de realizarlo: (http://elinux.org/RPi_Resize_Flash_Partitions)


No hay comentarios:

Publicar un comentario