6 Systemdiagnose

Transcription

6 Systemdiagnose
6
Systemdiagnose
In diesem Kapitel lernen Sie:
• Die Fähigkeit, viele detaillierte Informationen über das System und die Hardware zu finden, unter anderem, wie Sie herausfinden, welche Chipsätze Grafikkarten und Netzwerkkarten enthalten und was Sie zu deren Konfiguration ben ötigen.
• Kerneleigenschaften zur Laufzeit zu beeinflussen
• Kernel-Laufzeitvariablen flüchtig und dauerhaft zu setzen
• IDE-Festplattenzugriffe zu optimieren
• SCSI-Geräte im laufenden Betrieb hinzuzufügen/zu entfernen
6.1 Das /proc-Dateisystem
6.1.1
Das Verzeichnis /proc
Im Linux-Kernel wird eine besondere Schnittstelle für die Anzeige der KernelLaufzeit-Parameter benutzt. Die Schnittstelle besteht aus einigen Dateien im procDateisystem (gemountet im Verzeichnis /proc), die Kernel-Parameter oder KernelTabellen und Strukturen beinhalten. proc ist dabei ein Pseudo-Dateisystem, es steht
also dahinter kein physikalisches Gerät. Viele UNIX-Administrationsprogramme nutzen die Informationen aus dem /proc-Dateisystem.
Das /proc-Dateisystem ist einzigartig unter den Betriebssystemen, denn damit kann
man nicht nur richtig gut in den Kern und in die Hardware hineinschauen, sondern
auch Kernel-Parameter zur Laufzeit verändern.
Sehr ausführliche Dokumentation findet man in der Kernel-Dokumentation
/usr/src/linux/Documentation/filesystems/proc.txt
oder in der Man-Page man 5 proc.
✎
Beispiele für /proc-Dateien:
interrupts beinhaltet eine Liste der benutzten Interrupts.
ioports Liste der belegten IO-Ports
devices Informationen, welche Geräte-Treiber im Kernel geladen sind. Die Zahl vor
dem Treiber repräsentiert die Major-Number , also die Treiber-Nummer des
143
Systemdiagnose
Geräte-Treibers. Will man Gerätedateien für dieses Gerät mit mknod anlegen,
wo muß man diesem unter anderem diese Treibernummer angeben.
pci Informationen über die PCI-Geräte im System. Ab Kernel 2.6 ist diese Datei nicht
mehr vorhanden; dafür sind ähnliche Informationen in /proc/bus/pci/devices
zu finden.
cpuinfo enthält den Typ/Geschwindigkeit des Prozessors.
mounts liefert eine stets aktuelle Liste der zur Zeit gemounteten Dateisysteme (und
ändert sich immer beim Aufruf eines mount- bzw. umount-Kommandos).
Dies ist besonders dann nützlich, wenn das Root-Filesystem nur read-only gemountet ist, und dadurch die eigentlich dafür zuständige /etc/mtab nicht den
aktuellen Zustand repräsentiert. Das Format der Datei ist mit dem der Datei
/etc/fstab identisch, nur daß hier die letzten beiden Spalten (die fsck bzw.
dump zuständig sind) keine Bedeutung haben und stets als 0 angegeben werden. Dokumentation zu dieser Datei findet man mittels man mount und man
fstab.
partitions ist eine Liste aller Partitionen aller Platten, die der Kernel kennt. Die
Zahlen vor dem Gerätenamen sind die Major-Number, die Minor-Number der
Gerätedatei und die Partitionsgröße.
tty/driver/serial zeigt den Zustand der seriellen Schnittstellen an.
sys/dev/parport/parportSchnittstellen-Nummer/ enthält Konfigurationen zu
den parallelen Schnittstellen. Besonders interessant ist hier die Datei irq, in
der der Schnittstelle zugewiesene IRQ steht (-1 bedeutet, daß die Schnittstelle
keinen IRQ belegt). Beachten Sie dabei, daß das Modul parport pc geladen
sein muß, damit dies im /proc-Dateisystem erscheint.
sys/dev/cdrom/info zeigt Informationen über die eingebauten CD-Laufwerke an.
driver/rtc steht für Real Time Clock und überwacht die Echtzeituhr des Systems.
Interessant ist hier der Batteriestatus!
loadavg zeigt den Durchschnittswert der Systemlast.
uptime zeigt an, wie lange das System schon läuft.
Tip: Eine übersichtlichere und deutlich lesbarere Variante zu /proc/pci bzw.
/proc/bus/pci/devices liefert das Kommando lspci:
144
6.1 Das /proc-Dateisystem
$ lspci
00:00.0 Host bridge: Acer Laboratories Inc. [ALi] M1541 (rev 04)
00:01.0 PCI bridge: Acer Laboratories Inc. [ALi] M5243 (rev 04)
00:07.0 ISA bridge: Acer Laboratories Inc.
[ALi] M1533 PCI to ISA Bridge [Aladdin IV] (rev c3)
00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139 (rev 10)
00:09.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c810 (rev 23)
00:0a.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c810 (rev 02)
00:0f.0 IDE interface: Acer Laboratories Inc. [ALi] M5229 IDE (rev c2)
01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage IIC AGP (rev 7a)
Dieses Kommando ist nützlich, um herauszufinden, welchen Chipsatz eine neue Netzwerkkarte, die Grafikkarte oder der SCSI-Controller hat. Damit fällt es leicht, das passende Kernel-Treibermodul zu finden, da die Module auch nach dem Chipsatz benannt
sind, und nicht nach dem Kartennamen.
Tip: Eine sehr gute Übersicht über Geräte, IRQs, I/O-Ports und DMA-Kanäle liefert
der Befehl lsdev:
$ lsdev
Device
DMA
IRQ I/O Ports
-----------------------------------------------53c7,8xx
9 10
cascade
4
2
dma
0080-008f
dma1
0000-001f
dma2
00c0-00df
eth0
11 dc00-dcff
fpu
13 00f0-00ff
ide0
14 01f0-01f7 03f6-03f6 ffa0-ffa7
ide1
15 0170-0177 0376-0376 ffa8-ffaf
keyboard
1 0060-006f
ncr53c7,8xx
d400-d47f d800-d87f
pic1
0020-003f
pic2
00a0-00bf
rtc
8 0070-007f
serial
3 02f8-02ff 03f8-03ff
timer
0 0040-005f
vga+
03c0-03df
145
Systemdiagnose
Tip:
Auch procinfo liefert eine Übersicht über das System:
# procinfo
Linux 2.2.17-21mdk (chmou@no) (gcc 2.95.3 19991030 )
#1 Thu Oct 5 13:16:08 CEST 2000 1CPU [johannes]
Memory:
Mem:
Swap:
Total
130656
248968
Used
108308
0
Free
22348
248968
Bootup: Wed Feb 21 19:35:47 2001
user :
nice :
system:
idle :
uptime:
irq
irq
irq
irq
irq
irq
6.1.2
0:
1:
2:
3:
6:
8:
0:11:26.29
1:37:26.11
0:02:45.92
0:00:55.55
1:52:33.85
675387
23026
0
46652
2
1
10.2%
86.6%
2.5%
0.8%
Shared
0
Buffers
15304
Cached
41356
Load average: 1.01 1.05 1.06 2/83 3439
page in :
page out:
swap in :
swap out:
context :
timer
keyboard
cascade [4]
serial
rtc
irq
irq
irq
irq
irq
irq
66484
29734
1
0
1269700
9:
10:
11:
13:
14:
15:
disk
disk
disk
disk
18685
80
32038
1
20403
5
1:
2:
3:
4:
15934r
2743r
2727r
3054r
4544w
2545w
3431w
2978w
53c7,8xx
53c7,8xx
eth0
fpu
ide0
ide1
Das Verzeichnis /proc/net/
Einige Kernel-Netzwerk-Tabellen befinden sich im Verzeichnis /proc/net/.
Beispiele /proc/net/-Dateien:
dev Tabelle der Netzwerk-Devices mit Statistiken
arp die ARP-Tabelle
route die Routing-Tabelle
ip masquerade enthält eine Übersicht, über alle Verbindungen, die der Rechner über
IP-Masquerading weiterleitet (existiert ab Kernel 2.6 nicht mehr).
146
✎
6.1 Das /proc-Dateisystem
6.1.3
Das Verzeichnis /proc/sys/
Das /proc/sys/-Verzeichnis enthält zwei Arten von Pseudodateien:
• Normale Dateien, die Statusinformationen ausgeben, wie alle, die wir oben
schon kennengelernt haben. Diese sind nur lesbar.
• Kernelparameter-Dateien. Diese repräsentieren die Werte von Kernelvariablen,
etwa die maximale Anzahl der geöffneten Dateien, das IP-Forwarding, etc. In
diese Dateien kann auch vom Systemadministrator geschrieben werden. Dadurch läßt sich der Wert dieser Variablen ändern. Dies ist jedoch ein flüchtiger Zustand. Beim nächsten Neustart sind die Einstellungen zurückgesetzt. Abhilfe schafft bei RedHat und Debian das Utility sysctl (Konfigurationsdatei
/etc/sysctl.conf), mit dem sich diese Einstellungen dauerhaft konfigurieren
lassen. Auch SuSE verwendet mittlerweile sysctl mit der zusätzlichen Konfigurationsdatei /etc/sysconfig/sysctl.
Allgemeine Kernel-Parameter regeln die allgemeinen Eigenschaften des Kernels.
✎
Beispiele:
fs/ Dieses Unterverzeichnis enthält Parameter, die Dateisysteme betreffen.
fs/file-max enthält die maximale Anzahl geöffneter Dateien, die der Kernel verwaltet.
✎
Beispiel:
# cat /proc/sys/fs/file-max
4096
# echo 8192 > /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max
8192
kernel/panic Steht hier eine 0, dann bleibt der Kernel beim Systemabsturz in einer
Panic-Schleife ; ungleich 0 bedeutet, daß der Kernel nach sovielen Sekunden
automatisch das System wieder hochfahren soll.
kernel/version enthält die Kernel-Version
kernel/ctrl-alt-del Ist diese Variable 0, so wird ein Signal an den init-Prozeß weitergeleitet, so daß dieser elegant das System herunterfahren kann. (Siehe entsprechende Zeile in /etc/inittab.) Ist diese Variable 1, so macht der Kernel
147
Systemdiagnose
bei dieser Tastenkombination einen unbarmherzigen Reboot, ohne die PlattenCaches auf die Platte zurückzuschreiben.
vm/ In diesem Unterverzeichnis läßt sich die Politik des Kernels in Sachen Speicherverwaltung einstellen.
IP-Kern-Parameter befinden sich in den /proc/sys/net/ipv4/-Dateien.
Beispiele:
✎
ip forward Das IP-Forwarding (Routing) ist bei 1“ eingeschaltet und bei 0“ aus”
”
geschaltet. Das bedeutet, daß, bei aktiviertem IP-Forwarding, Pakete von einer
Netzwerkschnittstelle auf die andere durchgeleitet werden.
tcp syncookies bietet, wenn es aktiviert ist, Schutz gegen das Überfluten des Rechners mit Verbindungsaufbau-Paketen (SYN-Flooding ). Soll aktiviert sein.
ip always defrag defragmentiert IP-Pakete immer. Ist auf jeden Fall bei einer Firewall notwendig. Da die Quell- und Zieladressen sowie Ports, nach denen ja gefiltert wird, nur im Header des Pakets und damit im ersten Fragment stehen, so
muß man, um über ein fragmentiertes Paket zu entscheiden, dieses erst defragmentieren. Diese Datei existiert ab Kernel 2.6 nicht mehr.
conf/Schnittstelle/rp filter aktiviert für die angegebene Schittstelle den Schutz
gegen IP-Spoofing, also den Schutz vor vorgetäuschten IP-Adressen. Soll aktiviert sein.
conf/Schnittstelle/accept redirects legt fest, ob die Schnittstelle ICMP-Redirects
unterstützt. Dies wird meist nur für Angriffe ausgenutzt und soll daher deaktiviert sein.
conf/Schnittstelle/accept source route läßt auf dieser Schnittstelle SourceRouting zu, das heißt, daß der Absender eines Paketes festlegt, welchen Weg
das Paket nimmt. Auch das ist heute fast nur für Angriffe nützlich und soll daher
deaktiviert sein.
6.1.4
Die Prozeßnummern-Verzeichnisse
sind direkte Unterverzeichnisse von /proc/ in der Gestalt /proc/Prozeßnummer/.
In diesen Verzeichnissen findet man alle Informationen über einen laufenden Prozeß.
Inhalte:
cmdline Die Kommandozeile des Programmaufrufs
148
6.2 Kernel-Variablen dauerhaft verankern
environ Die Umgebungsvariablen des Prozesses
cwd Das aktuelle Verzeichnis des Prozesses
mem Speicherverbrauch des Prozesses
exe Die ausführbare Datei, die den Prozeß erzeugt hat
root Verknüpfung auf das root-Verzeichnis des Prozesses
!
Achtung: Manchmal sperrt man aus Sicherheitsgründen Prozesse, die ein
Sicherheitsrisiko darstellen, in einen Sandkasten, also einem kleinen RootDateisystem, ein, damit er am System keinen Schaden nehmen kann. Diesen Sandkasten kann man mit dem Befehl chroot erzeugen und deswegen
nennt man das in der Fachsprache chroot-Umgebung . In dieser darf jedoch kein
/proc-Dateisystem gemountet werden, denn mit /proc/1/root/ kann man
zum ursprünglichen Root-Verzeichnis zurück.Damit kann das unter Umständen
eine Sicherheitslücke darstellen.
6.2 Kernel-Variablen dauerhaft verankern
Bei SuSE, RedHat und Debian findet dagegen das Utility sysctl Verwendung, das
beim Hochfahren des Systems diese Variablen aufruft und die Kernel-Variablen auf
die in der Datei /etc/sysctl.conf setzt:
✎
Beispieldatei für einen Router/Firewall:
/etc/sysctl.conf
# IP-Spoofing verhindern
net.ipv4.conf.all.rp_filter = 1
# ICMP-redirects verhindern
net.ipv4.conf.all.accept_redirects = 0
# Source-Routing deaktivieren
net.ipv4.conf.all.accept_source_route = 0
# IP-Forwarding aktivieren
net.ipv4.ip_forward = 1
# IP-Pakete immer defragmentieren (f. Paketfilter-Firwall notwendig)
# Nicht möglich, wenn Masquerading betrieben wird
# Ab Kernel 2.6 nicht mehr vorhanden
# net.ipv4.ip_always_defrag = 1
# TCP SYN Cookie-Schutz aktivieren
net.ipv4.tcp_syncookies= 1
149
Systemdiagnose
Anstatt der umständlichen Schleifen kann man hier einfach das Schlüsselwort all verwenden.
Tip: Hat man zur Laufzeit des Systems etwas an dieser Konfigurationsdatei verändert,
so kann man mit
# sysctl -p
die aktuelle Konfiguration aktivieren.
6.3 IDE- und SCSI-Geräte überwachen und steuern
6.3.1
IDE-Geräte
Informationen über IDE-Geräte findet man unter /proc/ide/Gerät/:
cache Größe des Hardware-Cache
capacity Kapazität der Platte
geometry Hard/Softwaregeometrie der Platte
model Modell-Bezeichnung
settings Festplattenparameter
6.3.2
Festplatten-Tuning
bedeutet, daß man an einigen Parametern der Festplatte herumschrauben kann. Dies
kann jedoch unter Umständen fatale Folgen haben (Datenverlust), falls nicht von fachkundiger Hand durchgeführt. Hier beschränken wir uns auf ungefährliche Optimierungen.
Das Utility hdparm manipuliert die Festplatten-Laufzeit-Parameter. Hier die Benutzung anhand einiger
150
6.3 IDE- und SCSI-Geräte überwachen und steuern
✎
Beispiele:
Geräteinformationen: # hdparm -i /dev/hda
/dev/hda:
Model=ST320423A, FwRev=3.02, SerialNo=7EJ0Y17L
Config= HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5%
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=512kB, MaxMultSect=32, MultSect=32
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=40011300
IORDY=on/off, tPIO=min:240,w/IORDY:120, tDMA=min:120,rec:120
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4
Hier kann man einiges an Informationen entnehmen: Die Platte unterst ützt LBA,
Ultra DMA 4, das gerade aktiv ist.
Es gibt folgende Arten der Datenübertragung zwischen Festplatte und Hauptspeicher:
Programmed IO Die PIO-Modi 0-5 benutzen die CPU als Teil des Daten übertragungsweges und verbrauchen daher Rechenzeit. Die maximalen Datenübertragungsgeschwindigkeiten reichen von 3,3 MB/s (PIO 0) bis 16,6
MB/s (PIO 5).
Direct Memory Access bedeutet, daß die Festplatte ohne Zutun der CPU die
Daten in den Hauptspeicher überträgt. Es existieren die Spielarten MDMA (Multiword DMA) und UDMA (Ultra DMA). Ersteres spielt heute
eine untergeordnete Rolle, während fast alle modernen Platten Ultra DMA
beherrschen. Derzeit existieren die Ultra DMA-Modi 0-5. Die maximalen
Datenübertragungsgeschwindigkeiten reichen von 16,7 MB/s (UDMA 0)
bis 100 MB/s (UDMA 5).
DMA-Modus aktivieren/deaktivieren:
# hdparm -d 1 /dev/hda
# hdparm -d 0 /dev/hda
# DMA aktivieren
# DMA deaktivieren
Sollte die Platte kein DMA unterstützen, fällt sie automatisch in den vorigen
Modus zurück.
151
Systemdiagnose
Ultra DMA-Modus aktivieren Die Festlegung des Übertragungs-Modus erfolgt mit
dem Argument -X und einer darauffolgenden Zahl, die den Übertragungsmodus
bestimmt:
Modus
PIO-0
PIO-1
PIO-2
PIO-3
PIO-4
Zahl
8 (0+8)
9 (1+8)
10 (2+8)
11 (3+8)
12 (4+8)
Modus
Zahl
MDMA-0 32 (0+32)
MDMA-1 33 (1+32)
MDMA-2 34 (2+32)
Modus
UDMA-0
UDMA-1
UDMA-2
UDMA-3
UDMA-4
UDMA-5
Zahl
64 (0+64)
65 (1+64)
66 (2+64)
67 (3+64)
68 (4+64)
69 (5+64)
Beispiel: Aktivieren des UDMA-5 auf der ersten IDE-Platte im System:
✎
# hdparm -d 1 -X 69 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
setting xfermode to 69 (UltraDMA mode5)
using_dma
= 1 (on)
Multisektormodus (IDE-Blockmode) aktivieren Moderne IDE-Festplatten haben zumeist die Fähigkeit, nicht nur einen Sektor zu 512 Bytes, sondern gleich mehrere
Sektoren hintereinander in einem Zug zu übertragen. Da bei größeren Dateien
auf der Platte meist die Daten auf hintereinanderliegenden Sektoren abgelegt
sind, beschleunigt das den Dateizugriff erheblich.
Um den Multisektormodus zu aktivieren, müssen Sie zuerst herausfinden, wieviele Sektoren die Platte pro Zugriff gleichzeitig übertragen kann:
# hdparm -i /dev/hda
/dev/hda:
Model=FUJITSU MHT2040AT, FwRev=009A, SerialNo=NN67T3813W96
Config= HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=DualPortCache, BuffSize=2048kB, MaxMultSect=16, MultSect=off
...
Im dargestellten Beispiel sehen Sie, daß die Platte Multisektormodus mit 16 Sektoren gleichzeitig beherrscht. Im Beispiel aktivieren Sie den Multisektormodus
wie folgt:
152
6.3 IDE- und SCSI-Geräte überwachen und steuern
# hdparm -m 16 /dev/hda
/dev/hda:
setting multcount to 16
multcount
= 16 (on)
Datentransferrate testen: # hdparm -Tt /dev/hda
/dev/hda:
Timing buffer-cache reads:
Timing buffered disk reads:
128 MB in 2.40 seconds = 53.33 MB/sec
64 MB in 3.40 seconds = 18.82 MB/sec
Die Kommunikation zwischen Plattencontroller und Rechner erfolgt hier mit 53
MB pro Sekunde, der effektive Datentransfer beim Lesen von der Platte ist rund
19 MB pro Sekunde.
Plattenmotor abschalten: Nach einer gewissen Zeit der Inaktivität kann man den
Plattenmotor ruhen lassen. Er fährt dann erst beim nächsten Zugriff wieder hoch.
Dies ist vor allem bei Laptops nützlich, um Batterie zu sparen:
# hdparm -S 180 /dev/hda1
Hier schalten wir den Plattenmotor nach 15 Minuten=180 mal 5 Sekunden ab.
Werte von 1 bis 240 sind möglich. Für längere Zeiten siehe die Man-Page von
hdparm.
Man kann den Plattenmotor mit
# hdparm -y /dev/hda
sofort herunterfahren.
6.3.3
SCSI-Geräte
lassen sich über die Datei /proc/scsi/scsi einsehen und manipulieren.
✎
Beispiel:
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 06 Lun: 00
153
Systemdiagnose
Vendor: YAMAHA
Model: CRW4416S
Type:
CD-ROM
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: iomega
Model: jaz 1GB
Type:
Direct-Access
Host: scsi1 Channel: 00 Id: 01 Lun: 00
Vendor: IBM
Model: DPES-31080
Type:
Direct-Access
Host: scsi1 Channel: 00 Id: 03 Lun: 00
Vendor: DEC
Model: DSP3107LS
Type:
Direct-Access
Host: scsi1 Channel: 00 Id: 04 Lun: 00
Vendor: DEC
Model: DSP3107LS
Type:
Direct-Access
Rev: 1.0h
ANSI SCSI revision: 02
Rev: H.72
ANSI SCSI revision: 02
Rev: S31Q
ANSI SCSI revision: 02
Rev: HPM0
ANSI SCSI revision: 02
Rev: HPM0
ANSI SCSI revision: 02
Hier finden wir auf SCSI-Controller Nummer 0 auf der SCSI-ID 6 einen CD-Brenner,
und auf SCSI-Controller Nummer 1 ein JAZ-Laufwerk (ID 0) und drei Festplatten (IDs
1,3,4).
Manchmal kommt es vor, daß man vor allem externe Geräte erst einschaltet, nachdem
der Rechner schon hochgefahren ist. In diesem Fall erkennt der SCSI-Controller das
neue Gerät nicht sofort. Beispielsweise möchte man einen Scanner nur dann einschalten, wenn man ihn tatsächlich braucht, um die Lampe nicht unnötig zu strapazieren.
Beispiel: Wir binden ein neues SCSI-Gerät ein, indem wir einen Konfigurationsbefehl nach /proc/scsi/scsi schreiben:
✎
# echo "scsi add-single-device 0 0 5 0" > /proc/scsi/scsi
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 06 Lun: 00
Vendor: YAMAHA
Model: CRW4416S
Rev: 1.0h
Type:
CD-ROM
ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 05 Lun: 00
Vendor: SCANNER Model:
Rev: V101
Type:
Scanner
ANSI SCSI revision: 01 CCS
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: iomega
Model: jaz 1GB
Rev: H.72
Type:
Direct-Access
ANSI SCSI revision: 02
...
Syntax:
154
6.3 IDE- und SCSI-Geräte überwachen und steuern
# echo Kommando HostAdapter Channel ID LUN > /proc/scsi/scsi
Kommando darf dabei die Werte add-single-device oder remove-single-device
annehmen. Danach folgt die Nummer des Hostadapters, der Channel (spielt nur bei
Mehrkanal-Controllern eine Rolle), die SCSI-ID und die LUN.
155
Systemdiagnose
6.4 Wissensfragen
1. Wo findet sich Dokumentation zum proc-Dateisystem?
2. Welche /proc/-Datei zeigt
• die aktuell gemounteten Dateisysteme?
• alle erkannten Festplattenpartitionen?
• die Konfiguration der seriellen Schnittstellen?
• alle Geräte am PCI-Bus?
3. Welche Kommandos geben eine übersichtliche Darstellung des PCI-Busses, der
aktiven Gerätetreiber und des Systemstatus?
4. In welchem Unterverzeichnis findet man Dateien, mit denen man das Laufzeitverhalten des Kernels beeinflussen kann?
5. In welchem Verzeichnis befinden sich die Kernel-Variablen, um Netzwerkparameter wie IP-Forwarding zu konfigurieren?
6. Was bedeuten die Nummern-Verzeichnisse unterhalb von /proc/? Was enthalten sie?
7. Wie können Sie bei Ihrer Distribution diese Einstellungen beim Neustart wiederherstellen lassen?
156
6.4 Wissensfragen
8. Mit welchem Kommando können Sie die Parameter von IDE-Geräten einsehen/verändern?
9. Sie wollen, daß sich der Festplattenmotor der Platte /dev/hda2 nach zehn Minuten Inaktivität abschaltet. Wie machen Sie das?
10. Wie lassen Sie sich Informationen über alle angeschlossenen SCSI-Geräte anzeigen?
11. Sie haben vergessen, ein externes SCSI-CDROM-Laufwerk beim Systemstart
einzuschalten und wollen es daher nachträglich vom SCSI-Treiber erkennen lassen. Das Laufwerk hängt am Controller mit der Bezeichnung scsi2, der nur
einen Kanal hat. Es hat die SCSI-ID 1 und hat nur eine Schublade.
157
Systemdiagnose
158
6.5 Übungen
6.5
Übungen
1. Welche Chipsätze haben Ihre Grafikkarte und Ihre Netzwerkkarte?
2. Welche IRQs sind auf dem System noch frei?
3. Wie steht es um die Batterie der CMOS-Uhr?
4. Der Kernel eines Servers soll nach dem Systemstart folgendes Laufzeitverhalten
aufweisen:
• IP-Forwarding ist deaktiviert
• Der Schutz gegen SYN-Flooding soll aktiviert sein
• Der Schutz gegen IP-Spoofing soll aktiviert sein
• IP-Pakete brauchen nicht defragmentiert zu werden
• ICMP-Redirect-Nachrichten sollen nicht angenommen werden
• Source-geroutete-Pakete sollen nicht angenommen werden
• Der Rechner soll maximal 16384 gleichzeitig geöffnete Dateien zulassen
• Bei einem Kernel-Panic-Systemabsturz soll der Rechner in 5 Sekunden neu
starten
5. Welchen Datendurchsatz hat Ihre IDE-Platte?
159
Systemdiagnose
6.6 Lösungen
1. Benutze lspci
2. Benutze procinfo, um den freien IRQ zu finden.
3. cat /proc/driver/rtc
4.
/etc/sysctl.conf
# IP-Spoofing verhindern
net.ipv4.conf.all.rp_filter = 1
# ICMP-redirects verhindern
net.ipv4.conf.all.accept_redirects = 0
# Source-Routing deaktivieren
net.ipv4.conf.all.accept_source_route = 0
# IP-Forwarding aktivieren
net.ipv4.ip_forward = 0
# TCP SYN Cookie-Schutz aktivieren
net.ipv4.tcp_syncookies= 1
# maximal 16384 geöffnete Dateien zulassen
fs.file-max = 16384
# Bei Kernel-Panic nach 5 Sekunden Reboot
kernel.panic = 5
5. hdparm -Tt /dev/hda
160