¿Qué es rootfs? ¿Puedo realizar cambios persistentes en el sistema de archivos raíz de mi dispositivo?

Cuando abro un emulador de terminal y ejecuto el mountcomando, indica que el sistema de archivos raíz de mi dispositivo Android ( /) es del tipo de sistema de archivos rootfs. ¿Qué es rootfs? ¿Puedo escribirle? ¿Se mantendrán mis cambios incluso después de apagar el dispositivo?


Nota: si es un desarrollador de ROM de Android que desea agregar archivos a su ROM rootfs, consulte la pregunta relevante de Unix.SE en su lugar.

Relacionado: ¿Cómo desempaquetar y editar boot.imgpara portar ROM? : las respuestas allí explican cómo obtener y editar el boot.imgarchivo, lo que permite cambiar de forma persistente el contenido del directorio raíz del dispositivo.

Respuestas (1)

¿Qué es rootfs?

es un initramfs. Básicamente, es una unidad RAM precargada. Se rellena previamente con algún contenido en el momento del arranque, generalmente de un cpioarchivo que se ha compilado en el kernel.

¿Puedo escribirle?

  • Una forma de realizar cambios en su archivo rootfses desempaquetar el cpioarchivo, realizar sus cambios y volver a empaquetar el archivo. Es casi seguro que su dispositivo tendrá que estar rooteado antes de poder hacer esto. Además, necesitarás las herramientas necesarias.

  • Alternativamente, puede realizar cambios en la rootfscopia que se carga en la RAM; pero, si lo hace, hay cuatro trampas.

    1. Primero debe rootear su dispositivo.

    2. Luego, debe volver a montar el sistema de archivos como lectura-escritura.

    3. No escriba demasiado en el rootfs; si lo hace, consumirá demasiada memoria RAM y su dispositivo se ralentizará.

    4. El problema más grande es que los archivos que cree desaparecerán cuando apague o reinicie. Por favor, sigue leyendo.

¿Se mantendrán mis cambios incluso después de apagar el dispositivo?

No. Si crea o modifica archivos en rootfs, sus cambios se desharán cuando apague o reinicie.

¿Qué debo hacer en lugar de escribir en el sistema de archivos raíz?

Guarde sus archivos en algún lugar debajo /storagede o /datao /systemen su lugar. Puedes elegir cualquiera de los tres. En algún lugar debajo /storagees probablemente lo mejor, ya que esa es la opción más común.

¿Por qué mi dispositivo no actúa como un dispositivo Linux normal y no monta un sistema de archivos normal respaldado por disco en /?

No sé.

Sospecho que la respuesta es la siguiente: Android no es una distribución completa de Linux. No incluye una glibc completa, probablemente no sea completamente compatible con LSB, y no se siente obligado a proporcionar las sutilezas que la mayoría de las distribuciones de Linux brindan (por ejemplo, un sistema de archivos raíz respaldado por disco).

En otro lugar , Gilles escribe:

La mayoría de los sistemas Linux de escritorio tienen un pequeño initramfs que contiene suficientes programas y archivos de configuración para montar el sistema de archivos raíz real, que luego se monta en /, reemplazando el initramfs. Android, como algunos sistemas Linux integrados, mantiene el initramfs montado para siempre. initramfs de Android contiene solo /inity adbdalgunos archivos de configuración.


Referencias:

¿Solo el apagado borra el contenido? ¿El reinicio también lo borra?
Reiniciar también lo borra. Ahora he editado la respuesta para decirlo.