staging.inyokaproject.org

Beim Herunterfahren: "Failed unmounting mnt-Daten.mount - /mnt/Daten"

Status: Ungelöst | Ubuntu-Version: Ubuntu Unity 24.04 (Noble Numbat)
Antworten |

UlfZibis

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

Hallo,

ich habe erfolgreich OneDrive installiert, und seitdem bekomme ich beim Runterfahren obige Meldung (ca. 2 Sek. lang) angezeigt.

Ich kann dies nur verhindern, wenn ich vorher manuell den Dienst stoppe.

Der Entwickler meint 🇺🇸, das läge an meiner Konfiguration, und hat 2 Workarounds vorgeschlagen.

sudo systemctl edit mnt-Daten.mount

[Unit]
Before=umount.target
After=default.target
Conflicts=onedrive.service

sudo nano /etc/systemd/system/stop-onedrive-before-unmount.service

[Unit]
Description=Stop OneDrive User Service before unmount
DefaultDependencies=no
Before=umount.target
Requires=umount.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl --user stop onedrive.service
RemainAfterExit=yes

[Install]
WantedBy=umount.target

Leider funktionieren beide nicht, ich bekomme immer noch die Meldung. Hat jemand mehr Ahnung von systemd-Units als ich, und kann evtl. helfen?

Letzterer dürfe auch den Nachteil haben, dass er auch dann zuschlägt, wenn ich irgendeine andere Partition, z.B. USB-Stick, aushänge.

Da der Dienst ja erst im Userland gestartet und gebraucht wird, wäre es vielleicht auch schlauer, den Hack dort zu platzieren, also z.B. mit systemctl --user edit ..., und so zu gestalten, dass er bereits mit dem Abmelden wirkt.

Wird hier evtl. dennoch etwas später noch korrekt ausgehangen, aber nicht mehr angezeigt?
Dann müsste ich mir keine Sorgen machen, dass evtl. Daten korrumpiert werden könnten.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 5329

Versuchs mal so

systemctl --user edit onedrive.service

da eintragen bzw. ergänzen

[Unit]
RequiresMountsFor=/mnt/Daten

speichern und dann

1
2
systemctl --user daemon-reload
systemctl --user restart onedrive

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

schwarzheit schrieb:

Versuchs mal so

systemctl --user edit onedrive.service

da eintragen bzw. ergänzen

[Unit]
RequiresMountsFor=/mnt/Daten

Danke! Hilft aber leider auch nicht.

Ergänzung: Vor der Meldung steht auch noch in ROT: [FAILED]

Ich hoffe, ich hatte mit

sudo rm /etc/systemd/system/stop-onedrive-before-unmount.service

alles entfernt, was von obigem Hack installiert war.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 5329

Zeig mal

systemctl --user status onedrive.service 

und

systemctl --user list-units | grep onedrive

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

UlfZibis schrieb:

Der Entwickler meint 🇺🇸, das läge an meiner Konfiguration, und hat 2 Workarounds vorgeschlagen. […]

Ein anderer Name für diese Workarounds könnte "Systemd scripting from hell" lauten.

Sage dem Entwickler, dass es an seiner Konfiguration liegt: Wer über eine Systemd-Unit (die der Entwickler ja wohl mitliefert?) ein Dateisystem einbindet, muss auch dafür sorgen, dass dieselbe Systemd-Unit das Dateisystem beim Herunterfahren auch wieder ausbindet, dafür braucht es in der Regel nur einer Direktive ExecStop=.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

schwarzheit schrieb:

Zeig mal

