HDPARM (INIT)Script

Cardo

Cardo

Mitglied
Hi Leute, ich bin gerade dabei ein Auto-Start script zu schreiben.

Auf folgender Seite hab ich die entsprechenen hdparm Befehle gefunden zur optimierung: http://www.pc-magazin.de/praxis/windows/cm/tipps/tipps.php?nr=2&id=499

Dann hab ich ziemlich lange rumprobiert es aber nicht hinbekommen.
Also ich hab ein ganz kleines Script geschrieben mit symbolischen Links auf Runlevel2. Das ausführen an sich hat auch funktioniert. Allerdings nicht bei neustart.

Dann hab ich weiter gegoogelt und folgende Seite gefunden:
http://www.novell.com/coolsolutions/feature/15380.html

Anhand dieser Vorlage hab ich dann probiert das Script zu schreiben. Leider bisher erfolglos.

Hier mein Ansatz:

Code:
HDPARM_BIN = /sbin/hdparm
test -x $HDPARM_BIN || { echo "HDPARM not installed";
        if [ "$1" = "stop" ]; then exit 0;
        else exit 5; fi; }

# Load the rc.status script for this service:
. /etc/rc.status
# Reset status of this servie
rc_reset

case "$1" in
        start)
        echo -n "Starting hdparm"
$HDPARM_BIN -c 1 -d 1 -k 1 /dev/hda
# Remember status andbe verbose
rc_status -v
;;

OS ist Suse Linux.

:hilfe2:
 
Hallo

Was gibt denn das Script aus, wenn du es aus der Shell startest?

Die Variable HDPARM_BIN wird sicher leer sein, da bei einer Wertzuweisung kein Leerzeichen zwischen dem Namen und dem Wert stehen darf.
HDPARM_BIN=/sbin/hdparm

Gruß Wolfgang
 
Und was ist das default Runlevel von Suse?
Bei Debian ist es 2, Suse kann ich nicht sagen, müsste ich suchen gehen.
;)
Gruß Wolfgang
 
Default-Runlevel bei SuSE ist 5, wenn bei der Installation die grafische Oberfläche installiert wurde, sonst 3.
 
Runlevel 2 ist bei Suse Multi User Mode mit Netzwerk (Standard)

Beim Kopieren aus der Shell ist wohl wsa falsch gelaufen.
Ich hab noch ein paar sachen geändert.

Hier die aktuelle Version:

HDPARM_BIN=/sbin/hdparm
test -x $HDPARM_BIN || { echo "HDPARM not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }

# Load the rc.status script for this service:
. /etc/rc.status
# Reset status of this servie
rc_reset

case "$1" in
start)
echo -n "Starting hdparm"
$HDPARM_BIN -c 1 -d 1 -k 1 /dev/hda
# Remember status andbe verbose
rc_status -v
;;
stop)

esac

Geht jetzt ;)

Ist für jeden ganz nützlich, der ne IDE Festplatte in seinem Linux system hat und mit der Geschwindigkeit nicht zufrieden ist.
 
Zuletzt bearbeitet:
Runlevel 2 ist bei Suse Multi User Mode mit Netzwerk (Standard)

Beim Kopieren aus der Shell ist wohl wsa falsch gelaufen.
Ich hab noch ein paar sachen geändert.

Du meinst sicher beim Kopieren in die Shell. ;)

Deshalb lieber schauen und verstehen, was man da kopiert.
Immerhin macht man solche Fehler nur einmal, dann merkt man sich das.

Gruß Wolfgang
 
Wieso nicht /etc/init.d/boot.local ?

Runlevel 2 ist bei Suse Multi User Mode mit Netzwerk (Standard)
Hallo,

na ja, was "Standard" ist, steht oben in der /etc/inittab, wo es auch eingetragen wird, wenn du mit YaST -> Runlevel-Editor den Standard-Level einstellst. Bei meiner ollen 9.x ist das nach Neuinstallation immer 5 gewesen - volles Programm und X.
Code:
# The default runlevel is defined here
id:5:initdefault:

Mich wundert aber ohnehin, warum man schnelle Festplatten nur in *einem* Runlevel haben möchte... und nicht immer.

Und wenn, dann würde ich dem Teil einen Kopfeintrag verpassen, wie er in den anderen Init-Scripten steht:
Code:
### BEGIN INIT INFO
# Provides:          hdparm-Anpassung
# Default-Start:     1 2 3 5
# Default-Stop:      0 6
# Short-Description: Zugriffszeiten auf HD verbessern
# Description:       Die Default-Werte fuer Festplattenzugriffe
#   sind suboptimal und koennen hiermit verbessert werden.
### END INIT INFO
Und dann mit insserv /etc/init.d/hd-script (oder wie immer es heißt) das Teil automatisch mit Symlinks für die Runlevel verknüpfen (bzw. im Runlevel-Editor einschalten).

Ich würde das aber eigentlich als Shellscript in /etc/init.d/boot.local eintragen und gar nicht in der Runlevel-Form... wäre das nicht effektiver? Dan sind doch die Platten schon schneller, bevor der ganze restliche Init-Kram passiert und der Runlevel überhaupt gewählt ist?
Code:
# /etc/init.d/boot.local
#
# script with local commands to be executed from init on system startup
#
# [color=red]Here you should add things, that should happen directly after booting[/color]
# [color=red][b][i]before we're going to the first run level.[/i][/b][/color]
#
(da reicht allerdings wohl der Eintrag als Befehl aus - /sbin/hdparm -c 1 -d 1 -k 1 /dev/hda)
 
Zuletzt bearbeitet:
Das man sowas in der boot.local machen kann, wusste ich gar nicht.

Bei Linux lernt man nie aus ;)

Ich werds dann wohl jetzt auch auf die boot.local umstellen.

Thx
 

Ähnliche Themen

Queue für copy Script

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

Shell Script mit Menu

Prozess aus eigenem Init script wird gekillt

Last mit etc/passwd anzeigen lassen

Zurück
Oben