Probablemente quieras aumentar la velocidad de tu Raspberry Pi y hayas optado por cambiar la instalación del sistema operativo de MicroSD a un SSD o HDD, si es así déjame decirte ¡que estás en lo correcto!
Existen tarjetas MicroSD realmente rápidas pero siendo sinceros, las tarjetas MicroSD no están pensadas para utilizar un sistema operativo en ellas ya que esto conlleva muchas sobreescrituras constantes al tener todos los procesos necesarios en funcionamiento de forma constante, lo cual acorta la vida útil de la tarjeta de memoria a muy pocos años.
Hay tarjetas MicroSD con mejor optimización para sobreescrituras como la SanDisk Extreme pero lamentablemente nunca serán lo mismo que un SSD o HDD ni de lejos. De hecho, bajo mi propia experiencia, he utilizado esta tarjeta y su vida útil ha sido exactamente de 2 años (730 días) desde que la compré. Recientemente empezó a fallar el sistema no permitiéndome actualizar y tras reiniciar no arrancaba.
Por suerte pude recuperar los datos conectándola a un PC y utilizando la herramienta Linux Reader para leer particiones ext4 de Linux. Tras recuperar los archivos, traté de formatear la tarjeta MicroSD de varias formas; Desde el clásico visor de dispositivos de Windows, desde el administrador de particiones, desde CMD con diskpart y con programas externos pero no hubo manera así que la di por perdida y me animé a dar el salto a SSD ya que una duración de 2 años con el uso que le he dado me parece menos que suficiente. A continuación te explico los pasos a seguir para que lo hagas tú también.
Recuerda que antes de realizar cualquier paso debes realizar una copia de seguridad para evitar cualquier posible perdida de información. También recuerda que no nos hacemos responsables de cualquier daño causado a tus equipos al seguir estos pasos aunque todos los pasos que se indican a continuación ha sido extraídos de una o varias guías oficiales.
¿Qué Raspberry’s soportan el arranque desde USB?
El arranque desde USB está disponible en Raspberry Pi 2B v1.2, 3A+, 3B, 3B+, 4B, 400 y Zero 2 W, y Raspberry Pi Compute Module 3, 3+ y 4.
Fuente: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#usb-boot-modes
¿Qué necesitamos?
- Raspberry Pi (4b, 4, 400, 3b, 3b+, 3A+, 3+, 3, Zero 2W y 2b v1.2).
- Tarjeta MicroSD (Cualquiera que funcione y con un tamaño recomendado de 16 a 64gb al ser posible).
- Raspberry Pi Imager.
- Dispositivo de almacenamiento solido (SSD) o disco duro (HDD).
- Caja externa para SSD/HDD (con USB 3.0 para aprovechar la velocidad).
- Un ordenador para preparar todo. (Windows, Mac y/o Ubuntu).
Actualizar firmware
También, es recomendable actualizar el firmware de la Raspberry Pi utilizando los siguientes comandos desde el terminal (previamente tenemos que tener instalada una distribución, como Raspbian OS por ejemplo), comandos:
sudo apt update -y
sudo apt upgrade -y
sudo rpi-eeprom-update
reboot
Esto actualizará y reiniciará nuestra Raspberry para aplicar la actualización del firmware si está disponible, una vez finalice, podemos apagarla con el comando shutdown
.
Cómo iniciar Raspberry Pi 4b, 4 o 400 desde SSD o HDD externo
En los modelos 4B y 400 el arranque desde USB está habilitado por defecto. Solamente tenemos que asegurarnos de tener nuestro firmware actualizado y extraer la tarjeta MicroSD. En caso de querer cambiar el orden de arranque para que arranque desde USB y no desde MicroSD aunque esté conectada, seguimos los siguientes pasos:
-
- Descargamos, instalamos e iniciamos la herramienta Pi Imager (Disponible para Windows, Mac y Ubuntu).
- Descargamos, instalamos e iniciamos la herramienta Pi Imager (Disponible para Windows, Mac y Ubuntu).
- Conectamos la tarjeta MicroSD a nuestro ordenador mediante un lector de tarjetas MicroSD, si no dispones de uno pulsa aquí para adquirirlo en Amazon.
- Iniciamos la herramienta Raspberry Pi Imager y pulsamos > CHOOSE OS > Misc utily images > Bootloader > USB Boot
- Pulsamos sobre > CHOOSE STORAGE > seleccionamos nuestra tarjeta MicroSD > WRITE > YES, y empezará el proceso de flasheo de la tarjeta MicroSD (recuerda que esto borrará todo lo que hubiese previamente en la tarjeta MicroSD, si tienes archivos importantes haz copia de seguridad primero).
- Una vez completado, extraemos la tarjeta MicroSD de nuestro equipo y la introducimos en la Raspberry, a continuación, conectamos nuestra Raspberry a la corriente para que arranque y automáticamente empezará el flasheo que ajustará nuestra Raspberry para iniciar desde los puertos USB.
- Una vez se haya completado el flasheo, veremos una luz verde parpadeando en nuestra Raspberry. Si tenemos un monitor conectado veremos también la pantalla con un fondo verde.
Pantalla verde tras aplicar la configuración de inicio desde USB mediante MicroSD con USB BOOT
A partir de ahora, nuestra Raspberry intentará iniciar desde los puertos USB. En caso de no detectar ningún sistema operativo en los puertos USB, intentará iniciar desde la ranura MicroSD.
Instalar sistema operativo en SSD o HDD externo
Ahora simplemente tenemos que instalar el sistema operativo que queramos en nuestro SSD o HDD externo, para ello, lo conectamos a nuestro equipo e instalamos el sistema operativo deseado desde Raspberry Pi Imager.
Personalmente recomiendo Ubuntu Desktop o Ubuntu Mate si queremos que tenga un entorno de escritorio visual o bien Ubuntu Server si solamente necesitamos acceso mediante SSH sin ningún entorno de escritorio visual, pero para gustos los colores 😊.
Ahora solamente tenemos que conectar la caja externa con nuestro SSD o HDD en cualquier puerto USB 3.0 e iniciar nuestra Raspberry Pi conectándola a la corriente.
Otros detalles a tener en cuenta:
Las Raspberry’s no están diseñadas para conectar discos externos en cuanto a consumo se refiere, aunque un dispositivo de almacenamiento externo consume poco (entre 3 y 5w a carga máxima para SDD y entre 5 y 7w para HDD), es recomendable utilizar una caja externa con alimentador para que no sea el cargador y la Raspberry quienes tengan que hacer ese esfuerzo que en determinadas ocasiones podría quedarse corto o bien afectar al rendimiento por falta de energía.
Por ello te recomendamos adquirir una caja externa con alimentador, normalmente las cajas para discos de tamaño 3,5″ lo traen y también soportan discos de 2,5″, otra opción es aprovechar y comprar una base doble por si queremos conectar más de un disco y así aprovechamos. En mi caso utilizo una como estas: Pulsa aquí para verlas en Amazon.
Cómo iniciar Raspberry Pi 3 o Zero desde SSD o HDD externo
En caso de tener uno de los siguientes modelos: Pi 2B, 3A+, 3B, CM3, CM3+ o zero 2W. Seguiremos los pasos que se indican a continuan para habilitar el arranques desde USB.
-
- Descargamos, instalamos e iniciamos la herramienta Pi Imager (Disponible para Windows, Mac y Ubuntu).
- Conectamos la tarjeta MicroSD a nuestro ordenador mediante un lector de tarjetas MicroSD, si no dispones de uno pulsa aquí para adquirirlo en Amazon.
- Iniciamos la herramienta Raspberry Pi Imager y pulsamos > CHOOSE OS > Rasperry Pi OS > CHOOSE STORAGE > seleccionamos nuestra tarjeta MicroSD, (Opcionalmente podemos pulsar el la tuerca para habilitar el acceso por SSH o cambiar el usuario y contraseña que trae por defecto).
Preparar Raspberry OS en MicroSD (con SSH opcional) - Pulsamos WRITE > YES, y empezará el proceso de flasheo de la tarjeta MicroSD.
- Una vez completado, extraemos la tarjeta MicroSD de nuestro equipo y la introducimos en la Raspberry, a continuación, conectamos nuestra Raspberry a la corriente para que arranque.
- Iniciamos sesión con el usuario es pi y la contraseña raspberry (a excepción de haber creado un usuario y contraseña en los ajustes previamente).
- Abrimos el terminal y escribimos los siguientes comandos para actualizar y reiniciar:
sudo apt update -y sudo apt upgrade -y sudo rpi-eeprom-update reboot
- Una vez hayamos actualizado y reiniciado, introducimos los siguientes comandos para habilitar el inicio desde USB y reiniciar:
echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt reboot
- Una vez hayamos reiniciado, introducimos el siguiente comando para comprobar que el inicio desde USB está habilitado:
vcgencmd otp_dump | grep 17
- Si aparece el siguiente texto: «17:3020000a«, habremos habilitado correctamente el inicio desde USB.
- Ahora retiramos la tarjeta MicroSD, instalamos el S.O en el SSD o HDD si no lo tenemos instalado, conectamos por USB el dispositivo de almacenamiento externo (SSD o HDD) ¡y listo!.
- Descargamos, instalamos e iniciamos la herramienta Pi Imager (Disponible para Windows, Mac y Ubuntu).
Cambiar el orden de arranque
Podemos cambiar el orden de arranque para volver a configurar la ranura MicroSD como primer dispositivo de arranque, o bien cambiar el orden en los modelos que ya viene preactivado, aunque necesitaremos usar Raspbian OS, por lo que si no lo tenias instalado, es probable que prefieras directamente utilizar la opción USB BOOT explicada en el paso anterior que también establece el orden USB en el primer lugar.
Para cambiarlo, usaremos los siguientes comandos que nos permitirán elegir el orden de arranque de forma visual y también habilitar el arranque desde red (si es compatible).
- Instalamos Raspbian OS en una tarjeta MicroSD con Pi Imager.
Preparar Raspberry OS en MicroSD (con SSH opcional) - Insertamos la MicroSD en nuestra Raspberry y la encendemos.
- Ejecutamos el comando: sudo raspi-config
- Seleccionamos «Advanced Options«.
- Elegimos «Boot Order» y elegimos desde donde queremos que arranque nuestra Raspberry.
Para restablecer los ajustes predeterminados o actualizar la última versión disponible del bootloader (rpi-eeprom), seguimos los siguientes pasos:
- Instalamos Raspbian OS en una tarjeta MicroSD con Pi Imager.
- Ejecutamos el comando: sudo raspi-config
- Seleccionamos «Advanced Options«.
- Elegimos «Bootloader Version«.
- Para restablecer los ajustes predeterminados, seleccionamos la segunda opción (E2 Default Use the factory default ROM software).
- Para actualizar a la última versión elegimos (E1 Latest Use the latest version boot ROM software). (Se recomienda haber actualizado primero siguiendo los pasos del apartado Actualizar firmware).
Ventajas de utilizar SSD en Raspberry Pi:
- Pasaremos de una velocidad media de 43/21 MB/s (lectura/escritura) a 560/530 MB/s (lectura/escritura).
- Arranque mucho más rápido.
- Vita útil mucho mas larga (de unos 2/10 años de media en una MicroSD a varias décadas en un SSD).
- Mayor seguridad en corrupción de datos.
Contras de utilizar SSD en Raspberry Pi:
- Mayor inversión de dinero.
- Consumo levemente inferior (aunque el consumo de un SSD pueda llegar a 5W esto es solamente cuando está funcionando al máximo, en reposo consume alrededor de 0,2w).
Aquí te muestro mi setup actual de una Raspberry Pi 4B con un SSD Samsung Evo 870 1TB
Posible problema de interferencias en Raspberry con los puertos USB 3.0
Posibles problemas
Si tu Raspberry no inicia desde el SSD (USB) o tienes algún otro problema como que la red Wi-Fi 2.4GHz deja de funcionar, te mostramos algunas soluciones a todos estos posibles problemas.
Interferencias con los puertos USB3.0
Actualmente existe un grave problema al utilizar los puertos USB 3.0 de la Raspberry, estos comúnmente generan muchas interferencias cuando se utilizan, si no utilizas la red Wi-Fi 2.4GHz de tu Raspberry ni ningún dispositivo que utilice dicha frecuencia como puede ser un dongle USB Zigbee no deberías tener ningún problema.
En caso de que utilices la red Wi-Fi 2.4GHz de tu Raspberry, puedes optar por conectarla por cable o bien utilizar la red 5GHz, en caso de utilizar un dispositivo Zigbee tienes dos opciones:
- Alejar los dispositivos.
En mi caso, utilizo un dongle USB Zigbee 3.0 (Conbee II) junto con el software Zigbee2mqtt, al realizar la instalación del SSD, este perdía la posibilidad de comunicarse con cualquier dispositivo Zigbee, todo parecia funcionar y no aparecia ningún error en el archivo «.log», al final, encontré una solución, fue básicamente alejar la Raspberry Pi 4B del HUB sata donde tenía conectado el SSD y alejar el dongle usb Zigbee de la Raspberry y HUB sata, de tal forma que la Raspberry quede entre ambos dispositivos y al ser posible cada hub a 1 o 2 metros de la Raspberry:
De esta forma, todo me funcionó como anteriormente. - Conectar tu SSD al puerto 2.0 de la Raspberry.
Las interferencias de los puertos USB 3.0 pueden llegar a anular por completo la red 2.4GHz de cualquier dispositivo conectado, si la opción 1 no te ha funcionado, puedes conectar el hub sata a los puertos USB 2.0, como también el dongle usb Zigbee en caso de usarlo, esto en mi caso también solucionaba el problema casi por completo, ya que tenía que alejar la Raspberry del HUB sata unos 30cm (el dongle usb Zigbee no necesitaba conectarlo a un hub con alargador y alimentador).
El problema de esta opción es que desaprovecharemos un poco la velocidad del SSD (pulsa aquí para ver nuestro artículo sobre las distintas velocidades de cada puerto USB), aunque perdamos algo de velocidad, mantendremos la ventaja de la vida útil en comparación con una MicroSD ya que los SSD a diferencia de las MicroSD si están diseñados para muchas sobreescrituras y un S.O. (Más abajo te muestro unos test de velocidad realizados con los distintos puertos USB y también con SSD vs MicroSD). - Cambiar de dispositivo.
Por mal que suene, es probable que no nos quede otra opción si no hemos conseguido solucionarlo con ninguna de las anteriores opciones, aunque este problema de interferencias con los puertos USB 3.0 también están presentes en muchos otros dispositivos, con lo cual, merece la pena intentar la opción 1 cambiado de HUB’s sata y cables con mejor protección contra interferencias.
La Raspberry no arranca desde el USB (SSD/HDD)
Es probable que tu Raspberry no consiga arrancar desde el puerto USB por varios motivos, a continuación te muestro algunos de ellos y las posibles soluciones.
- Prueba a cambiar el orden de los dispositivos conectados.
Por algún motivo, en alguna ocasión esto me ha solucionado el problema, lo achacaria a que existe un orden en los puertos USB pero en otras ocasiones ha iniciado sin problema en el mismo orden que anteriormente no, lo importante es que una vez inicia de esa forma, podremos reiniciar sin problema alguno y no tendremos que volvernos locos cada vez que queramos encender o reiniciemos nuestra Raspberry. - Reconecta de la corriente (luz) el HUB sata (SSD/HDD).
Cuando apagamos la Raspberry, esta manda la señal de apagado al SSD/HDD y aunque la reiniciemos es probable que no consiga detectarlo, esto me ha sucedido con distintos HUB’s, así que tan solo tenemos que tener en cuenta que si en lugar de reiniciar apagamos la Raspberry ya sea desde el escritorio o utilizando el comando shutdown, tendremos que reconectar de la luz el HUB donde tenemos conectado el SSD/HDD y seguidamente reconectar a la luz la Raspberry. - Comprueba que no tienes la tarjeta MicroSD con un sistema operativo.
Aunque al seguir los pasos explicados anteriormente la prioridad de arranque pasa a los puertos USB, es probable que exista algún error y haga que intente arrancar desde la tarjeta MicroSD. - Asegúrate de que has grabado correctamente el sistema operativo.
Si es la primera vez, es probable que te hayas saltado algún paso del tutorial y que no se haya realizado la grabación de forma correcta en el SSD/HDD/USB, repite los pasos para asegurarte de que está todo bien. - HUB o SSD/HDD/USB defectuoso.
Es probable que tu HUB no esté funcionando correctamente por algún motivo o que tu SSD/HDD/USB esté dañado, te recomendamos probar estos dispositivos en otro equipo o bien si tienes la posibilidad, probar con otras unidades de almacenamiento o HUB. - Problema de falta de energía.
El consumo de energía de los SSD y HDD puede ser muy elevado para nuestra Raspberry, es por este motivo que en el tutorial te recomendamos utilizar HUB’s con alimentación externa.
También te recomiendo visitar mi artículo sobre las diferencias de velocidad entre SSD vs MicroSD y USB 3.0 vs USB 2.0.