Manual para aumentar el rendimiento de la Raspberry mediante arranque mixto SD y HD (o USB)

Sección Unicamente para Tutoriales y Guías
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

Para ayudar a @brosvv creé un manual sobre cómo instalar NEXTCLOUD-12, PHP-7 y MariaDB-10.1 en la Raspberry, que se puede consultar enviewtopic.php?f=6&t=6319, pero pensando sobre ello me di cuenta que uno de los problemas más decepcionantes para los usuarios es la lentitud de lectura y grabación en las tarjetas SD: que es donde se ubica, por defecto, el arranque y el sistema operativo de la Raspberry. Este inconveniente hace que el sistema se quede congelado cuando se le pide un rendimiento extra y sea desechado para algunos cometidos por su bajo rendimiento. En el caso de un servidor de tipo Nube, como es NextCloud, el problema se agrava aún más debido a que es bastante pesado.

Existe un manual de @FernandoJDuran que se puede consultar en viewtopic.php?f=6&t=1901 que usa la habilitación del modo USB BOOT (program_usb_boot_mode=1) para solucionar este problema. Pero, al parecer, no se puede deshacer esta acción y hay algunos reportes sobre comportamientos extraños, aunque la inmensa mayoría se deban más a la falta de experiencia y errores de los usuarios que a fallos de hardware.

Hay una solución intermedia, no invasiva y mucho más fácil de implementar, que nos ayudará a resolver el problema: Usar la partición de arranque (boot) de la tarjeta e instalar la partición de trabajo (root) en un USB o HD. La partición boot apenas ocupa 41MB de los cuales sólo la mitad están usados y la partición root, que es la que realmente gestiona el sistema, puede hacerse tan extensa como capacidad tenga el medio que la soporte. También tenemos otras ventajas: desgaste casi nulo de la tarjeta SD, gran aumento de la velocidad de lectura/escritura, facilidad de migración de la partición root a nuevos medios sin pérdida de datos y, si tenemos varios USBs o HDs con diferentes sistemas o servicios implementados en ellos, capacidad de alternancia sin necesidad de cambiar la tarjeta SD.

Como es necesario usar Linux, y pensando que no todos tenéis un ordenador con este sistema operativo, he utilizado la Raspberry para este cometido. El proceso es muy simple, aunque algo tedioso debido a la lentitud de copia.

Material necesario: 1 Raspberry, 2 tarjetas SD, 1 Adaptador USB para tarjeta SD, 1 USB o HD (Tened en cuenta que si usáis HD debe tener alimentación adicional externa o estar conectado a un Hub USB).

EMPEZAMOS
Las dos tarjetas SD deben estar grabadas y configuradas:
La primera (SD1) con la imagen “2017-06-21-raspbian-jessie.img” y la segunda (SD2) con la imagen que queramos, puede ser la versión completa, lite u otra, la única condición es que tenga partición de arranque boot. La SD1 la usaremos como tarjeta maestra para hacer la copia de la partición root de la SD2 al HD (o USB) y configurar la boot.


Una vez introducida la SD1 y encendida la Raspberry.

INSTALAMOS LOS PROGRAMAS NECESARIOS

Gestor de particiones
$ sudo apt-get install gparted

Visor de progreso para dd (No es necesario, pero así podremos ver cómo avanza la instalación)
$ sudo apt-get install pv

SELECCIÓN DE PARTICIONES
Ahora introducimos la SD2 con su correspondiente adaptador y el HD (o USB).

$ df –h

Imagen

En nuestro caso, vemos que el HD se ha establecido como “/dev/sda”, siendo “/dev/sda1” la única partición y que la SD2 queda como “/dev/sdb” con dos particiones una en “/dev/sdb2” de 15G (root) y otra en “/dev/sdb1” de 41M (boot).

COPIA DE PARTICIONES

ADVERTENCIA: En el paso siguiente se borrará completamente el disco HD formateándolo a ext4 y copiando toda la información que hay en la partición “/dev/sdb2” de la tarjeta SD2 a la partición “/dev/sda1” del disco duro. Por favor, poned atención a la estructura porque “if” identifica el origen y “of” es el destino.

$ sudo su
$ dd bs=1M if=/dev/sdb2 |pv|dd of=/dev/sda1

Tardará en finalizar (Según el tamaño de la partición sdb2 tardará más o menos, con 15GB tarda unos 53-60m).

