13 ago 2013

Raspberry Pi, Usando un Pendrive (I). Empieza el baile.


Después de mucho tiempo vuelvo a escribir. No es que haya abandonado, sino que me crecen los problemas. Continuo por donde lo deje y explico los muchos problemas que me he encontrado.

Una vez tuve Xbian instalado y funcionando sobre la SD de 8 Gigas que había comprado, leí en algún lado que era posible hacer funcionar la Raspberry Pi desde un pendrive, siempre y cuando mantengas una SD para el arranque.



Investigando y leyendo aprendí algunas cosas.
  • La Raspberry Pi necesita siempre una tarjeta SD para iniciarse, de ella lee los parámetros de arranque. 
  • Una vez leído el arranque podemos hacer saltar la Raspberry Pi a otro dispositivo para que siga la carga del SO.
  • Para ello solo hay que mantener el directorio /boot en la SD y el resto en el pendrive o incluso en un disco duro.
  • Cuando se instala cualquier SO para Raspberry Pi, te crea 2 particiones en la SD, una con la /boot y otra con el resto del SO.  

Vista de las 2 particiones que se crean en la SD con la instalación original.


Con todo esto, puedo utilizar una SD mas pequeña para el arranque, tengo una de 1G y un par de 2G, y usar alguno de los pendrives de 4G que tengo en los cajones para el SO, y así puedo reutilizar la SD de 8G para el móvil, que siempre anda pelado de espacio.

Además, si la instalación original de Xbian o Raspbmc ya te crea dos particiones en la SD, solo habría que clonar la partición del SO, e indicarle en la /boot que siga leyendo por el pendrive.

Hasta aquí la teoría, ahora empieza la practica que no siempre es tan fácil.

Lo primero fue usar una SD de 1G que ya tenia y procedí a instalarle la imagen de Xbian. Una vez hecho esto coloque la SD en la Raspberry Pi para que proceda a realizar la preinstalación, ya que la instalación no es completa.

Después de eso puedes ver que en la SD hay 2 particiones, una de 36 MB en Fat, que es la de arranque, /boot, y otra de 979 MB en Ext4, que es el resto del SO.
Para continuar le hice una imagen a la partición de SO y la volqué al pendrive.

Primer punto a tener en cuenta, si hago una imagen de la partición de la SD y la restauro a lo bruto en todo el pendrive, me quedo con un pendrive de 4G pero con solo 979Mb disponibles, que es el tamaño de la partición original, no redimensiona, lo que te deja con el mismo problema de espacio. Lo mejor es hacer una partición en el pendrive del tamaño que necesitemos y una vez restaurada la imagen sobre esa partición ya se puede redimensionar con Gparted por ejemplo.

Una vez tenemos el pendrive listo solo queda decirle en la SD que siga el arranque por el pendrive.
Para esto hay un archivo dentro  de la partición de arranque que se llama "cmdline.txt".

Vista del archivo cmdline.txt


Lo podemos editar en el ordenador o bien si ya hemos iniciado la Raspberry Pi, conectándonos por SSH a ella.
Lo principal que hay que cambiar es donde pone

root=/dev/mmcblk0p2

y sustituirlo por
root=/dev/sda1

Esa orden le indica a la Raspberry Pi por donde debe seguir cargando el SO, en mi caso es sda1, lo compruebo en la Raspberry Pi antes de poner nada.

Y con esto en teoría debería iniciar desde el pendrive.

Si no lo hiciese, con volver a cambiar la ruta a "mmcblk0p2"  seria suficiente para que nos volviese a funcionar desde la SD.

Aunque parece que con esto es todo, aun quedan algunas cosas.
Mi pelea con el UUID, el cambio de versión y el formato btrfs.

Continuara...


No hay comentarios:

Publicar un comentario