Ich versuche, etwas ziemlich Seltsames zu erreichen, also haben Sie Geduld mit mir.
Ich habe meinem alten Droid Mini eine externe SD-Karte hinzugefügt (im Grunde nur für ein Experiment, um zu sehen, ob ich die Speicherkapazität erweitern könnte oder nicht). Es läuft derzeit mit Lineage OS 13.
Das Problem ist, dass der externe SD-Adapter sehr stromhungrig ist und der Kernel dieser Version (3.4.42) Autosuspend nicht richtig unterstützt.
Ich kann das Gerät in den Energiesparmodus zwingen, indem ich das SCSI-Gerät vom USB-Gerät entbinde, aber offensichtlich verschwindet es, wenn ich das tue.
Ich habe gelesen, dass Bind-Mounts die Verzeichnisstruktur des Quellordners beibehalten können, selbst wenn er entfernt wird, aber ich kann das anscheinend nicht zum Laufen bringen (siehe hier - "Es ist möglich, /some/where zu unmounten, in diesem Fall / sonst/wo bleibt montiert." )
Die Idee ist, zu warten, bis das USB-Gerät in den Leerlauf geht, und es dann manuell zu unterbrechen, indem es die Bindung aufhebt, bis es wieder benötigt wird. Wenn ich das Gerät jedoch entbinde, verschwindet AUCH die "Stat" -Datei, die ich zur Überwachung des Leerlaufs verwende. Kann ich damit nicht überprüfen, ob Aktivität angefordert wird?
Meine (vielleicht dumme) Idee war also, die externe Karte an ein "virtuelles" USB-Gerät zu binden, das nicht verschwindet, wenn die Quelle entfernt wird, und es bei Bedarf wieder anschließt.
Kleine Schritte, aber irgendwelche Ideen, wie ich vorgehen könnte, um ein "falsches" Laufwerk für den Betrieb des Systems zu erhalten? Bind-Mounts scheinen hier nicht ganz das Richtige zu tun.
Danke, r
Das klingt wirklich verrückt...
Auf den ersten Blick vermute ich, dass Sie zwar das Quellverzeichnis eines Bind-Mounts aushängen können, das zugrunde liegende Gerät jedoch angeschlossen bleiben müssen , damit ein Bind-Mount funktioniert.
Ich habe meine Vermutung in Experimenten auf meinem OnePlus 6 (Android Linux 4.9.65) und meinem Ubuntu 18.04 (echtes Linux 4.15.0) bestätigt und das Ergebnis ist dasselbe.
Unter Ubuntu habe ich ein USB-Flash-Laufwerk (ext4-Dateisystem) eingefügt und es an gemountet /mnt/usb
, und ich binde gemountet /mnt/usb/data
an/mnt/bind
/mnt/usb
, während das Flash-Laufwerk angeschlossen blieb, und ich kann /mnt/bind
ohne Fehler darauf zugreifen. Alle Änderungen werden /mnt/bind
widergespiegelt <drive root>/data
(später überprüft).Dann habe ich das Flash-Laufwerk getrennt und versucht, darauf zuzugreifen /mnt/bind
, und habe diese Nachricht erhalten:
ls: reading directory '/mnt/bind': Input/output error
Auf meinem OnePlus 6 habe ich einen USB-Stick über OTG (exFAT-Dateisystem) eingesteckt. Ich habe das Gerät /dev/block/vold/public:8:97
auf gemountet /data/dev
und per Bind-Mount /data/dev/Android
auf /data/bind
.
/data/dev
, während das OTG angeschlossen blieb, und alle Daten bleiben erhalten /data/bind
und sind fehlerfrei zugänglich./mnt/media_rw/xxxx-xxxx
ist verschwunden, aber ich kann immer noch auf meinen Bind-Mount zugreifen.Als nächstes habe ich das OTG-Laufwerk getrennt und versucht, darauf zuzugreifen, /data/bind
und habe Folgendes erhalten:
ls: reading directory `/data/bind`: I/O error
Eine Randnotiz ist, dass der Zugriff im Gegensatz zu Ubuntu /data/bind
etwa eine halbe Minute lang verfügbar war, aber Verzeichnisse, die ich zuvor nicht besucht hatte, waren nicht mehr zugänglich, nur die Verzeichnisse, die ich vor dem Trennen des Laufwerks besucht hatte, waren noch zugänglich.
Das ist es. Das Fazit steht im obersten Absatz.
iBug
fliegender Fischfinger
iBug