Vamos a realizar la instalación y puesta en marcha de una Raspberry PI 4 poniendo el /boot en una microSD y el / en un disco SSD. Con esto nos aseguramos una solución longeva minimizando la probabilidad de falla de la microSD.
Por fin llegó de china mi nueva Raspberry PI 4! (Llego hace unos días pero confieso que estuve jugando un poco antes de escribir).
La compre con una de las pocas carcasas de aluminio que estaban disponibles. No tiene refrigeración activa (solo disipador).
Las primeras impresiones sobre la Raspberry pi 4
A favor:
- Mucho más rápida que la 3B+
- USB 3.0 es una mejora imporante
- 4Gb de RAM (existen opciones de 2Gb y 1Gb).
- 2 Micro HDMI 4 K
- Alimentación por USB-C
En contra:
- Temperatura
- No bootea del USB (al 14/10/2019 estás obligado a usar una microsd para el /boot)
- Micro HDMI
Puesta en marcha de la Raspberry pi 4:
En primera instancia quiero tener un equipo de escritorio liviano que me permita realizar las operatorias diarias sin tener que prender la pc convencional.
Originalmente quería usar directamente un disco SSD para esta solución pero terminó siendo SSD más MicroSD.
El primer paso a realizar es descargar la imagen de Raspbian Buster con Desktop, finalizado este paso se debe descomprimir y desplegarla sobre nuestra MicroSD y SSD (no es un error de tipeo es en los dos dispositivos).
El primer paso. Descomprimir la imágen. Asumiendo que la descargaron en ~/Downloads/Raspbian, se debe ingresar a ese directorio y ejecutar el comando:
unzip 2019-09-26-raspbian-buster.zip
El siguiente paso es identificar que dispositivos en el sistema son el disco SSD y la microSD.
Ejecutando la siguiente línea el sistema nos arrojará la lista de particiones de los medios conectados al equipo. (Va a solicitar la contraseña de sudo para ejecutar el comando «fdisk -l» (lista partiones, no ejecuta cambios sobre el equipo).
for i in {a..z}; do if [[ -e /dev/sd$i ]]; then sudo fdisk -l /dev/sd$i ; echo -e '\n'; fi ; done
Vamos a trabajar en este caso en el dispositivo /dev/sdc (microsd de 14.9Gib~16Gb) y en el /dev/sdd (ssd de 223.6Gib ~ 240Gb).
El /dev/sda es el disco de mi equipo Ubuntu, tipicamente sobre el /dev/sda no deberíamos trabajar nunca.
A continuación vamos a proceder a copiar la imagen del Raspbian en la microSD. Con el comando «dd» adecuar al la ruta, y nombre de la imagen descargada y el medio a impactar.
sudo dd if=./2019-09-26-raspbian-buster-lite.img of=/dev/sdc bs=10240 status=progress
A continuación vamos a generar una partición ext4 que va a pasar a ser el root «/» en el disco SSD.
sudo parted /dev/sdd
Ya en el prompt del parted vamos a proceder a generar una partición gpt en el disco (en la captura avisa que ya esta creada porque era un disco que estaba siendo utilizado con anterioridad).
(parted) mktable gpt
Y ahora la creamos la partición ext4 para utilizar como root en el ssd.
(parted) mkpart primary ext4 0% 100%
Para finalizar imprimimos el estado de la tabla de particiones y salimos del parted.
(parted) print (parted) quit
A continuación debemos proceder a formatear la nueva partición.
sudo mkfs.ext4 /dev/sdd1
Con tune2fs podemos definir el Label (nombre) de la partición.
sudo tune2fs -L rootfs /dev/sdd1
A cotinuación vamos a proceder a crear los puntos de montaje de las particiones de la microSD y el disco SSD, también vamos a montar dichas particiones.
mkdir -p /tmp/microssd-boot mkdir -p /tmp/microssd-rootfs mkdir -p /tmp/ssd-rootfs sudo mount /dev/sdc1 /tmp/microssd-boot/ sudo mount /dev/sdc2 /tmp/microssd-rootfs/ sudo mount /dev/sdd1 /tmp/ssd-rootfs/
Con las particiones montadas vamos a proceder a copiar la partición root de la microsd a la partición que vamos a usar en el disco ssd. Para esto vamos a utilizar el comando rsync (permite mantener los permisos, links, etc y es muy rápido).
sudo rsync -axv /tmp/microssd-rootfs/ /tmp/ssd-rootfs
Identificamos el id de las particiones con las que vamos a trabajar.
sudo blkid |grep /dev/sd
El siguiente paso es adecuar los archivos del /boot de la microsd para que inicien desde la partición del disco. Para esto hay que adecuar el valor de la variable root=PARTUUID= por el valor de la partición root del disco SSD. En este caso el valor era «ba4d6385-08bd-4d5e-8a50-e1d78dae7888». También debemos remover la instrucción para ampliar el sistema de archivos (como nosotros vamos a usar una partición en el disco SSD y la hicimos por el tamaño completo no tiene sentido y nos ahorramos un menaje de error), se debe remover la sentencia «init=/usr/lib/raspi-config/init_resize.sh»
sudo vi /tmp/microssd-boot/cmdline.txt
También vamos a proceder a habilitar el ssh en nuestro equipo. (Esto implica cierto riesgo ya que nuestra Raspberry PI 4 va a iniciar exponiendo el servicio con el usuario y contraseña por defecto, se recomienda hacer en una red segura).
sudo touch /tmp/microssd-boot/ssh
la siguiente adecuación es el archivo «/etc/fstab» de nuestro disco ssd que esta montado en el /tmp/ssd-rootfs/etc/fstab para cambiar el uuid de la partición.
sudo vi /tmp/ssd-rootfs/etc/fstab
Finalizado este paso procedemos a desmontar las unidades.
sudo umount /dev/sdc1 sudo umount /dev/sdc2 sudo umount /dev/sdd1
Y borramos la segunda partición de la microSD (así tenemos la certeza de que el sistema levanta con el disco SSD).
sudo parted /dev/sdc (parted) print
(parted) rm 2 (parted) print (parted) quit
Con esto podemos dar por terminada la adecuación. Solo queda instalar la microSD y conectar el SSD en el nuestra nueva Raspberry Pi 4. Buena suerte!