Hallo zusammen,
nachdem ich dieses Wochenende mit meinem Laptop auch von 14.04 auf 16.04 (Unity, kein XFCE) migriert bin, (Neuinstallation, kein Upgrade) musste ich mich gestern Abend auch mit diesem Problem rumschlagen.
Mein Vorgehen beim Mounten ist, dass ich in der /etc/fstab mit noauto und users das mounten für den user nur "vorbereite" und anschließend (mittels Script) nach dem Login des users die Shares mounte.
Dies hat auch immer funktioniert und funktioniert auch bei 16.04.
Was neu ist, ist dass das umounten den Shutdown verhindert bzw. extrem verzögert. Ursache ist lt. einhelliger Meinung der Community, dass der Network-Manager (Wlan) früher Feierabend macht, als systemd bzw. die umount-Prozesse. Was dann dazu führt, dass das System ein Laufwerk aushängen will, dass nicht mehr erreichbar ist. Um möglichen Datenverlust zu verhindern, versucht das System dann über einen Zeitraum von 120sec. den Server doch noch zu erreichen um sich gebührlich zu verabschieden.
Mein Vorgehen bisher:
Ich habe versucht ein systemweites alias für die Befehle "shutdown" und "reboot" zu erstellen. Dieses Alias führt vor dem eigentlichen Befehl einen umount aus (welchen ich wieder mittels Script mache). Dies führte tatsächlich zu einem 90% Erfolg!
Dazu erstellt man sich eine neue Datei namens /etc/bash.bashrc.local ,und schreibt in die Datei die aliase.. zb. so:
| alias shutdown='sh /pfad/zum/umount/scipt.sh && shutdown'
alias reboot='sh /pfad/zum/umount/scipt.sh && reboot'
|
Nach einem Neustart (der wie bis dahin gewohnt etwas länger dauert) kann ich dann problemlos (und sofort) den Rechner mittels "sudo shutdown -h now" herunterfahren.
Auch das Herunterfahren mittels Menue/Herunterfahren, Herunterfahren klicken geht.
Einziges Mako bleibt noch das Ausschalten mittels Power-Taste.
Bei Unity ist es so, dass dies einen ACPI Event auslöst und ein Auswahl-Popup zum Vorschein bringt, welches allerdings dann beim anwählen des Herunterfahren-Buttons zum befürchteten hängenbleiben des ausschaltens führt.
Momentan habe ich das noch so gelöst, dass ich in der Datei /etc/acpi/events/powerbtn, die Action abgeändert habe auf
| action='sh /pfad/zum/umount/script.sh && shutdown -h now'
|
Leider bin ich gestern nicht mehr dazugekommen, das dahinterliegende Script entsprechend abzuändern, was unter /etc/acpi/powerbtn.sh liegt.
Bin mir nicht sicher ob ich hier verlinken darf.... aber ich habe das auch gestern noch auf meinem Blog beschrieben: http://my-darling.is-a-linux-user.org . Wenn der Link ein Problem ist, bitte löschen.
Es gibt wohl auch Lösungsansätze die empfehlen die SMB Shares mittels der Option "soft" in /etc/fstab zu mounten, was zu einem sofortigen Timeout führt, wenn der Server nicht erreichbar ist und daher nicht "blockiert". Aber ich habe etwas Angst, dass im regulären Betrieb, der Server auch mal in den Sleep-Mode geht und ich Dinge die ich über Stunden bearbeitet habe (zumeist Python Scripte 😉 ) nicht gespeichert bekomme, da das Laufwerk sofort ausgehängt wird und Ubuntu nicht wartet, bis es sich wieder meldet. Das wäre also nur meine allerletzte Lösung.
Vielleicht mag jemand dies als Workarround nutzen, oder mir eine bessere Möglichkeit nennen?
Danke euch schon mal.
Wie bereits geschrieben, tut es gut, dass andere die selben Probleme haben... in einer LTS sollte soetwas eigentlich nicht mehr enthalten sein, ganz zu schweigen von dem Fakt, dass dieses Problem sich wohl schon durch mehrere Versionen zieht.
PS.: Das Umountscript ist völlig unspektakulär:
| #!/bin/sh
# Alle Shares sind bei mir Unterordner in /media/Server ...
umount /media/Server/*
exit 0
|