GESTION DE LAS PARTICIONES (Para eliminar errores)

Abrimos Gparted
Inicio -> Preferencias -> GParted

Buscamos el disco "/dev/sda", pero vemos que nos da un error, no os preocupéis porque es normal.

Imagen

Pulsamos botón derecho sobre la imagen y elegimos “Desmontar”. Veréis una zona amarilla y una zona blanca (es lo que hemos volcado desde /dev/sdb2), seguidas de una zona gris (zona que no ha sido direccionada durante la copia).

Imagen

Es un problema generado por la tabla de particiones debido a la diferencia de tamaño entre la partición origen y destino. La solución a este problema es muy simple, pero requiere varias acciones.

Disminuir la partición /dev/sda1

Pulsamos botón derecho sobre "/dev/sda1" y elegimos “Redimensionar/mover”

Desplazamos el deslizador un poco hacia la izquierda

Imagen

Imagen

Pulsamos “Redimensionar/mover”

Aplicamos

Imagen

Imagen


Ahora hay que seguir los mismos pasos, pero aumentando el tamaño de la partición al máximo.

Imagen

Y el resultado debe ser este

Imagen

Después de todos estos pasos, en los que sólo hemos tardado un minuto, habremos corregido facilmente el problema de la tabla de particiones que se produjo al copiar la SD en el HD.

ASIGNAR PARTICION DE ARRANQUE

Para que todo esto funcione debemos asignar la partición de arranque, que siempre será “/dev/sda1”. Lo primero de todo, hacer copia de seguridad del archivo que vamos a modificar.

$ sudo cp /media/pi/boot/cmdline.txt /media/pi/boot/cmdline-viejo.txt

Editarlo
$ sudo nano /media/pi/boot/cmdline.txt

El archivo contiene algo parecido a esto.

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=8315c6b2-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

Tenéis que sustituir “root=PARTUUID=8315c6b2-02” por la ruta donde estará la partición del HD “root=/dev/sda1”

ATENCIÓN: No importa si la partición del disco duro era “/dev/sda1” o “/dev/sdb1” o “/dev/sdc1”… Siempre debe ser sustituida por “root=/dev/sda1” ya que será la unidad asignada por defecto al arrancar.

Guardamos y cerramos el archivo.

Ahora ya sólo nos queda apagar, quitar la tarjeta SD1, poner la SD2 y empezar a usar el sistema.
Si nos fijamos, comprobaremos que la carga se realiza sobre el disco duro y no sobre la tarjeta SD, además de un considerable aumento de la velocidad de respuesta.


TERMINAMOS
:mareado

Espero haberos ayudado con esta solución y que os sea útil, como lo és para mí, pero si alguien tiene alguna duda, sugerencia o comentario no dudeis en hacermelo saber.

Abrazos
:guiño2
Última edición por caylus el 04 Jul 2017, 11:39, editado 1 vez en total.
Estos usuarios agradecieron al autor caylus por el mensaje:
pruna1971
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
obelix306
Pi Omega
Pi Omega
Mensajes: 40
Registrado: 03 Jun 2017, 20:24
Agradecido: 0
Agradecimiento recibido: 0

Gracias, buen aporte.
brosvv
Pi Omega
Pi Omega
Mensajes: 70
Registrado: 21 Jun 2017, 12:11
Agradecido: 0
Agradecimiento recibido: 0

Buenos dias ¡¡¡
Genial Caylus¡¡¡¡ no me cabe la menor duda de que este manual es perfecto para mi, para poder instalar el Sistema Operativo y que ademas después de instalar Nexcloud no me haga falta hacer ninguna configuración adicional ya que estaría apuntando al disco duro, no tengo palabras para decirte que eres un AS en esto y lo que estoy aprendiendo contigo es muchisimo. Da por seguro que seguiré minuciosamente este manual. Eres una referencia.

Muchas gracias

Un saludo
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

De nada, es un placer ayudar. :D

Abrazos
:guiño2
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
Avatar de Usuario
eneteache
Pi Beta
Pi Beta
Mensajes: 182
Registrado: 10 Abr 2017, 20:13
Agradecido: 0
Agradecimiento recibido: 0

Al fin he conseguido poner en práctica este tutorial, aunque con unos apaños personales ya que lo estaba haciendo en la partición de un disco duro y la copia la he hecho desde mi portatil con un Kubuntu :avergonzado

