Hay una guía en la wiki oficial para arrancar Linux desde la SD: http://pandorawiki.org/Running_Linux_from_an_SD_card
Yo he personalizado ese método de acuerdo a mis necesidades:
- Me gusta "cacharrear" por lo que seguramente compilaré diversos kernels para implementar algo. Estos kernels los quiero en una partción aparte. (lo cual es más seguro a errores de lectura en la SD)
- Quiero probar otras distros como mínimo Debian Testing, que compartan la partición de los kernels de arranque.
- Voy a instalar bastante software de hacking, desarrollo y ofimática por lo que necesito MÁS ESPACIO y la NAND tiene "sólo" medio Giga.
- En mi $HOME (/home/tunombreaqui) voy a poner ROMS, películas, series, música, y cantidad de documentos que ocuparán muchísimo, además quiero tener mi $HOME separado del resto del sistema
Sí sólo quieres instalarte Linux en la SD sin complicaciones no sigas leyendo, ve al enlace de antes.
Particionar la SD con Gparted y crear un estructura parecida:
Código:
Partición Etiqueta Tamaño Tipo Observaciones
/dev/mmcblk0p1 boot 256Mb ext2 Se montará como /boot, contendrá las imágenes de arranque.
/dev/mmcblk0p2 swap 512Mb swap
/dev/mmcblk0p3 Extendida
/dev/mmcblk0p5 angstrom 2Gb ext3 El mismo SO que tiene la NAND. Se montará como /
/dev/mmcblk0p6 debian 2Gb ext3 En mi caso para probar Debian testing (quizás te interese llamarla slackware).
/dev/mmcblk0p7 data el resto ext3 Se montará como /home, ¡¡cuanto más espacio mejor!!
Lógicamente los tamaños no tienen porqué ser esos, yo creo que son suficientes para cualquiera (también lo eran 640Kb. )
Al insertar la SD en pandora, se montará cada unidad (excepto swap) como /media/ETIQUETA. Hay que insertarla y bajarse el último firmware de la web.
Código:
cd /media/angstrom #IMPORTANTE!!! ESTAR EN ESTE DIRECTORIO.
sudo su
wget openpandora.org/firmware/pandora-rootfs.tar.bz2
tar jxvf pandora-rootfs.tar.bz2
Como puede leerse en la web de la wiki, es bueno tener los kernels en una partición diferente, ese es el motivo de haber creado una partición "boot".
Recommendation:
Put the kernel into another partition than the root FS is located. Reason: In case the root FS partition is flagged "inconsistent" after a system crash or sudden SD card removal, uBoot won't be able to boot from that partition anymore. But the file system cleanup routines can only be run, once the kernel has been booted. Hence it's safer to put the kernel on a different partition.
Es mejor no ponerle un sistema de journaling, por eso está en ext2. Ahora hay que copiar los kernels a la partición nombrada boot y se eliminan de la partición angstrom.
Código:
mkdir /media/boot/angstrom && cp -a boot/* /media/boot/angstrom && rm /media/angstrom/boot/*
Guardando los kernels el diferentes directorios, en vez del mismo /boot, nos va a permitir experimentar con diferentes kernels de la misma o distintas distros sin liarnos.
Editamos el fichero de particiones /media/angstrom/etc/fstab.
Cambiamos el sistema de ficheros raíz después de comentar (#) la linea "rootfs ..."
Código:
/dev/mmcblk0p5 / ext3 defaults,noatime 1 1
Indicar que /boot no es desde la NAND sino desde la primera partición, para ellos se comenta la linea final "ubi1:boot ..." poniéndole una almohadilla delante (#), y se indica el nuevo /boot. Yo lo monto sólo lectura por seguridad.
Código:
/dev/mmcblk0p1 /boot ext2 ro 0 0
Añadir la unidad SWAP.
Código:
/dev/mmcblk0p2 swap swap defaults 0 0
Ahora sólo falta lo que más va a engordar, que no es otra cosa que nuestro directorio HOME, ahí se guardan ROMS, documentos, videos... Todo esto se pondrá en /media/data (que sera nuestro /home)
Código:
/dev/mmcblk0p7 /home ext3 defaults 0 0
Resumiendo, después de comentar lo necesario en /etc/fstab, las lineas que hay que añadir son:
Código:
/dev/mmcblk0p5 / ext3 defaults,noatime 1 1
/dev/mmcblk0p1 /boot ext2 ro 0 0
/dev/mmcblk0p2 swap swap defaults 0 0
/dev/mmcblk0p7 /home ext3 defaults 0 0
Alternativamente, teniendo etiquetadas las particiones, se puede usar la etiqueta "LABEL" en vez de tratar "/dev" directamenta, lo cual deja el código un poco más claro.
Código:
LABEL=angstrom / ext3 defaults,noatime 1 1
LABEL=boot /boot ext2 ro 0 0
LABEL=swap swap swap defaults 0 0
LABEL=home /home ext3 defaults 0 0
Una vez editado el fstab, se borran un par de cosas que sobran
Código:
rm pandora-rootfs.tar.bz2 && rm -fr /media/angstrom/home && mkdir /media/angstrom/home
Ya sólo queda crear un fichero /media/boot/autoboot.txt con la siguiente información
Código:
setenv bootargs root=/dev/mmcblk0p5 rw rootwait vram=6272K omapfb.vram=0:3000K mmc_core.removable=0
ext2load mmc 0:1 0x80300000 angstrom/VUESTRO_FICHERO_uImage
bootm 0x80300000
Reiniciar y... ¡a disfrutar sin trastear en la NAND!.
MUY IMPORTANTE:
Si habéis puesto la partición /boot como sólo lectura (ro en fstab), ANTES DE HACER un opkg upgrade es necesario que la partición vuelva a tener permisos de escritura, porque en el caso que haya un nuevo kernel, no se instalará correctamente y se os quedará chungo al siguiente arranque. Es tan fácil como teclear como root
Código:
mount -o remount,rw /boot
AJUSTES DESPUÉS DE ARRANCAR EL SO:
Si queréis que los PND se instalen en vuestro $HOME (que para eso tiene más espacio), editar los siguientes ficheros:
Código:
/etc/pandora/conf/apps
Sección [autodiscovery] añadir al final de searchpath y notifypath lo siguiente:
:/home/*/pandora/apps
/etc/pandora/conf/desktop
Sección [menu] añadir al final de searchpath
:/home/*/pandora/apps
Con estas lineas, al usar PNDStore, os dará la opción de instalarlo en vuestro $HOME. La ventaja es que no "engordáis" la partición raíz, además si reinstaláis el SO, no perdéis ningún PND instalado ya que estarán todos en vuestro $HOME.
Marcadores