Verwalten von Konfigurationsdateien - D

Werbung
Startup & Postinstall
Nachdem wir mithilfe des Skripts knx-hdinstall Knoppix als permanentes Debian Linux System auf
die Harddisk übertragen haben, sind möglicherweise einige Post-Installation vonnöten. Die Ursache
hierfür kann in der verwendeten Hardware liegen oder dass wir von einigen default Einstellungen
abweichen wollen.
Die Themen:






Bootloader
Init Skripte
Alternatives
HD Parameter
Systemzeit
Konfigurationsdateien
Bootloader
Vor dem Laden des Linux-Kernels wird mit dem sogenannten Bootloader ein Programm geladen,
welches eine Auswahl zwischen verschiedenen installierten Betriebssystemen erlaubt. Der
gebräuchlichste Bootloader ist lilo.
lilo einrichten
Bei der Installation von Debian wird generell der Bootloader lilo auf der Festplatte installiert
und so eingerichtet, dass automatisch das neue Debian System gestartet wird.
LILO ist ein vollständiger Boot-Manager, mit dem nicht nur Linux gebootet werden kann,
sondern auch andere Betriebbssysteme geladen werden können. Konfiguriert wird dieser BootManager über die Datei /etc/lilo.conf.
Wann immer diese Datei geändert wird, muss das Programm lilo auf der Kommandozeile als
Superuser aufgerufen werden, um die Änderungen tatsächlich zu übernehmen. Es reicht nicht, die
Konfigurationsdatei zu verändern!
Wichtig in diesem Zusammenhang sind die Zeilen, die mit image und other anfangen, sowie die
jeweils nachfolgende Zeile. Diese Schlüsselwörter dürfen mehrfach verwendet werden. Jede so
beginnende Zeile bezeichnet ein System, das von LILO gebootet werden kann. Eine solche
Partition kann einen Kernel, eine Root-Partition oder ein anderes, Nicht-Linux-System (other),
beinhalten. Die Reihenfolge dieser Systeme ist entscheidend, denn das erste wird automatisch
gebootet, wenn die Wartezeit (siehe delay) abgelaufen ist und LILO nicht durch Drücken der
Shift-Taste angehalten wurde.
Um ein zweites Linux-System zu booten (z.B. unter Verwendung eines anderen Kernels), muss
die Datei /etc/lilo.conf folgende Zeilen enthalten:
image=/boot/vmlinuz.neu
label=neu
Um ein anderes System als Linux zu booten, verwendet man das Schlüsselwort other wie folgt:
other=/dev/hda1
label=win
Rufen Sie danach lilo als Superuser auf, um lilo neu zu installieren. Bei einem Neustart des
Systems können Sie nun am Bootprompt durch Eingeben von „win“ das Betriebssystem auf der
Partition /dev/hda1 starten.
GRUB
GRUB (GRand Unified Bootloader) ist ein weiterer Bootloader, dessen Aufgabe es ist, nach dem
einschalten des Rechners die weitere Kontrolle an das Betriebssystem (also den Kernel) zu
übergeben. Das Betriebsystem initialisiert dann über die geeigneten Treiber alle weitere
Hardware im System. GRUB ist ebenfalls in der Lage verschiedene Betriebssysteme zu laden.
Einer der grössten Vorteile von GRUB ist, das GRUB in der Lage ist auf das Dateisystem direkt
zuzugreifen. Das bedeutet das GRUB nicht wissen muss wo genau der zu ladende Kernel auf der
Festplatte liegt. Man kann also jederzeit einen neuen Kernel erzeugen und muss hinterher nicht
noch einmal GRUB im MBR der Festplatte installieren. Es ist ebenfalls nicht notwendig alle
Kernelversionen die sich auf der Festplatte befinden in die Konfigurationsdatei einzutragen. SMit
GRUB kann jederzeit auf jeden Kernel auf der Festplatte zugegriffen werden.
GRUB Installation
Die Installation von GRUB unter Debian ist wie üblich mit einem einfachen apt-get install
grub so gut wie abgeschlossen. Sie sollten danach zunächst das Paket lilo entfernen, dies wird
nicht mehr benötigt. Leider ist noch keine Installationsroutine zur kompletten automatischen
Installation von GRUB verfügbar, so das noch einige wenige Schritte von Hand vorgenommen
werden müssen.
Um die notwendigen Daten (die Stage 1 und 2 Bootloader) in den Masterboot-Record der
Festplatte zu schreiben, benutzen Sie das Programm „grub-install“. Wenn Sie „grub-install“
zunächst ohne Optionen aufrufen bekommen Sie eine kurze Übersicht der möglichen Optionen
angezeigt:
debian:~# grub-install
install_device not specified.
Usage: grub-install [OPTION] install_device
Install GRUB on your drive.
-h, --help
print this message and exit
-v, --version
print the version information and exit
--root-directory=DIR
DIR
install GRUB images under the directory
instead of the root directory.
--grub-shell=FILE
--force-lba
buggy
use FILE as the grub shell.
force GRUB to use LBA mode even for a
BIOS.
--recheck
exists.
probe a device map even if it already
INSTALL_DEVICE can be a GRUB device name or a system device
filename.
Reports bugs to <[email protected]>.
In den meisten Fällen ist es ausreichend lediglich das gewünschte Device anzugeben auf dem die
Daten installiert werden sollen. Dies wird bei einer IDE-Festplatte meist /dev/hda sein.
surimi:/home/fr# grub-install /dev/hda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.
(fd0)
/dev/fd0
(hd0)
/dev/hda
(hd1)
/dev/hdb
GRUB ist nun funktionsfähig installiert, Sie sollten aber noch ein Menü einrichten um nicht bei
jedem Systemstart die Parameter für das Root-Device und den Kernel von Hand eingeben zu
müssen. Kopieren Sie hierzu am besten das mitgelieferte Beispiel an die entsprechende Stelle.
GRUB Konfiguration
Die Konfiguration von GRUB kann herkömlich, mittels eines Editors, erfolgen oder aber ganz
elegant mittels update-grub.
GRUB update
ist Bestandteil des GRUB Debian Paketes. Existiert noch keine Konfigurationsdatei, so wird
diese automatisch erstellt. Als Basis dienen dazu die Kernel- und RAM-Disk-Images im
Verzeichnis /boot/. Zu jedem vorhandenen Kernel wird jeweils ein Eintrag für den normalen
Start sowie für den Start im Single-User Modus erstellt.
wasabi:~# update-grub
Searching for GRUB installation directory ... found: /boot/grub .
Testing for an existing GRUB menu.list file...
Could not find /boot/grub/menu.lst file. Would you like one
generated for you? (y/N) y
Updating /boot/grub/menu.lst ... done
Please note that configuration parameters for GRUB are stored in
/boot/grub/menu.lst . You must edit this file in order to set the
options
which GRUB passes to the kernel, as well as the drive which GRUB
looks in to
for the kernel.
Everything on the line after "kopt=" is passed to the kernel as
parameters,
and "groot=" must be set to the partition(in GRUB terms, such as
"(hd0,0)")
which GRUB will load the kernel from.
After you have edited /boot/grub/menu.lst , please re-run 'updategrub'.
Natürlich sind Veränderungen an der automatisch erstellten Konfiguration möglich. In der
Konfigurationsdatei gibt es einen Abschnitt der mit „ ### BEGIN AUTOMAGIC KERNELS LIST“
beginnt. Diese Einträge können verändert werden, es dürfen aber auf keinen Fall die
Kommentarzeichen (#) am Anfang jeder Zeile verändert werden! Ein Beispiel. Aus:
# kopt=root=/dev/hda1 ro
Wird:
# kopt=root=/dev/hda1 ro apm=on ide2=0x180,0x386
Die hinzugefügten Parameter werden beim Starten des Kernels übergeben. Nach der Änderung
wird nochmals update-grub aufgerufen und die Änderungen werden in die eigentliche
Konfiguration am Ende der Datei übernommen.
GRUB Manuelle Konfiguration
Wenn Sie im Verzeichnis /boot/grub/ eine Datei eine Datei menu.lst erzeugen, so wird
GRUB beim nächsten Start aus dieser Datei ein Menü erstellen und Sie können dann aus den
verschiedenen Einträgen dieses Menüs den gewünschten auswählen. Ein Beispiel für ein solches
Menü finden Sie unter /usr/share/doc/grub/examples/menu.lst.
# cp /usr/share/doc/grub/examples/menu.lst /boot/grub/
In dem Beispiel finden Sie einige Einträge für die verschiedensten Betriebssysteme, sowie einige
andere Goodies die Sie mit GRUB anstellen können. Eine funktionsfähige Minimalkonfiguration
könnte wie folgt aussehen:
timeout 10
default 0
# For booting Linux
title
Debian GNU/Linux
root (hd0,0)
kernel /vmlinuz root=/dev/hda1
Wenn ein Kernelpaket verwendet wird, so ist darauf zu achten das diese normalerweise eine InitRamdisk (initrd) verwenden. Ein entsprechender Eintrag, um eben diese Ramdisk ergänzt sieht
wie folgt aus:
title
GNU/Linux 2.4.6 SMP
root
(hd0,6)
kernel
/vmlinuz-2.4.6-686-smp root=/dev/hda1 read-only
initrd
/initrd-2.4.6-686-smp
Dieses Beispiel verwendet einen SMP Kernel und eine etwas andere Festplattenaufteilung, aber
das Prinzip sollte erkennbar sein.
GRUB Hardwarebezeichnungen
Vielleicht haben Sie sich schon über die etwas ungewohnten Bezeichnungen der Laufwerke in
der Konfigurationsdatei gewundert. GRUB benutzt die von verwendeten Bezeichnungen für
Gerätedateien, die Umstellung ist aber für den geübten Linux-Admin nicht sehr groß.
Zunächst ist zu bemerken das alle Bezeichnungen für Geräte in Klammern () geschrieben
werden. Statt der unter Linux üblichen Buchstaben (z.B. hda) werden die einzelnen Platten mit
fortlaufenden Zahlen ab 0 bezeichnet. hda entspricht also hd0. Die einzelnen Partitionen einer
Platten werden wie unter Linux mit Zahlen bezeichnet, allerdings beginnend mit 0 und getrennt
mit einem Komma. Somit entspricht /dev/hda1 also (hd0,0).
Weitere Geräte werden als (fd0) (Diskette) und (sd0) (SCSI Platten) bezeichnet. Sie können
GRUB auch zum booten übers Netz einsetzen oder das Root-Filesystem per NFS mounten. Die
Bezeichnung des Netzwerkdevices lautet (nd).
GRUB Kommandozeile
GRUB verfügt auch über eine sehr leistungsfähige Kommandozeile, bedenken Sie dabei das zu
dieser Zeit noch kein komplettes Betriebssystem oder gar ein Kernel geladen ist! Sollte es Ihnen
nicht gelungen sein ein funktionsfähiges Menü zu erstellen, so landen Sie automatisch auf der
GRUB-Kommandozeile. Sie können hier alle Kommandos, Laufwerksbezeichnungen und
Dateinamen mit der TAB-Taste automatisch vervollständigen lassen, diese Feature kennen Sie
sicher schon aus der Shell.
Wenn jedoch ein Menü angezeigt wird, können Sie dieses mit der Taste c verlassen und auf der
Kommandozeile zum Beispiel von Hand einen anderen Kernel starten. Fehlerhafte Einträge im
Menü lassen sich aus dem Menü mit der Taste e temporär verändern. Vergessen Sie nicht diese
Änderungen später in die Datei /boot/grub/menu.lst einzutragen.
Weitere Informationen zu GRUB finden Sie auf Ihrem System unter file:///usr/share/doc/grub/
und auf der Webseite des Projektes unter http://www.gnu.org/software/grub/grub.en.html.
Init Scripte
Nach dem laden des Linux Kernels wird als erstes Programm überhaupt das Programm init
gestartet. Dieses Programm startet alle weiteren Programme, welche dies sind wird über die
Scripte im Verzeichnis /etc/init.d bestimmt. Je nach gewünschtem Runlevel des Systems
zeigen Links auf die Scripte in diesem Verzeichnis. Das anlegen und löschen dieser Links wird
bei der Installation der jeweiligen Dienste automatisch vorgenommen. Ein installierter Dienst
wird normalerweise immer auch gestartet. Natürlich können Links von Hand hinzugefügt oder
entfernt werden, aber auch für diese Arbeiten am System stellt Debian einige Werkzeuge zur
Verfügung.
rcconf
rcconf
ist ein einfaches Werkzeug mit dem einzelne Dienste aus den Init-Scripten aktiviert oder
deaktiviert werden können. Allerdings ist es mit rcconf nicht möglich den Runlevel eines
Dienstes zu bestimmen.
update-rc.d
Detailiertere Einstellmöglichkeiten bietet update-rc.d. Zunächst sollte in jedem Fall mit der
Option -n aufgerufen werden, diese zeigt lediglich an welche Aktionen durchgeführt werden
sollen, lässt die entsprechenden Links aber unangetastet.
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | sNN kNN]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl]
[...] .
-n: not really
-f: force
Grundsätzlich ist natürlich immer der Name des Paketes anzugeben von welchem die Initscripte
angepasst werden sollen. Bei Verwendung der Option remove werden alle Links auf das
entsprechende Script entfernt. Hierbei prüft update-rc.d ob das Script bereits entfernt wurde. Ist
dies nicht der Fall so bricht update-rc.d ab. Mit der Option -f kann erzwungen werden das die
Links auch bei vorhandensein eines Script gelöscht werden.
Mit den Optionen start, stop oder defaults werden die notwendigen Links angelegt, bzw.
wiederhergestellt. Wird zusätzlich einer oder mehrere Runlevel angegeben so können die Links
entsprechend den Wünschen des Systemadministrators angepasst werden.
Ersetzen von Programmen - alternatives
„Alternativen“ sind eine weitere dieser vielen, netten Kleinigkeiten die das Leben in einem
Debian GNU System leichter und schöner machen. Über Alternativen können beliebte
Programme (beispielsweise vi) durch „Alternativen“ (beispielsweise vim) ersetzt werden.
Hierbei sind keine Einträge in irgendwelchen Konfigurationsdateien notwendig.
Die Debian Distribution liefert einige tausend Programme mit, für jeden Einsatzzweck kann der
Anwender meist zwischen verschienen Programmen wählen. Dies geschieht im Normalfall auf
der Kommandozeile durch eintippen des entsprechenden Kommandos oder via Maus über ein
Menü. Mit den „Alternativen“ ist der Administrator in der Lage eine sinnvolle Voreinstellung für
das Gesamtsystem zu geben.
Sehen wir uns das einmal am Beispiel vi an. Zunächst versuchen wir zu ermitteln wo das
eigentlich Programm vi zu finden ist:
wasabi:/home/fr# ls -l `which vi`
lrwxrwxrwx 1 root root 20 24. Feb 13:47 /usr/bin/vi ->
/etc/alternatives/vi
Und dieser Link wiederrum:
wasabi:/home/fr# ls -l /etc/alternatives/vi
lrwxrwxrwx 1 root root 12 20. Mär 08:15 /etc/alternatives/vi ->
/usr/bin/vim
... zeigt auf das Programm vim. Nun lassen sich auch diese Links natürlich mir Unix Bordmitteln
verändern, doch halt! Auch hier gibt es wieder ein Werkzeug aus der Debian Werkzeugkiste.
update-alternatives
ist das Werkzeug des Debian Systemadministrators um die Konfiguration
dieser Links vorzunehmen. Hierbei ist es möglich aus sinnvollen Alternativen auszuwählen, es
werden sogar Einschätzungen zum am besten geeigneten Programm für den jeweiligen Zweck
abgegeben.
update-alternatives: need --display, --config, --install,
--remove or --auto
Debian update-alternatives 1.9.20.
Copyright (C) 1995 Ian Jackson.
Copyright (C) 2000,2001,2002 Wichert Akkerman
This is free software; see the GNU General Public Licence
version 2 or later for copying conditions.
There is NO warranty.
Usage: update-alternatives --install <link> <name> <path>
<priority>
[--slave <link> <name> <path>] ...
update-alternatives --remove <name> <path>
update-alternatives --auto <name>
update-alternatives --display <name>
update-alternatives --config <name>
<name> is the name in /etc/alternatives.
<path> is the name referred to.
<link> is the link pointing to /etc/alternatives/<name>.
<priority> is an integer; options with higher numbers are chosen.
Options:
--verbose|--quiet
--test
--altdir <directory>
--help
--version
--admindir <directory>
Zunächst sollten man sich einen Überblick über den aktuellen Zustand des Programmes, hier vi,
verschaffen:
wasabi:/home/fr# update-alternatives --display vi
vi - status is manual.
link currently points to /usr/bin/vim
/usr/bin/nvi - priority 30
slave vi.1.gz: /usr/share/man/man1/nvi.1.gz
/usr/bin/vim - priority 120
slave vi.1.gz: /usr/share/man/man1/vim.1.gz
Current `best' version is /usr/bin/vim.
Sehr schön zu sehen, es stehen zwei Programm zur Verfügung die dem System als Editor vi
dienen können: nvi und vim. Beide Versionen sind mit unterschiedlich hohen Prioritäten
versehen, die höhere Version wird bevorzugt und in der letzetn Zeile als Empfehlung
ausgegeben.
Mit der Option --config können Veränderungen an der aktuellen Einstellung vorgenommen
werden. Dies Auswahl des neuen Wertes erfolgt mit der jeweils vorrangestellten Zahl.
Festplattenparameter hdparm
Mit dem Programm hdparm lassen sich Festplattenparameter auslesen und verändern.
Die Syntax zu diesem Befehl lautet:
hdparm - get/set hard disk parameters - version v5.2
Usage:
hdparm
[options] [device] ..
Options:
-a
get/set fs readahead
-A
set drive read-lookahead flag (0/1)
-b
get/set bus state (0 == off, 1 == on, 2 == tristate)
-B
set Advanced Power Management setting (1-255)
-c
get/set IDE 32-bit IO setting
-C
check IDE power mode status
-d
get/set using_dma flag
-D
enable/disable drive defect-mgmt
-E
set cd-rom drive speed
-f
flush buffer cache for device on exit
-g
display drive geometry
-h
display terse usage information
-i
display drive identification
-I
detailed/current information directly from drive
-Istdin
input
similar to -I, but wants /proc/ide/*/hd?/identify as
-k
get/set keep_settings_over_reset flag (0/1)
-K
set drive keep_features_over_reset flag (0/1)
-L
set drive doorlock (0/1) (removable harddisks only)
-M
get/set acoustic management (0-254, 128: quiet, 254: fast)
(EXPERIMENTAL)
-m
get/set multiple sector count
-n
get/set ignore-write-errors flag (0/1)
-p
set PIO mode on IDE interface chipset (0,1,2,3,4,...)
-P
set drive prefetch count
-q
change next setting quietly
-Q
get/set DMA tagged-queuing depth (if supported)
-r
get/set readonly flag (DANGEROUS to set)
-R
register an IDE interface (DANGEROUS)
-S
set standby (spindown) timeout
-t
perform device read timings
-T
perform cache read timings
-u
get/set unmaskirq flag (0/1)
-U
un-register an IDE interface (DANGEROUS)
-v
defaults; same as -mcudkrag for IDE drives
-V
display program version and exit immediately
-w
perform device reset (DANGEROUS)
-W
set drive write-caching flag (0/1) (DANGEROUS)
-x
tristate device for hotswap (0/1) (DANGEROUS)
-X
set IDE xfer mode (DANGEROUS)
-y
put IDE drive in standby mode
-Y
put IDE drive to sleep
-Z
disable Seagate auto-powersaving mode
-z
re-read partition table
hdparm
ist ein Kommandozeilenprogramm um verschiedene Festplattenparameter im Linux
Kernel zu verändern. Dieses Programm benötigt mindestens einen Kernel der Version 1.2.13,
dies sollte aber auf einem aktuellen Debian System kein Problem sein.
Optionen
Wenn keine weiteren Optionen angegeben werden so wird bei einem IDE Device automatisch die
Optionen -acdgkmnru und bei einem SCSI Device die Optionen -gr benutzt.
Im einzelnen bewirken die Optionen folgendes:
















Schaltet die „read-lookahead“ Funktion einer IDE Festplatte ein oder aus.
Normalerweise ist diese Funktion aktiviert.
-c Zeigt den Status oder aktiviert den (E)IDE 32-Bit I/O Support. Die Parameter hier für
sind: 0 um den Support zu deaktivieren, und 1 um den Support zu aktivieren. Der Wert 3
aktivert den 32-Bit Support mit einer speziellen Sync Sequenz die von einigen Chipsets
benötigt wird. Diese Option funktioniert mit fast allen Chipsets, bringt jedoch etwas mehr
Overhead mit sich. Wird kein Parameter angegeben, so wird die aktuelle Einstellung
angezeigt.
-C Zeigt den aktuellen Power Mode Status einer IDE Festplatte an. Dieser kann folgende
Werte annehmen: „unknown“ - Das Laufwerk unterstützt dieses Kommando nicht.
„active“/„idle“ - Normalbetrieb. „standby“ - Low Power Modus, die Festplatte dreht sich
nicht oder „schläft“ sogar komplett. Die -S, -y, -Y und -Z können zur Veränderung der
IDE Power Modes verwendet werden.
-d Zeigt ob für das genannte Gerät der DMA Modus benutzt wird oder
aktiviert/deaktiviert den Modus. Das Flag „using_dma“ funktioniert nur mit wenigen
Kombinationen aus Festplatte und Controllern. Beispielsweise wird beim Intel Triton
Chipset der Bus-Master DMA Modus in verbindung mit vielen Festplatten ünterstützt.
Wenn möglich sollte die Option -X34 zusammen mit -d1 benutzt werden um
sicherzustellen das das Laufwerk selber den Multiword DMA Modus 2 unterstützt.
-f Synchonisieren und speichern des Cache Puffers der Festplatte beim beenden des
Programmes. Dieser Vorgang wird auch bei den Optionen -t und -T durchgeführt.
-g Zeigt die Plattengeometrie (Zylinder, Köpfe, Sektoren), die Größe (in Sektoren) des
Laufwerkes und den Offset (in Sektoren) des Devices vom Anfang der Platte.
-h Zeigt die Hilfeinformationen.
-i Zeigt die Identifikation der Festplatte, welche beim booten ausgelesen wurden, falls
diese verfügbar sind. Diese Funktion wird nur von neueren Festplatten unterstützt. Die
Informationen können veraltet sein wenn das System seit den Start viel beschäftigt war.
-I Zeigt die aktuelle Identifikation der Festplatte an. Wie die Option -i, die
Informationen werden allerdings neu ausgelesen.
-k Liest oder setzt das keep_settings_over_reset Flag für das Laufwerk. Wenn diese
Option gesetzt ist, werden die -dmu Optionen über einen (Soft-) Reset hinaus gespeichert.
-K Setzt das keep_features_over_reset Flag. Das setzen dieser Option rettet die APSWXZ Einstellungen über einen (Soft-) Reset hinaus. Diese Option wird nicht von alle
Laufwerken unterstützt.
-m Zeigt den aktuellen Zustand oder setzt den IDE Block Modus. Ein Wert von 0
deaktiviert diese Funktion.
-p Versucht das IDE Interface Chipset auf den gewünschten PIO Modus zu setzen oder
versucht den bestmöglichen PIO Modus einzustellen.
-q Diese Option unterdrückt die Ausgabe von Meldungen für die folgenden Optionen.
Dies kann eingesetzt werden wenn hdparm aus einer Datei beim Systemstart heraus
aufgerufen wird. Diese Option hat keine Auswirkungen auf die Optionen -i, -v, -t oder
-T.
-r Liest oder setzt das Read-Only Flag.
-S Setzt die Standby-Zeit des Gerätes. Nach der eingestellten Zeit in Sekunden fährt die
Festplatte in den Ruhezustand. Ein Wert von 0 schaltet diese Funktion aus.
-A









-T
Führt einen Benchmark mit Lesezugriffen auf den Cache durch. Um sinnvolle
Ergebnisse zu bekommen, sollte ein Test 2-3 mal auf einem System mit möglichste wenig
anderen Prozessen durchgeführt werden.
-t Führt einen Benchmark mit Lesezugriffen auf das Gerät durch. Um sinnvolle
Ergebnisse zu bekommen, sollte ein Test 2-3 mal auf einem System mit möglichste wenig
anderen Prozessen durchgeführt werden.
-u Liest oder setzt das „interrupt-unmask“ Flag. Dies kann auf vielen Systemen die
Reaktionszeit des Systems verbessern, ist aber mit Vorsicht einzusetzen, da nicht alle
Chipsets diese Funktion richtig umsetzen können. Ein Wert von 1 aktiviert diese
Funktion.
-v Zeigt die aktuellen Einstellungen an, mit Ausnahme von -i. Wenn keinerlei Optionen
auf der Kommandozeile angegeben werden wird ebenfalls -v angenommen. Bei einem
SCSI Gerät entspricht dies den Optionen -gr, bei einem IDE Gerät den Optionen acdgkmnru.
-W Aktiviert oder deaktiviert bei einem IDE Laufwerk das write-caching Feature. Dies
ist Standardmäßig deaktiviert.
-X Setzt den IDE Übertragungsmodus bei neueren (E)IDE/ATA2 Laufwerken. Diese
Option wird meistens zusammen mit -d1 benutzt um den DMA Modus von/zu einem
Laufwerk mit Chipsets die dies unterstützen (beispielsweise Intel 430FX Triton) zu
aktivieren. Dort können dann auch mit -X34 „multiword DMA mode2“ Übertragungen
aktiviert werden. Die Option -X66 aktiviert UltraDMA Mode2 Übertragungen.
-y Aktiviert sofort den Energiesparmodus bei einem IDE Laufwerk.
-Y Aktiviert sofort den Energiesparmodus mit dem geringsten Stromverbrauch bei einem
IDE Laufwerk.
-Z Deaktiviert die Stromsparfunktionen bei einigen Seagate Laufwerken die diese
Funktion nur fehlerhaft implementiert haben.
Einbinden von hdparm
Um nun nicht nach jedem Systemstart (als Superuser) das Programm hdparm neu aufrufen zu
müssen, ist es sinnvoll den Aufruf in die Init-Scripte mit aufzunehmen. Im einfachsten Fall reicht
es den entsprechenden Eintrag in der Datei /etc/init.d/bootmisc.sh aufzunehmen.
Eleganter ist es wenn ein eigenes Startscript erstellt wird. Dies kann beispielsweise wie folgt
aussehen:
#!/bin/sh
HDPARM=`which hdparm`
if [ $UID != 0 ] ; then
exit 0
else
if [ -f `which hdparm` ] ; then
if [ -f "/etc/hdparm.conf" ] ; then
{ while read dummy
do IN="$dummy"
$HDPARM `echo $IN | cut -d : -f 2` /dev/`echo
$IN | cut -d : -f 1`
done
} < /etc/hdparm.conf
else
# no config file: guess params
for i in `ls -1 /proc/ide/|grep hd[a-d]` ; do
if [ `cat /proc/ide/$i/media` = "disk" ] ; then
$HDPARM -d1 -c1 -S12 /dev/$i
else
echo; echo "/dev/$i: no disk! media is: `cat
/proc/ide/$i/media`"
fi
done
fi
fi
fi
Ohne an dem Script Veränderungen vorzunehmen, wird hdparm mit den Parametern -c1 -d1 S12 aufgerufen. Dies kann entweder direkt im Script, oder aber besser mittels der
Konfigurationsdatei /etc/hdparm.conf beeinflusst werden:
hda:-c1d1
hdc:-c1d1
Wie hier gezeigt, können die Parameter für jedes Gerät einzeln angegeben werden.
Systemzeit
Jeder Rechner verfügt heute über eine eingebaute Uhr, die über eine eingebaute Batterie die
Uhrzeit auch im ausgeschalteten Zustand weiterlaufen läßt, so das immer eine korrekte
Systemzeit eingestellt ist. Das Betriebssystem kümmert sich während der Laufzeit um die richtige
Zeit und liest die Zeit einmalig beim Systemstart aus der Hardware-Uhr aus. Die Zeit des
Betriebssystems läßt sich mit dem Kommando date anzeigen.
bash-2.03$ date
Sat Jan 22 17:54:00 CET 2000
Die Uhrzeit, die vom Uhrenchip auf dem Motherboard geliefert wird, ist normalerweise
ausreichend genau. Wenn diese Zeit um mehrere Monate oder Jahre nach dem Einschalten des
Rechners abweicht, sollten Sie die Batterie auf dem Motherboard wechseln (lassen).
Das Kommando date, so wie oben gezeigt, zeigt den Wochentag, den Monat, den Tag, die
Uhrzeit, die Zeitzone sowie das Jahr an.
Ein weiteres Kommando, welches auf die Systemzeit zugreift, ist das Kommando time. Dieses
zeigt allerdings nicht die Zeit an, wie man vielleicht vermuten könnte, sondern dient dazu, die
Zeit zu bestimmen, die bestimmte Komandos zur Ausführung benötigen.
$ time sleep 60
real
1m0.057s
user
0m0.000s
sys
0m0.000s
Wundern Sie sich nicht, dieses Kommando benötigt eine Minute. Das Kommando sleep
„schläft“ in diesem Beispiel 60 Sekunden, time ermittelt diese Zeit... nicht sehr sinnvoll, aber ein
Beispiel ;-). Wenn Sie sich einen neuen Rechner zugelegt haben und Ihre Freunde wissen, daß
Sie diesen unter GNU/Linux betreiben, werden diese vielleicht fragen, wie lange es dauert, einen
neuen Kernel zu übersetzen. Sie können diese Zeit jetzt mit dem Kommando time ermitteln.
Natürlich kommt es auch darauf an, welche Treiber Sie in den Kernel einbinden wollen und
welche Kernel-Version Sie übersetzen... doch das ist ein anderes Thema...
date
Um die Systemzeit auf Ihrem Rechner zu korrigieren, können Sie das Kommando als Superuser
benutzen. date hat eine Vielzahl von Optionen, um die Zeit zu stellen, Sie können die
gewünschte Zeit in allen nur denkbaren Formaten angeben. Hier einmal die Übersicht der
Optionen:
bash-2.03$ date --help
Usage: date [OPTION]... [+FORMAT]
or:
date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system
date.
-d, --date=STRING
`now'
display time described by STRING, not
-f, --file=DATEFILE
DATEFILE
like --date once for each line of
-I, --iso-8601[=TIMESPEC] output an ISO-8601 compliant date/time
string.
TIMESPEC=`date' (or missing) for date
only,
`hours', `minutes', or `seconds' for
date and
time to the indicated precision.
-r, --reference=FILE
FILE
display the last modification time of
-R, --rfc-822
output RFC-822 compliant date string
-s, --set=STRING
set time described by STRING
-u, --utc, --universal
Time
print or set Coordinated Universal
--help
display this help and exit
--version
output version information and exit
FORMAT controls the output.
form
The only valid option for the second
specifies Coordinated Universal Time.
Interpreted sequences are:
%%
a literal %
%a
locale's abbreviated weekday name (Sun..Sat)
%A
locale's full weekday name, variable length
(Sunday..Saturday)
%b
locale's abbreviated month name (Jan..Dec)
%B
locale's full month name, variable length
(January..December)
%c
locale's date and time (Sat Nov 04 12:02:33 EST 1989)
%d
day of month (01..31)
%D
date (mm/dd/yy)
%e
day of month, blank padded ( 1..31)
%h
same as %b
%H
hour (00..23)
%I
hour (01..12)
%j
day of year (001..366)
%k
hour ( 0..23)
%l
hour ( 1..12)
%m
month (01..12)
%M
minute (00..59)
%n
a newline
%p
locale's AM or PM
%r
time, 12-hour (hh:mm:ss [AP]M)
%s
seconds since 00:00:00, Jan 1, 1970 (a GNU extension)
%S
second (00..60)
%t
a horizontal tab
%T
time, 24-hour (hh:mm:ss)
%U
week number of year with Sunday as first day of week
(00..53)
%V
week number of year with Monday as first day of week
(01..52)
%w
day of week (0..6);
0 represents Sunday
%W
week number of year with Monday as first day of week
(00..53)
%x
locale's date representation (mm/dd/yy)
%X
locale's time representation (%H:%M:%S)
%y
last two digits of year (00..99)
%Y
year (1970...)
%z
RFC-822 style numeric timezone (-0500) (a nonstandard
extension)
%Z
time zone (e.g., EDT), or nothing if no time zone is
determinable
By default, date pads numeric fields with zeroes.
recognizes
GNU date
the following modifiers between `%' and a numeric directive.
`-' (hyphen) do not pad the field
`_' (underscore) pad the field with spaces
Report bugs to <[email protected]>.
In der Praxis werden Sie die Zeit aber nur selten korrigieren müssen, so dass an dieser Stelle ein
Beispiel reichen sollte. Sehen Sie sich nochmal die Hilfe zu date an, in der zweiten Zeile finden
Sie folgendes: or: date [OPTION] [MMDDhhmm[[CC]YY][.ss]]. Die gewünschte Zeit kann im
Format MM (Month - Monat), DD (Day - Tag), hh (Hour - Stunde) und mm (Minute) angegeben
werden. Die anderen Werte können Sie ignorieren, diese werden Sie nur selten gebrauchen. Um
die Zeit drei Tage und eine halbe Stunde zurückzustellen, benutzen Sie folgendes Kommando:
linux:/home# date
Sun Jan 23 10:47:59 CET 2000
linux:/home# date 01201017
Thu Jan 20 10:17:00 CET 2000
rdate
Wenn Sie über einen Internetanschluß verfügen, können Sie dies auch Programmen wie zum
Beispiel rdate überlassen. rdate übernimmt die Zeit von einem Server, der über eine Funkuhr
(DCF77-Signal) verfügt, aus dem Netz.
Sie können dieses Kommando in die Scripte, die Sie zum Aufbau der Internetverbindung
benutzen, einbinden. Wenn Ihr Rechner ständig oder immer zu bestimmten Zeiten mit dem
Internet verbunden ist, können Sie rdate auch über das Programm cron aufrufen, indem Sie es
in die crontab des Superusers eintragen. Rufen Sie dazu das Kommando crontab mit der
Option -e (edit - verändern) auf:
bash-2.03$ su
Password:
linux:/home# crontab -e
Ergänzen Sie nun die Einträge in dieser Datei um folgende Zeile:
10 01
* * *
/usr/sbin/rdate time.fu-berlin.de > /dev/null
Ein solcher Eintrag stellt jede Nacht um zehn Minuten nach eins die Systemzeit nach den
Angaben des Servers time.fu-berlin.de neu. Benutzen Sie bitte einen Server in Ihrer Nähe.
Viele Provider bieten einen solchen Service an, fragen Sie einfach nach.
Wenn Sie keinen geeigneten Server finden können, sollten Sie die Server der PhysikalischTechnischen Bundesanstalt (PTB) benutzen. Wie Sie vielleicht wissen, wird von der PTB das
amtliche Zeitsignal ausgesendet, welches von DCF-77-Empfängern (Funkuhren) empfangen
werden kann. Seit Anfang 2000 stellt die PTB diesen Dienst auch übers Internet zur Verfügung.
Sie können die beiden öffentlichen Zeitserver der PTB als ptbtime1.ptb.de und
ptbtime2.ptb.de erreichen.
Um die vorhin in die Vergangenheit beförderte Systemzeit zu korrigieren, können Sie rdate
natürlich auch auf der Kommandozeile ausführen:
linux:/home# /usr/sbin/rdate time.fu-berlin.de
Sun Jan 23 10:49:22 2000
Verwalten von Konfigurationsdateien
Mit fast jedem installierten Paket auf einem Linux System werden auch für die jeweilige
Softwarekomponente die notwendigen Konfigurationsdateien mitgeliefert. Das Debian Team
leistet an dieser Stelle eine sehr gute Arbeit und erstellt zu allen Paketen angepasste
Konfigurationsdateien die nicht nur auf das Debian System angepasst sind, sondern auch in fast
100 Prozent aller Fälle sofort lauffähig sind.
Dies bedeutet für den Administrator eine große Arbeitserleichterung, da die gewünschte Software
sofort, ohne weitere Konfigurationsarbeiten lauffähig ist. Natürlich können diese allgemeinen
Vorgaben nicht alle Bedürfnisse abdecken und so sind viele Pakete bereits mit
Konfigurationsprogrammen ausgestattet die den Administrator durch die Konfiguration führen.
Mit „debconf“ wurde sogar eine zentrale Datenbank, welche auch im Netz via LDAP verfügbar
gemacht werden kann, bereitgestellt, in der alle Einstellungen gespeichert werden.
In einem größeren Netzwerk kann es aber wünschenswert sein ein einheitliches System für die
Verwaltung von Konfigurationsdateien, vielleicht sogar mit einer Versionkontrolle, zu etablieren.
Hier bietet sich prinzipiell das erstellen von eigenen Debian Paketen mit den gewünschten
Konfigurationsdateien an. Das Debian Paketmanagement verhindert jedoch das überschreiben
von Dateien, so daß das erstellen von Paketen mit angepassten Konfigurationsdateien ein
Problem darstellt. Abhilfe schafft an dieser Stelle.
dpsyco
(Debian Packages of System Configurations) kann Debian „Konfigurations Pakete“
erzeugen und verwalten. Ein „Konfigurations Paket“ kann „über“ ein normales Debian Paket
installiert werden und so die in dem Debian Paket enthaltenen Konfigurationsdateien ersetzen
oder auch ergänzen.
dpsyco
dpsyco
Pakete können Konfigurationsdateien aus einem Debian Paket überschreiben, patchen
oder auch Benutzer und Gruppen hinzufügen.
Herunterladen