Muchas gracias!!!
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

Es un placer haberte ayudado. :D

Abrazos
:guiño2
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
Avatar de Usuario
eneteache
Pi Beta
Pi Beta
Mensajes: 182
Registrado: 10 Abr 2017, 20:13
Agradecido: 0
Agradecimiento recibido: 0

Por cierto debo aclarar que no hace falta hacerlo directamente en la Raspberry. Se puede hacer desde un PC normal. Lo digo más que nada para aquellos que entienden un poco más de sistemas y pueden adaptar este tutorial... ya que yo por lo menos me he visto un poco apurado cuando he leído que necesito dos tarjetas microSD y un adaptador USB para una de las microSD. Por lo demás todo genial!!
Memnoch
Pi Newbie
Pi Newbie
Mensajes: 4
Registrado: 12 Nov 2016, 22:02
Agradecido: 0
Agradecimiento recibido: 0

Gracias por el tuto muy bien explicado, espero me puedas ayudar un poco más, tengo una memoria de 2 gigas que quisiera utilizar para el boot pero no consigo hacer que funcione. Lo que hice fue en una sd de 16 grabar el sistema normalmente, después copiar los archivos a una usb y funciona bien pero ahora lo que busco es liberar la sd de 16 gigas para usarla en otra cosa y usar la de 2 con la partición boot pero no me funciona es posible hacerlo?
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

Memnoch escribió:Gracias por el tuto muy bien explicado, espero me puedas ayudar un poco más, tengo una memoria de 2 gigas que quisiera utilizar para el boot pero no consigo hacer que funcione. Lo que hice fue en una sd de 16 grabar el sistema normalmente, después copiar los archivos a una usb y funciona bien pero ahora lo que busco es liberar la sd de 16 gigas para usarla en otra cosa y usar la de 2 con la partición boot pero no me funciona es posible hacerlo?
Sí, creo se puede hacer, aunque nunca lo he intentado. En este momento no puedo hacer ninguna simulación porque estoy inmersa en entrevistas de trabajo, pero si puedes esperar ocho o nueve días te lo digo con exactitud. También lo puedes intentar, la partición boot es la que te interesa y por tanto sólo tendrías que sustituir “sdb2” por “sdb1” y probar, perono debes redimensionar. Con eso debería bastar.

Abrazos
:guiño2
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
Macoy
Pi Omega
Pi Omega
Mensajes: 53
Registrado: 20 Abr 2017, 01:10
Agradecido: 0
Agradecimiento recibido: 0

Hola!

Esto lo recomiendas solo para raspbian o para cualquier imagen como kodi o recalbox?

Gracias
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

Macoy escribió:Hola!

Esto lo recomiendas solo para raspbian o para cualquier imagen como kodi o recalbox?

Gracias
Te pido perdón por el retraso en mi respuesta.

Puedes hacerlo perfectamente con cualquier imagen que use una partición de arranque BOOT. Yo lo estoy utilizando con KodiPlusStarPremiumV11.1SummerEdition de :arrow: @kamber y funciona estupendamente.

Abrazos
:guiño2
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

kamber escribió:
caylus escribió:
Macoy escribió:Hola!

Esto lo recomiendas solo para raspbian o para cualquier imagen como kodi o recalbox?

Gracias
Te pido perdón por el retraso en mi respuesta.

Puedes hacerlo perfectamente con cualquier imagen que use una partición de arranque BOOT. Yo lo estoy utilizando con KodiPlusStarPremiumV11.1SummerEdition de :arrow: @kamber y funciona estupendamente.

Abrazos
:guiño2
Que buena publi me das guapa!!
No necesitas publicidad porque tu trabajo es estupendo :mrgreen: y yo sólo digo la realidad de ello. :ponpon

Abrazos
:guiño2
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
Macoy
Pi Omega
Pi Omega
Mensajes: 53
Registrado: 20 Abr 2017, 01:10
Agradecido: 0
Agradecimiento recibido: 0

caylus escribió:
kamber escribió:
caylus escribió:
Te pido perdón por el retraso en mi respuesta.

Puedes hacerlo perfectamente con cualquier imagen que use una partición de arranque BOOT. Yo lo estoy utilizando con KodiPlusStarPremiumV11.1SummerEdition de :arrow: @kamber y funciona estupendamente.

