A día de hoy arrancar la Raspberry Pi 4 a través de una unidad de almacenamiento SSD es fácil gracias a su último firmware estable. Para ello no tenemos que hacer nada especial. Simplemente tenemos que quemar la imagen de Raspbian OS en la unidad de almacenamiento SSD, enchufarla a la Raspberry Pi y encenderla. No obstante detallaremos el procedimiento y que podemos hacer en el caso que se presenten problemas durante el proceso.
Nota: Si la Raspberry Pi no arranca con la unidad SSD posiblemente sea culpa del adaptador SATA – USB. La Raspberry Pi no se lleva bien con algunos tipos de adaptadores, por lo tanto les recomiendo que compren las unidades SSD y carcasas recomendadas en este artículo. Si compran otras opciones no mencionadas en el artículo miren por Internet para ver si se pueden generar problemas.
MATERIAL NECESARIO PARA ARRANCAR LA RASPBERRY PI A TRAVÉS DE UNA UNIDAD DE ALMACENAMIENTO SSD
Lo único que necesitaremos es:
- Una unidad de almacenamiento SSD. En mi caso os recomiendo la compra de la unidad Kingston A400. Es la unidad SSD que uso y según mi experiencia y lo que he podido leer por la red funciona bien y es una solución relativamente económica.
- Una carcasa de disco duro con el correspondiente adaptador de SATA a USB 3.0 o simplemente un adaptador de SATA a USB 3.0. En mi caso he comprado esta referencia, pero no recomiendo su compra porque no funciona out of the box. La opción ideal seria comprar un adaptador StarTech StarTech USB 3.0 a 2.5″ SATA.
Algunas combinaciones de dispositivos de almacenamiento y adaptadores/carcasas funcionan son las siguientes:
Combinación | Modelo SSD con link de compra | Modelo adaptador con link de compra |
---|---|---|
1 | Kingston A400 SSD SA400S37/240G | StarTech StarTech USB 3.0 a 2.5″ SATA |
3 | Crucial MX500 250GB | ELUTENG 2.5″ SATA a USB 3.0 |
4 | Crucial MX500 250GB | StarTech StarTech USB 3.0 a 2.5″ SATA |
5 | Crucial BX500 120 GB CT120BX500SSD1(Z) | ELUTENG 2.5″ SATA a USB 3.0 |
6 | Samsung 860 EVO MZ-76E250B/EU | UGREEN Caja Disco Duro Externo 2.5″ |
Nota: Si tienen otras opciones que pueden garantizar que funcionan sin deshabilitar UASP por favor informen en los comentarios del artículo.
Nota: En mi caso recomendaría encarecidamente la combinación 1. Es una opción económica, que funciona y que da buenos resultados en los benchmark.
ASEGURAR QUE LA RASPBERRY PI ESTA CONFIGURADA PARA ARRANCAR A TRAVÉS DE LA UNIDAD SSD
Arrancamos la Raspberry Pi a través de la tradicional tarjeta MicroSD. Una vez arrancada actualizan el sistema operativo ejecutando los siguientes comandos en la terminal:
sudo apt update sudo apt full-upgrade
Una vez ejecutada la actualización les recomiendo que reinicien el equipo mediante el comando:
sudo reboot
A continuación ejecutamos el siguiente comando para instalar la última versión del bootloader y del firmware. En el más que probable caso que ya tengan las últimas versiones el comando no hará nada.
pi@raspberrypi:~ $ sudo rpi-eeprom-update -d -a BCM2711 detected Dedicated VL805 EEPROM detected BOOTLOADER: up-to-date CURRENT: jue sep 3 12:11:43 UTC 2020 (1599135103) LATEST: jue sep 3 12:11:43 UTC 2020 (1599135103) FW DIR: /lib/firmware/raspberrypi/bootloader/critical VL805: up-to-date CURRENT: 000138a1 LATEST: 000138a1
Nota: Si vemos la salida del comando podemos confirmar que tenemos instalada la última versión del firmware y del bootloader. Si tenéis esta versión, o una versión más actual, la Raspberry Pi debe arrancar desde una unidad SSD sin ningún tipo de problema.
Ahora de nuevo volvemos a reiniciar la Raspberry Pi. Una vez reiniciada tecleamos el siguiente comando en la terminal:
sudo raspi-config
Cuando aparezca el menú de configuración seleccionamos la opción 6 Advanced options
Seguidamente en la segunda pantalla nos posicionamos en la opción A6 Boot Order
y presionamos Enter.
Finalmente seleccionamos la opción B1 USB Boot
y presionamos Enter. De esta forma si no hay la tarjeta MicroSD insertada en la Raspberry se intentará arrancar des de la unidad de almacenamiento SSD.
QUEMAR EL SISTEMA OPERATIVO A LA UNIDAD DE ALMACENAMIENTO SSD
Una vez configurada la Raspberry Pi 4 ya pueden quemar el sistema operativo en la unidad SSD. Lo pueden realizar usando Raspberry Pi Imager siguiendo las instrucciones que les dejo en el siguiente enlace:
Nota: Si pretenden arrancar Raspbian desde una unidad SSD les recomiendo que usen Raspbian OS. Es posible que otras distribuciones den problemas al arrancar desde la unidad SSD. Otro sistema alternativo a Raspbian que debería arrancar desde la unidad SSD es Ubuntu 20.10.
CONECTAR LA UNIDAD DE ALMACENAMIENTO SSD Y ARRANCAR LA RASPBERRY PI
Con el sistema operativo quemado en la unidad SSD ha llegado la hora de la verdad. Para arrancar la Raspberry Pi con la unidad SSD seguiremos las siguientes instrucciones:
- Apagaremos y desenchufaremos la Raspberry Pi.
- Sacaremos la tarjeta MicroSD y todos los dispositivos de almacenamiento que tengamos en la Raspberry Pi.
- Conectaremos la unidad de almacenamiento SSD en la Raspberry Pi. La unidad de almacenamiento SSD la tenéis que conectar a los puertos USB 3.0. Los puertos USB 3.0 son los que son de color azul. De esta forma obtendremos mayor rendimiento.
- Finalmente arrancaremos la Raspberry Pi.
Si estáis usando un adaptador SATA a USB que no genera conflictos con la Raspberry Pi y una unidad de almacenamiento adecuada todo debería funcionar perfectamente. En el caso que tengan problemas de rendimiento o que la Raspberry no arranque pueden intentar lo siguiente.
Nota: Si queréis arrancar la Raspberry pi con varias unidades de almacenamiento conectadas deberéis indicar el orden de prioridad de arranque en el fichero /etc/fstab
. De este modo la Raspberry Pi tendrá claro con el dispositivo de almacenamiento que tiene que realizar el arranque.
¿QUÉ PODEMOS HACER SI LA RASPBERRY PI NO ARRANCA CUANDO CONECTAMOS LA UNIDAD DE ALMACENAMIENTO SSD?
Si la Raspberry no arranca, da problemas o tiene un rendimiento malo posiblemente sea por el adaptador SATA a USB. Si se da el caso una solución que a mi me han funcionado ha sido deshabilitar el modo UAS. Deshabilitando el modo UAS o UASP hará que el rendimiento sea un poco peor, pero aún y así el rendimiento y estabilidad obtenidos seguirá siendo infinitamente superior al de una tarjeta MicroSD.
Para deshabilitar UASP tenemos que averiguar el id de nuestro adaptador SATA a USB. Para ello enchufaremos la unidad SSD a un equipo con Linux o en la Raspberry Pi y ejecutaremos el comando lsusb
.
pi@raspberrypi:~ $ lsusb Bus 002 Device 002: ID 0781:5583 SanDisk Corp. Ultra Fit Bus 002 Device 003: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Nota: Para que el comando lsusb
funcione tienen que tener instalado el paquete usbutils
. Para instalarlo pueden ejecutar el comando sudo apt install usbutils
Si miran la salida del comando vemos que el ID de nuestro adaptador es 152d:0578
. Una vez sabemos el ID accedemos a la partición boot de la unidad de almacenamiento SSD y editamos el fichero cmdline.txt
con nuestro editor de textos favorito.
Una vez se abra el editor de textos tenemos que añadir un texto del siguiente tipo en la parte inicial del fichero:
usb-storage.quirks=XXXX:XXXX:u
Donde XXXX:XXXX
corresponde al ID de nuestro adaptador SATA a USB. Por lo tanto en mi caso deberé añadir el siguiente código en el fichero cmdline.txt
usb-storage.quirks=152d:0578:u
y el contenido del fichero cmdline.txt
quedará del siguiente modo:
Una vez realizados los cambios los guardan y cierran el editor de textos. A continuación ya pueden arrancar la Raspberry Pi con la unidad de almacenamiento SSD y ver si el problema se ha solucionado.
Nota: Otra solución es comprar un adaptador nuevo.
QUE HACER UNA VEZ HAYAMOS ARRANCADO CON LA UNIDAD DE ALMACENAMIENTO SSD
Una vez la Raspberry Pi arranque con la unidad de almacenamiento SSD les recomiendo que realicen las siguientes comprobaciones.
Comprobar que todo el espacio del disco está disponible
Para comprobar que la totalidad del espacio de la unidad está disponible ejecuten el comando df -h
en la terminal. En mi caso los resultados obtenidos son los siguientes:
pi@raspberrypi:~ $ df -h S.ficheros Tamaño Usados Disp Uso% Montado en /dev/root 110G 1,3G 105G 2% / devtmpfs 1,8G 0 1,8G 0% /dev tmpfs 1,9G 0 1,9G 0% /dev/shm tmpfs 1,9G 8,5M 1,9G 1% /run tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 1,9G 0 1,9G 0% /sys/fs/cgroup /dev/sda1 253M 54M 199M 22% /boot tmpfs 383M 0 383M 0% /run/user/1000
La partición boot tiene un tamaño de 253M mientras que la partición root de 110G. Además de los 110G de la partición root 105G están disponibles. Por lo tanto podemos concluir que la totalidad de espacio del disco duro es usable. Por lo tanto está todo perfecto.
Comprobar que los valores de carga de la CPU sean 0
Es importante ejecutar el comando uptime y comprobar que los valores de carga de la Raspberry sean 0. En caso que no sean cero y existan algún proceso que esté haciendo uso inapropiado de la CPU deben seguir las instrucciones del siguiente enlace:
Solucionar el consumo alto de cpu al usar la Raspberry Pi con SSD
Habilitar Trim
De forma predeterminada la función de TRIM viene desactivada. El proceso para habilitar TRIM es largo y no es simple. El procedimiento para activarlo es el que cito en el siguiente enlace:
Activar el trim en una raspberry pi arrancada por un ssd externo
Medir el rendimiento de la unidad de almacenamiento SSD
Una vez tenemos nuestro SSD seguramente a todo el mundo le resultará interesante ver su rendimiento. Para ello en futuros artículos detallaré un par de métodos analizar el rendimiento de su unidad SSD.
Fuentes
https://jamesachambers.com/raspberry-pi-4-usb-boot-config-guide-for-ssd-flash-drives/
hola. gracias por el tuto. sigo todos tus pasos y me encuentro que no arranca el HD. Despues de mucho esperar me da un error:
You are in emergency mode. After logging in, type «journalctl -xb» to view system logs, «systemctl reboot» to reboot, «systemctl default» or «exit» to boot into default mode.
este es el firmware que le he cargado:
BCM2711 detected
VL805 firmware in bootloader EEPROM
BOOTLOADER: up-to-date
CURRENT: vie dic 11 11:15:17 UTC 2020 (1607685317)
LATEST: vie dic 11 11:15:17 UTC 2020 (1607685317)
FW DIR: /lib/firmware/raspberrypi/bootloader/stable
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1
Hola
Lo primero que veo es que no estás usando un firmware estable y esto acostumbra a ser fuente de problemas.
Si no arranca y después de deshabilitar UASP sigue sin arrancar no se que aconsejarte con la información proporcionada. Formatea y prueba con el firmware estable y si sigue sin funcionar deberás comprar material nuevo que se lleve bien con la Pi.
Saludos
Confirmar que con la caja TQE-2529B, del fabricante TooQ, y un Kingston A400, todo funcionando a la primera :-)
Dejo el enlace a la caja, por si es de utilidad: https://www.tooq.com/product.php?id=1581
Compré un disco ssd de 60 GB y un cable adaptador.
He mirado muchas guías, y sólo la tuya me ha funcionado.
Comentar que tuve que hacer un resize de la unidad porque me había dejado un espacio de 1,5 GB.
Si pasa esto, es poner el disco en otro linux sin montar la unidad y ejecutar
sudo resize2fs /dev/sdbX