Tutorial: Arranque de la Raspberry Pi 4 desde el USB (¡Por fin! Sin SD)

Domótica Tutoriales

Hace un tiempo que os hice un tutorial en el que os mostraba como arrancar la Pi 4 desde el USB, pero, usando una microSD para el boot, algo que con la 3 no tenía mucho misterio. En la Pi4 desde su lanzamiento era algo que estaba pendiente y, ahora, por fin es viable sin necesidad de que la SD tenga que estar metida.

En mi caso, he puesto un SSD para funcionar con el sistema, pero, después de problemas con algunos conversores SATA-USB económicos, he optado por un base con su alimentación externa y así, parece que no tengo problemas con él. Sobre la instalación, tanto si optáis por Home Assistant como con Raspbian y luego instalar Home Assistant Core, la forma en la que grabar el disco SSD es la misma que si fuera una SD. Yo uso Etcher para grabar y ya está. Los cambios tenemos que hacerlos en la Pi4.

NOTA: El firmware que ha salido para poder hacer el arranque por USB está en beta, por lo que podría dar todavía algunos problemas, yo lo tengo puesto y he arrancado sin problemas. No quita que pudiera dar algún fallo, por lo que copia de seguridad y, sobretodo, bajo vuestra responsabilidad.

Hardware a usar para arrancar con la Raspberry Pi4 desde USB

Como he comentado, he tenido algunos problemas con el disco (y se de algunos que también se han quejado de lo mismo). Los conversores USB-SATA no parecen ir muy finos, por lo que si queréis hacerlo, os recomiendo alguna de estas cosas para evitar problemas:

  • Discos duros externos USB SSD: Podéis verlos aquí. Recordad que si solo vais a tener HA y poco más, no necesitaréis mucho espacio. con 16GB ó 32GB es más que suficiente.
  • Carcasas USB para disco. Podéis verlas aquí. Si ya tenéis disco podéis optar por alguna de estas.
  • En mi caso, tenía en casa un lector grande con alimentación propia y he optado por él. Podéis verlos aquí. Como la alimentación de la Pi4 es normalita, he preferido usar el que tenía que lleva fuente de alimentación externa, tengo pinchado el disco y la Pi al lado. Igual no tenéis mucho hueco vosotros, pero, os digo la opción que he usado yo.

Configurar Raspberry Pi 4 para arrancar por USB sin SD

Cuando empecé el tutorial, esta era la versión que tenía del firmware:

Versión Pi4 sin arranque por USB

Y la configuración de la Pi4 donde vemos que el arranque es “0x21” (Si no recuerdo mal, lo tengo para que mire primero por red y después SD, vosotros podéis tenerlo diferente):

Configuración de BOOT_ORDER sin arranque por USB

Lo primero de todo, vamos a actualizar la Pi4 para que nuestro sistema esté actualizado:

sudo apt-get update
sudo apt-get upgrade -y
sudo rpi-update

Os preguntará para actualizar, a lo que tendréis que contestar “y”.

Actualización de la Pi4

Cuando le dais a “y” debería actualizar de esta forma:

Actualización de la Pi4

Una vez hecho eso, reiniciamos:

sudo reboot

Una vez que arranca la Pi4, tenemos que volver a entrar por SSH a ella y lanzamos el comando para actualizar el bootloader:

sudo apt install rpi-eeprom -y

Ahora le diremos que use el firmware beta, que es el que incluye el arranque por USB:

sudo sed -i 's/critical/beta/g' /etc/default/rpi-eeprom-update

Y, finalmente, instalamos el firmware en la Pi4 para que en el siguiente arranque, lo use.

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin

La salida de los comandos anteriores debería ser algo así:

Actualización del firmware de la Pi4 para poner la beta con arranque USB

Ahora, como nos indica, nos toca reiniciar para que se haga efectiva. Si vuestro sistema es nuevo y tenéis el disco preparado y es el primer arranque, lo pincháis al USB y debería funcionar. Si, por el contrario, tenéis un sistema ya funcionando, seguid leyendo para ver los pasos que he tenido que hacer.

sudo reboot

Una vez que ha reiniciado, podemos comprobar tanto la versión. Ojo, si leeis el tutorial tiempo después de estar publicado, podría apareceros una versión posterior a la de Mayo, pero sería igualmente válido si el BOOT_ORDER es el correcto, ahora debe ser “0xf41” lo que indica que, mira el USB y si no hay nada, mira en la SD. Es decir, que no es excluyente, solo le han dado prioridad al USB, aquí, mi salida:

Versión de Firmware y configuración de Raspberry Pi4 con arranque desde USB

Actualizar nuestro sistema actual para que no necesite la SD (Si es sistema nuevo, no sigas leyendo)

