Orange Pi IoT 2G: Sistema operativo de sólo lectura
Orange Pi IoT 2G : Tutorial sistema operativo de sólo lectura
Instalar software:
Desactivar swap:
Instalar UnionFS, que nos va a permitir crear sistemas de ficheros en la RAM (Como en los Live-CD):
Lo hacemos ejecutable con chmod +x /usr/local/bin/mount_unionfs
Editar /etc/fstab y modificar los puntos de montaje a modo sólo lectura (ro) y añadiendo /etc y /var. Debe quedar más o menos así:
Preparamos los directorios:
En este punto nuestra Orange Pi debe ser modo lectura, lo comprobamos asi:
Trabajar con la imagen en descarga:
1.Descargar imagen S.O lista para trabajar en modo Read Only con la Orange Pi IoT 2G:Usuarios:root/orangepiorangepi/orangepi1.1Imagen con Ubuntu 16.04 preparada con el S.O en modo ReadOnly:1.2 Copiarla a SD a partir de 2GB (como root):dd if=imgsurfero75v2RO.img | pv | dd of=/dev/sdb1.3:El wifi está preparado para conectar con el hotstop orangepi/orantgepi, de otro modo tardará 5 minutos en arrancar.Si queremos nuestro hotspot wifi, como root:mount -o remount,rw /nano /etc_org/network/interfaces (modificar conexion wifi)
TUTORIAL, Orange pi IoT 2G READ ONLY HOWTO
Recursos libres en la Opi 2G con S.O en read only:
Instalar software:
apt-get install dphys-swapfil
Desactivar swap:
dphys-swapfile swapoff dphys-swapfile uninstall update-rc.d dphys-swapfile disable
Instalar UnionFS, que nos va a permitir crear sistemas de ficheros en la RAM (Como en los Live-CD):
apt install unionfs-fuseVamos a crear un script que se encargará de montar en un sistema de ficheros unionfs los directorios /etc y /var. Creamos el fichero :
nano /usr/local/bin/mount_unionfsCon el siguiente código:
#!/bin/sh DIR=$1 ROOT_MOUNT=$(awk '$2=="/" {print substr($4,1,2)}' < /etc/fstab) if [ $ROOT_MOUNT = "rw" ] then /bin/mount --bind ${DIR}_org ${DIR} else /bin/mount -t tmpfs ramdisk ${DIR}_rw /usr/bin/unionfs-fuse -o cow,allow_other,suid,dev,nonempty ${DIR}_rw=RW:${DIR}_org=RO ${DIR} fi
Editar /etc/fstab y modificar los puntos de montaje a modo sólo lectura (ro) y añadiendo /etc y /var. Debe quedar más o menos así:
nano /etc/fstab
proc /proc proc defaults 0 0 /dev/mmcblk0p2 / ext4 ro,noatime 0 1 mount_unionfs /home fuse defaults 0 0 mount_unionfs /etc fuse defaults 0 0 mount_unionfs /var fuse defaults 0 0 none /tmp tmpfs defaults 0 0
cp -al /home /home_org
mkdir /home_rw
cp -al /etc /etc_org
mv /var /var_org
mkdir /etc_rw
mkdir /var /var_rw
reboot
En este punto nuestra Orange Pi debe ser modo lectura, lo comprobamos asi:
mountSe tiene que ver algo como esto:
/dev/mmcblk0p2 on / type ext4 (ro,noatime)
unionfs-fuse on /var type fuse.unionfs-fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
unionfs-fuse on /home type fuse.unionfs-fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
unionfs-fuse on /etc type fuse.unionfs-fuse
unionfs-fuse on /var type fuse.unionfs-fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
unionfs-fuse on /home type fuse.unionfs-fuse (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other)
unionfs-fuse on /etc type fuse.unionfs-fuse
Indica que el sistema de ficheros esta en modo lectura
Opcionalmente podemos limpar los directorios de log:
mount -o remount,rw / for f in $(find . -name \*log); do > $f; done cd /var_org/log rm -f *.gz
reboot
Con un reboot ya esta todo listo!
reboot
Si quieres instalar algún paquete ejecuta lo siguiente (Este paso del tutorial original a mí no me ha funcionado):
mount -o remount,rw / apt update apt install stress
Comentarios