ubuntuusers.de

...mal wieder rc.local und Acer H340 SMI Flash...

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

piefko

Anmeldungsdatum:
3. Juli 2014

Beiträge: 3

Hallo zusammen,

ich weiß, dass es hier schon dutzende Fragen zum Thema rc.local, Startup Skripts und dazugehörige Lösungsansätze gibt. Allerdings habe ich schon vieles, leider erfolglos versucht.

Ich habe folgende Situation. Mein Ubuntu Server (14.04 LTS) läuft auf einem Acer H340. Das Problem beim Acer ist, dass er beim hochfahren den Internen 256MB Flash mountet. Der Flash muss nach dem Hochfahren oder vor dem Runterfahren mittels udisks --detach sicher entfernen. Wenn ich das nicht mache, kann ich den Server nicht herunterfahren, da er ansonsten gleich wieder hochfährt. Um dem vorzubeugen hatte ich geplant ein simples Script zum entfernen des Speichers zu erstellen.

disusb.sh:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10

#!/bin/bash

var=$(fdisk -l | sort | grep '/dev/sd' | grep '256 MByte' | cut -d " " -f2 | tr$
if [ "$var" != "" ]
    then
        udisks --detach $var
    else
        echo "Flash nicht vorhanden oder bereits entfernt."
fi

Dieses Script liegt im Verzeichnis: /usr/local/bin/ und hat chmod 755.

Das wollte ich nun mittels rc.local ausführen lassen.

rc.local

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/bin/bash
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/usr/local/bin/disusb.sh

exit 0

rc.local hat ebenfalls chmod 755.

Wenn ich rc.local direkt ausführe funktioniert alles einwandfrei. Allerdings nicht automatisch beim hochfahren. Kann mir jemand helfen? Was mache ich falsch? Hatte, da ich dachte, dass evtl. das script zu früh startet bereits mit sleep gearbeitet, allerdings hat das auch nichts gebracht.

Vielen Dank für Eure Hilfe.

Piefko

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13217

Hallo und herzlich willkommen hier im Forum!

piefko schrieb:

Wenn ich rc.local direkt ausführe funktioniert alles einwandfrei. Allerdings nicht automatisch beim hochfahren. Kann mir jemand helfen? Was mache ich falsch? Hatte, da ich dachte, dass evtl. das script zu früh startet bereits mit sleep gearbeitet, allerdings hat das auch nichts gebracht.

Vermutlich sind die Pfade anders während des Hochfahrens. Du könntest mal so etwas versuchen:

1
2
3
4
5
...
export PATH="/bin:/usr/bin:$PATH"

/usr/local/bin/disusb.sh
...

Wenn Du erst mal nachschauen willst, wie die Umgebung aussieht, kannst Du vor den export auch noch so etwas packen:

1
env >/tmp/env.txt

Ciao

robert

piefko

(Themenstarter)

Anmeldungsdatum:
3. Juli 2014

Beiträge: 3

Hallo Robert,

vielen Dank für deine Hilfe. Also das Script wurde richtig ausgeführt. Nur scheinbar mach fdisk beim hochfahren etwas anderes. Es schreibt beim hochfahren 256 MB, später steht 256 MByte. Damit hat grep immer nichts zurück gegeben und aus diesen Grund wurde wurde auch nichts gefunden.

damit klappts...

1
2
3
4
5
6
7
8
#!/bin/bash
var=$(fdisk -l | sort | grep '/dev/sd' | grep '256 MB' | cut -d " " -f2 | tr -d ':')
if [ "$var" != "" ]
    then
        udisks --detach $var
    else
        echo "Flash nicht vorhanden oder bereits entfernt."
fi

Danke für die Hilfe!

Schöne Grüße,

Piefko

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13217

piefko schrieb:

Also das Script wurde richtig ausgeführt. Nur scheinbar mach fdisk beim hochfahren etwas anderes. Es schreibt beim hochfahren 256 MB, später steht 256 MByte. Damit hat grep immer nichts zurück gegeben und aus diesen Grund wurde wurde auch nichts gefunden.

Das liegt dann höchstwahrscheinlich an der Lokalisierung. Wenn Du das herausfinden möchtest, könntest Du einmal in der Konsole locale angeben und im Skript auch noch einmal mit einer Umleitung wie beim env vorher. Dann solltest Du sehen, welche Spracheinstellungen beim Hochfahren aktiv sind und wo der Unterschied liegt. Ich tippe mal, dass beim Hochfahren "C" gemeldet wird, während in der Konsole eher so etwas wie "en_US.UTF-8" oder "de_DE.UTF-8" dort stehen werden.

Ciao

robert

piefko

(Themenstarter)

Anmeldungsdatum:
3. Juli 2014

Beiträge: 3

Hallo robert,

ich hab mir das gerade noch angeschaut... du liegst wie es aussieht vollkommen richtig. Es scheint an der Lokalisierung zu liegen. Beim Hochfahren bekomme ich folgendes:

LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

wenn ich dann in der Konsole bin erhalte ich folgende Einstellungen:

LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

Piefko

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13217

piefko schrieb:

ich hab mir das gerade noch angeschaut... du liegst wie es aussieht vollkommen richtig. Es scheint an der Lokalisierung zu liegen. Beim Hochfahren bekomme ich folgendes: [...]

Du könntest es dann im Skript versuchen mit

1
export LC_ALL=de_DE.UTF-8

Ciao

robert

Razorworks

Anmeldungsdatum:
22. August 2007

Beiträge: 1

Es ist zwar schon etwas her, dass hier etwas geschrieben wurde, aber hoffentlich liest das noch jemand.

Ich habe das auch mal versucht, allerdings nicht auf einem Ubuntu-System, sondern auf einem "openmediavault 3.2.0-4-686-pae".

Ich erhalte leider beim ausführen die folgende Fehlermeldung:

1
Detach failed: Not Authorized: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PolicyKit1 was not provided by any .service files

Was kann ich tun, damit das detach funktioniert? Ich habe lediglich udisks via apt nachinstalliert. Da kam noch einiges mehr mit:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
apt-get install udisks
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libatasmart4 libdbus-glib-1-2 libgudev-1.0-0 liblvm2app2.2 libpolkit-gobject-1-0 libsgutils2-2
Suggested packages:
  sg3-utils reiserfsprogs
Recommended packages:
  policykit-1 dosfstools eject cryptsetup-bin
The following NEW packages will be installed:
  libatasmart4 libdbus-glib-1-2 libgudev-1.0-0 liblvm2app2.2 libpolkit-gobject-1-0 libsgutils2-2 udisks
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,073 kB of archives.
After this operation, 2,734 kB of additional disk space will be used.
Do you want to continue [Y/n]?

Vielen Dank für eure Hilfe.


Habe nun auch die 4 empfohlenen Paket nachinstalliert. Nun scheint es zu klappen.

Antworten |