NOTA: Si tienes el sistema totalmente en la SD, necesitarías hacer más cosas, esta parte del tutorial es para adaptar los que actualmente ya tienen el root en el USB y quieren quitarse la SD. Si queréis un tutorial completo para migrar de SD a USB, ponedlo en los comentarios y lo haré.

Si usasteis el anterior tutorial tenemos algo que cambiar, ya que, para evitar problemas de kernel, era necesario que la partición boot de nuestro sistema siguiera funcionando desde la SD. Ahora, ya no es necesario ya que no tendremos ninguna SD pinchada, por lo que tenemos que copiar lo que ahora hay en /boot a la partición 1 de nuestro disco y posteriormente cambiar el fichero /etc/fstab para montarlo desde el SSD. Para ello, podemos hacerlo así:

sudo mount /dev/sda1 /mnt/

Ahora copiamos el contenido de /boot a la partición:

sudo cp /boot/* /mnt/ -a

Tenemos que mirar los ID de las particiones para poder usar la correcta (ojo, esto cambia en cada sistema, NO copiéis mis números). Para ver los ID ejecutamos:

sudo blkid

Y debe verse algo así:

/dev/sda1: LABEL_FATBOOT="boot" LABEL="boot" UUID="4BBD-D3E7" TYPE="vfat" PARTUUID="d3f1cd9b-01"
/dev/sda2: LABEL="rootfs" UUID="45e99191-771b-4e12-a526-0779148892cb" TYPE="ext4" PARTUUID="d3f1cd9b-02"

Y ahora, si miramos nuestro /etc/fstab tenemos que la partición boot no se corresponde a la de /dev/sda1, por lo que tendremos que cambiarla para que sea la correcta y quede algo así:

fstab con boot en la SD

Debería quedar así:

fstab con el boot y root desde el USB

ahora, salvamos el documento y, ahora apagamos la Raspberry Pi4:

sudo poweroff

Quitamos la alimentación, retiramos la SD y volvemos a alimentar, nos fijaremos en las luces de nuestro SSD a ver si se mueven y, en caso de que no arranque, volveremos a poner la SD, ya que, si no es capaz de arrancar desde el USB, lo debe seguir haciendo desde la SD.

En principio, ya está, no deberíais tener problemas. Antes de publicar lo he hecho con la mía y no he tenido ningún problema. En los reinicios, si queréis quedaros más tranquilos, podéis hacer apagados, quitar corriente y ponerla de nuevo.

¿Quieres montarte tu propio sistema Smart Home?

¿Te gustaría empezar poco a poco teniendo Google Home, Alexa o Home Assistant para controlar las luces, calefacción y otros electrodomésticos de la casa? ¡Te ayudamos! Entra en nuestro Grupo de Telégram de Domótica y también puedes entrar a nuestro Foro de Domótica donde podrás empezar a leer y preguntar tus dudas. Además, si quieres estar al tanto de las ofertas de domótica que salen a diario para poder hacerte un sistema de domótica low cost, entra a nuestro Canal de ofertas de domótica y no te perderás ni una o si lo prefieres y no tienes Telegram, puedes entrar a nuestra página de ofertas de domótica o Smart Home en Facebook. ¡Síguenos también en nuestro Facebook, Twitter o Instagram! ¡Te esperamos!

15 Comentarios

  1. Adoldo

    Eduardo podías hacer un vídeo tutorial para que se vea mejor todo el conjunto de hardware , software y su ejecución gracias y un saludo

    Reply
    • eduardo

      Oki! lo intentaré

      Reply
  2. Juan

    Queremos tutorial completo para migrar de SD a USB 🙂

    Reply
    • eduardo

      Se intentará 🙂

      Reply
  3. xexu

    Esto seria para poder arracar desde USB con cualquier sistema o solo con raspbian?

    Reply
    • eduardo

      Cualquier sistema, es un cambio en el firmware de la Pi para que mire en el USB antes que en la SD

      Reply
      • xexu

        Perfecto gracias.

        Reply
        • eduardo

          Nada!

          Reply
  4. Vicente Machés

    Hola.
    Despue de hacer el sudo rpi-update y reiniciar; ya no me arranca. Hace 4 parpadeos el led verde y luego unos rapidos, asi en secuencia.
    La luz de la carcasa del disco duro tampoco se enciende,, tenía la instalación con el mix SD y SSD.
    ¿QUe puedo hacer? No querria perder la instalacion del home assitant y todo lo demas.
    Gracias!

    Reply
    • eduardo

      Con la SD metida no arranca?

      Reply
  5. Jorge MI

    Eduardo, ¿la próxima versión de raspbian vendrá con arranque por usb o habrá que seguir modificando la eeprom?

    gracias.

    Reply
    • eduardo

      Supongo que el stock nuevo de la Pi4 ya vendrá con la nueva eeprom, el problema es que no puedes saber antes de comprar si es una Pi4 posterior o un stock anterior.

      Reply

Contestar

Tu e-mail no será publicadoRequired fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Lost Password

Registro