Abrazos
:guiño2
Que buena publi me das guapa!!
No necesitas publicidad porque tu trabajo es estupendo :mrgreen: y yo sólo digo la realidad de ello. :ponpon

Abrazos
:guiño2
Tendré que probarlo entonces :D
Avatar de Usuario
jumped
Pi Beta
Pi Beta
Mensajes: 167
Registrado: 11 Abr 2017, 13:05
Agradecido: 2 veces
Agradecimiento recibido: 3 veces

Muchas gracias, lo probaré con OSMC y Owncloud/Nextcloud.
Avatar de Usuario
jumped
Pi Beta
Pi Beta
Mensajes: 167
Registrado: 11 Abr 2017, 13:05
Agradecido: 2 veces
Agradecimiento recibido: 3 veces

Hola, se podría realizar con una sD que tuviera varios arranques en la misma, es decir, kodi, raspbian, recalbox por ejemplo?
En tal caso, cómo sería ya que no sólo aparecen dos particiones en la sD, aparecen unas cuantas más. Alguien lo ha probado?
Gracias.
Avatar de Usuario
drewdty
Pi Destroyer
Pi Destroyer
Mensajes: 753
Registrado: 05 Dic 2016, 22:47
Agradecido: 0
Agradecimiento recibido: 4 veces

yo he echo multi boot de raspbian y kodi
creo que con retropie no se puede
con recalbox creo que si
pegale un vistazo a NOOBS
https://www.raspberrypi.org/downloads/
Imagen
La madre de todas las ciencias es la paCIENCIA
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

jumped escribió: 01 Oct 2018, 23:04 Hola, se podría realizar con una sD que tuviera varios arranques en la misma, es decir, kodi, raspbian, recalbox por ejemplo?
En tal caso, cómo sería ya que no sólo aparecen dos particiones en la sD, aparecen unas cuantas más. Alguien lo ha probado?
Gracias.
No. Este tipo de arranque es para un único sistema y, tal como te ha dicho @drewdty , tu mejor opción es NOOBS.

Abrazos.
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
Avatar de Usuario
jumped
Pi Beta
Pi Beta
Mensajes: 167
Registrado: 11 Abr 2017, 13:05
Agradecido: 2 veces
Agradecimiento recibido: 3 veces

Hola, no si la tarjeta ya la tengo hecha, la hice ayer con Noobs metiéndole raspbian, libreelec y recalbox, lo que quería era que apuntará al USB para trabajar en él y que el arranque solo estuviera en la sD. Siendo el arranque de uno solo si lo conseguí en su día, pero con tantas particiones en esta tarjeta multiboot no sé qué particiones copiar con el gparted y cuál redireccionar al disco duro.
caylus
Pi Master
Pi Master
Mensajes: 420
Registrado: 22 Jun 2017, 09:27
Agradecido: 33 veces
Agradecimiento recibido: 71 veces

jumped escribió: 02 Oct 2018, 11:00 Hola, no si la tarjeta ya la tengo hecha, la hice ayer con Noobs metiéndole raspbian, libreelec y recalbox, lo que quería era que apuntará al USB para trabajar en él y que el arranque solo estuviera en la sD. Siendo el arranque de uno solo si lo conseguí en su día, pero con tantas particiones en esta tarjeta multiboot no sé qué particiones copiar con el gparted y cuál redireccionar al disco duro.
Bueno, puedes intentarlo:

Primero averigua hacia que partición apunta el arranque de NOOBS

$ sudo nano /media/pi/boot/cmdline.txt

Mira donde pone

root=XXXXXXXXXXXXXX

Ahí es donde está la partición de arranque. Ahora averigua cómo están montadas las particiones y sus nombres UUID.

$ ls -l /dev/disk/by-uuid/

Así sabrás a cuál apuntar cuando copies las particiones.

Espero que te haya servido de ayuda.

Abrazos
La chica de la lluvia.
Life isn't about waiting for the storm to pass. It's about learning to dance in the rain.
Vivian Greene
Imagen
Avatar de Usuario
jumped
Pi Beta
Pi Beta
Mensajes: 167
Registrado: 11 Abr 2017, 13:05
Agradecido: 2 veces
Agradecimiento recibido: 3 veces

Ok, muchas gracias. Lo probaré este fin de semana, espero que no me lie. Con un sistema operativo y gparted la verdad es que es sencillo, solo copiar una de las particiones y la otra apuntando al disco duro.
Un saludo.
Responder