$ systemctl --user status onedrive.service
● onedrive.service - OneDrive Client for Linux
     Loaded: loaded (/usr/lib/systemd/user/onedrive.service; enabled; preset: e>
    Drop-In: /home/praxis/.config/systemd/user/onedrive.service.d
             └─override.conf
     Active: active (running) since Sun 2025-07-27 11:18:59 CEST; 58s ago
       Docs: https://github.com/abraunegg/onedrive
    Process: 1502 ExecStartPre=/usr/bin/sleep 15 (code=exited, status=0/SUCCESS)
   Main PID: 2674 (onedrive)
      Tasks: 13 (limit: 4342)
     Memory: 147.5M (peak: 149.1M)
        CPU: 6.664s
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/onedrive.s>
             └─2674 /usr/bin/onedrive --monitor

Jul 27 11:19:16 T540p onedrive[2674]: No changes or items that can be applied w>
Jul 27 11:19:16 T540p onedrive[2674]: Syncing this OneDrive Personal Shared Fol>
Jul 27 11:19:17 T540p onedrive[2674]: Generating a /delta response from the One>
Jul 27 11:19:17 T540p onedrive[2674]: Finished processing self generated /delta>
Jul 27 11:19:17 T540p onedrive[2674]: Processing 31 applicable JSON items recei>
Jul 27 11:19:17 T540p onedrive[2674]: Failed items to upload to/from Microsoft >
Jul 27 11:19:17 T540p onedrive[2674]: Failed to upload: ./Auswahl/2 Beteiligung>
Jul 27 11:19:17 T540p onedrive[2674]: Failed to upload: ./Auswahl/2 Beteiligung>
Jul 27 11:19:17 T540p onedrive[2674]: Sync with Microsoft OneDrive has complete>
praxis@T540p:~$ systemctl --user list-units | grep onedrive
  onedrive.service                                                                                           loaded active running   OneDrive Client for Linux

Jetzt bin ich mir doch nicht mehr so sicher, dass der Dienst im Userland gestartet wird, was eigentlich sinnvoll wäre:

$ cat /usr/lib/systemd/user/onedrive.service
[Unit]
Description=OneDrive Client for Linux
Documentation=https://github.com/abraunegg/onedrive
After=network-online.target
Wants=network-online.target

[Service]
# Commented out hardenings are disabled because they may not work out of the box on your distribution
# If you know what you are doing please try to enable them.

ProtectSystem=full
#PrivateUsers=true
#PrivateDevices=true
ProtectHostname=true
#ProtectClock=true
ProtectKernelTunables=true
#ProtectKernelModules=true
#ProtectKernelLogs=true
ProtectControlGroups=true
RestrictRealtime=true
ExecStartPre=/usr/bin/sleep 15
ExecStart=/usr/bin/onedrive --monitor
Restart=on-failure
RestartSec=3
# Do not restart the service if a --resync is required which is done via a 126 exit code
RestartPreventExitStatus=126
# Time to wait for the service to stop gracefully before forcefully terminating it
TimeoutStopSec=90

[Install]
WantedBy=default.target

$ cat ~/.config/systemd/user/onedrive.service.d/override.conf
[Unit]
RequiresMountsFor=/mnt/Daten

kB schrieb:

Wer über eine Systemd-Unit (die der Entwickler ja wohl mitliefert?) ein Dateisystem einbindet, muss ...

Die Einbindung erfolgt über /etc/fstab, also durch mich.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

UlfZibis schrieb:

[…] /etc/fstab, also durch mich

In diesem Thread geht es um Onedrive, in dem anderen vor Dir zitierten um NTFS per ntfs3. Passt für mich nicht zusammen.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

kB schrieb:

In diesem Thread geht es um Onedrive, in dem anderen vor Dir zitierten um NTFS per ntfs3. Passt für mich nicht zusammen.

Das eine bedingt das andere ...
Der lokale OneDrive-Spiegelordner befindet sich auf der NTFS-Partition, damit er von beiden OS zugegriffen werden kann, auch Offline. Folglich muss Ubuntu diese Partition einbinden. Die Einbindung erfolgt gemäß dem anderen Thread (falls jemand Fragen hat, um welche Partition es geht), der vorläufig mit dem Fazit endet, dass ich nun wieder NTFS-3G verwende, was aber wohl nichts an der hier beschriebenen Fehlermeldung ändern dürfte.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9837

UlfZibis schrieb:

[…] Der lokale OneDrive-Spiegelordner befindet sich auf der NTFS-Partition, damit er von beiden OS zugegriffen werden kann, auch Offline.

Abgründe öffnen sich und Tsunamis türmen sich auf …

Ich weiß nicht, was Dein eigentliches Problem ist und um mein Seelenheil zu schützen, will ich es auch gar nicht wissen, aber ich bin sicher:

Es gibt einfachere Lösungen als die, welche Du versuchst!

Wade retro … !

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

kB schrieb:

Es gibt einfachere Lösungen als die, welche Du versuchst!

Die wären ? ..... Einfachheit find' ich immer gut.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 5329

UlfZibis schrieb:

$ cat ~/.config/systemd/user/onedrive.service.d/override.conf
[Unit]
RequiresMountsFor=/mnt/Daten

Was soll das dort? Dort gehört es nicht hin.

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

schwarzheit schrieb:

Was soll das dort? Dort gehört es nicht hin.

Das ist aber die direkte Folge von Deinem Vorschlag.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 5329

Dann schau noch nach was in der mnt-Daten.mount steht.

sudo systemctl edit mnt-Daten.mount

das muss bestandteil des Inhalts sein - wenn nicht ergänzen

[Unit]
Conflicts=onedrive.service

UlfZibis

(Themenstarter)

Anmeldungsdatum:
13. Juli 2011

Beiträge: 3351

schwarzheit schrieb:

Dann schau noch nach was in der mnt-Daten.mount steht.

Muss jetzt Pause machen, bin verabredet. Morgen geht's hier weiter.

Soll ich Deinen früheren Vorschlag dann wieder rückgängig machen?

Schon mal vorab:

$ cat /run/systemd/generator/mnt-Daten.mount
# Automatically generated by systemd-fstab-generator

[Unit]
Documentation=man:fstab(5) man:systemd-fstab-generator(8)
SourcePath=/etc/fstab
After=blockdev@dev-disk-by\x2duuid-2A375E0B4BF5338A.target

[Mount]
What=/dev/disk/by-uuid/2A375E0B4BF5338A
Where=/mnt/Daten
Type=ntfs-3g
Options=defaults,discard,nofail,inherit,hide_hid_files,windows_names,hide_dot_files

Diese Unit ist generiert, verschwindet beim Runterfahren also wieder.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 5329

Nein 1 und 2 gehören zusammen.

Wenn das auch nicht geht dann beide bzw alles rückgängig machen.

Du könntest dir auch einen eigenen shutdown-Starter anlegen der systemctl --user stop onedrive.servic && shutdown ausführt. Wie das unter Unity geht hab ich aber keine Ahnung.

Antworten |