Estoy tratando de lograr algo bastante extraño, así que tengan paciencia conmigo.
Agregué una tarjeta SD externa a mi viejo Droid Mini (básicamente solo para un experimento para ver si podía o no expandir la capacidad de almacenamiento). Actualmente ejecuta Lineage OS 13.
El problema es que el adaptador SD externo consume mucha energía y el núcleo de esta versión (3.4.42) no admite correctamente la suspensión automática.
Puedo obligar al dispositivo a entrar en modo de bajo consumo desvinculando el dispositivo SCSI del dispositivo USB, pero obviamente desaparece si hago eso.
Leí que los montajes de enlace pueden preservar la estructura de directorios de la carpeta de origen incluso si se elimina, pero parece que no puedo hacer que funcione (ver aquí - "Es posible desmontar /algún/dónde, en cuyo caso / otro lugar/donde permanece montado." )
La idea es esperar hasta que el dispositivo USB quede inactivo y luego suspenderlo manualmente desvinculándolo hasta que se vuelva a necesitar. Sin embargo, si desvinculo el dispositivo, el archivo "stat" que estoy usando para monitorear la inactividad TAMBIÉN desaparece, ¿no puedo usarlo para verificar si se solicita actividad?
Entonces, mi idea (quizás tonta) fue hacer un montaje de enlace de la tarjeta externa a un dispositivo USB "virtual" que no desaparece cuando se elimina la fuente y se vuelve a conectar cuando es necesario.
Sin embargo, pequeños pasos, ¿alguna idea de cómo podría preservar una unidad "falsa" para que el sistema funcione? Los montajes de unión no parecen hacer lo correcto aquí .
Gracias
Eso suena realmente loco...
A primera vista, supongo que si bien puede desmontar el directorio de origen de un montaje de enlace, debe mantener conectado el dispositivo subyacente para que funcione un montaje de enlace.
Confirmé mi suposición en experimentos en mi OnePlus 6 (Android Linux 4.9.65) y mi Ubuntu 18.04 (real Linux 4.15.0) y el resultado es el mismo.
En Ubuntu, inserté una unidad flash USB (sistema de archivos ext4) y la monté en /mnt/usb
, y la vinculo montada /mnt/usb/data
en/mnt/bind
/mnt/usb
mientras mantenía la unidad flash conectada y puedo acceder /mnt/bind
sin error. Todos los cambios se /mnt/bind
reflejan en <drive root>/data
(verificado más tarde).Luego desconecté la unidad flash e intenté acceder /mnt/bind
, y recibí este mensaje:
ls: reading directory '/mnt/bind': Input/output error
En mi OnePlus 6, inserté una unidad flash USB a través de OTG (sistema de archivos exFAT). Monté el dispositivo /dev/block/vold/public:8:97
en /data/dev
, y lo monté en /data/dev/Android
enlace /data/bind
.
/data/dev
mientras mantenía el OTG conectado, y todos los datos permanecen /data/bind
y son accesibles sin errores./mnt/media_rw/xxxx-xxxx
desapareció, pero aún puedo acceder a mi montaje de enlace.Luego desconecté la unidad OTG e intenté acceder /data/bind
y obtuve esto:
ls: reading directory `/data/bind`: I/O error
Una nota al margen es que, a diferencia de Ubuntu, el acceso /data/bind
permaneció disponible durante aproximadamente medio minuto, pero los directorios que no visité anteriormente ya no estaban accesibles, solo los directorios que visité antes de desconectar la unidad aún estaban accesibles.
Eso es todo. La conclusión está en el párrafo superior.
iBug
dedo de pez volador
iBug