Crouton: Zyklisches Einhängen des Dateisystems beim Ausführen von chroot von einem USB-Wechseldatenträger

Erstellt am 18. Feb. 2015  ·  4Kommentare  ·  Quelle: dnschneid/crouton

System:

HP Chromebook 11 (ARM)

Voraussetzungen:

Croutons herstellen mit:

sudo sh crouton -p /media/removable/MyDrive/ -r trusty -t xfce

wobei MyDrive ein austauschbares USB-Gerät ist.

Reproduktionsschritte:

sudo sh -e /media/removable/MyDrive/startxfce4
...
chroot verlassen (abmelden)
Versuch, das Laufwerk in der App "Dateien" auszuwerfen - erfolglos
Versuchen Sie, das Laufwerk über die Shell auszuhängen

Erwartetes Ergebnis:

Laufwerk ausgehängt

Tatsächliche Ergebnis:

In der App "Dateien" zeigt ChromeOS ein Dialogfeld an, das besagt, dass Sie warten müssen, bis ein Laufwerkvorgang abgeschlossen ist
Von der Shell aus sagt umount, dass das Gerät beschäftigt ist, und gibt diesen Pfad an:

/run/crouton/media/removable/MyDrive/chroots/trusty/var/host/media/removable/MyDrive/chroots/trusty/var/host/media/removable/MyDrive

ist noch im Einsatz. Infolgedessen kann das Laufwerk nicht sicher aus dem System entfernt werden, und das Entfernen führt auf unsichere Weise zu Beschädigungen des Dateisystems, die den Chroot funktionsunfähig machen. Beachten Sie den schönen Dateisystemzyklus.

Problemumgehung

Mounten Sie das Laufwerk an einem nicht standardmäßigen Speicherort, der nicht automatisch im Chroot gemountet wird.

Ich dachte nur, ich würde dies melden, es ist ein interessantes Problem mit USB-Laufwerken, das aber ziemlich leicht vermieden werden kann.

bug

Hilfreichster Kommentar

Seltsam, ich bin mir nicht sicher, warum die Mountpoints auf /media zurückspiegeln ... das ist der ganze Sinn des /run/crouton-Schattenverzeichnisses. Danke, dass du das angehoben hast.

Alle 4 Kommentare

Seltsam, ich bin mir nicht sicher, warum die Mountpoints auf /media zurückspiegeln ... das ist der ganze Sinn des /run/crouton-Schattenverzeichnisses. Danke, dass du das angehoben hast.

Ich denke, /media ist der Standard-Mount für /dev/[removable devices] und wie bei Power Management und Networking kann das Host-Betriebssystem erkennen, ob etwas angeschlossen oder entfernt ist, aber da der Chroot auch das kann oder sogar herunterfährt, kann das Host denkt, dass es möglicherweise nicht in einem sicheren Zustand zum Auswerfen ist.

Kann das Aushängen des Chroot das Auswerfen von /media-Geräten erzwingen? Wie funktionieren USB und SD-Karten mit mehreren gleichzeitig angemeldeten Chrome-Benutzern, wobei der erste Desktop-Benutzer auch einen Chroot hat? Wer ist Eigentümer und was sind Dauerwellen?

Ich habe das gleiche Problem mit dem neuesten Crouton auf Acer C720:

Crouton: Version 1-20151013174138 ~ Master: 488c9e21

Die temporäre Lösung (wie vorgeschlagen) besteht darin, das Verzeichnis /media/removable/[card]/chroots umzubenennen
zu etwas anderem, zum Beispiel:
/media/removable/kingusb3/chroots_new

und starte dann die chroot mit:

sudo sh /media/removable/kingusb3/bin/enter-chroot -c /media/removable/kingusb3/chroots_new -n trusty

Dies hat jedoch den Nachteil, dass wenn ich versuche, die Chroot mit dem Befehl zu aktualisieren:

sudo sh ~/Downloads/crouton -u -n trusty -p /media/removable/kingusb3/chroots-new/

Das Skript Crouton sucht immer nach einem "Standard"-Chroots-Verzeichnis:

/media/removable/kingusb3/chroots-new/chroots

und endet mit einem Fehler:

/media/removable/kingusb3/chroots-new/chroots/trusty existiert nicht; kann nicht aktualisiert werden.

Ich denke, es wäre sehr nützlich, dieses zyklische Montageproblem zu beheben

Ich bin auf dieses Problem mit der neuesten Version von Crouton mit dem Speicherpfad "/media/removable/PNY64" gestoßen. Die von kiorpesc vorgeschriebene Problemumgehung war effektiv, und das folgende Shell-Transkript zeigt die Schritte, die ich unternommen habe.

chronos<strong i="6">@localhost</strong> /usr/local/bin $ sudo sh ./crouton -V
Downloading latest crouton installer...
######################################################################## 100.0%
crouton: version 1-20170315143304~master:95589555

chronos<strong i="7">@localhost</strong> /usr/local/bin $ sudo mkdir -pv /var/run/mount/PNY64
mkdir: created directory ‘/var/run/mount/PNY64’

chronos<strong i="8">@localhost</strong> /usr/local/bin $ sudo mount -v /dev/sdc2 /var/run/mount/PNY64
mount: /dev/sdc2 mounted on /run/mount/PNY64.

chronos<strong i="9">@localhost</strong> /usr/local/bin $ cd /var/run/mount/PNY64/bin/

chronos<strong i="10">@localhost</strong> /var/run/mount/PNY64/bin $ sudo ./startxfce

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen