S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology)
Debian Paket smartmontools
Konfigurationsdateien
/etc/default/smartmontools
- zum Festlegen ob der Daemon laufen soll, welcher Testintervall und welche Platten überwacht werden
/etc/smartd.conf
- Optionen für den Daemon
Optionen
DEVICESCAN | sucht beim Start nach allen möglichen Devices, von /dev/hda - /dev/hdt und /dev/sda - /dev/sdz. Für alle gefundenen Device wird SMART aktiviert. |
/dev/hda -a -m admin@domain.tld,root@localhost | -a alle Attribute überwachen -m E-Mail Benachrichtigung bei Fehlern der /dev/hda |
/dev/hda -a -o on -S on -s (S/../.././02|L/../../6/03) | |
-a | alle Attribute überwachen, auch Offlineattribute |
-o on | in regelmässigen Abständen |
-S on | speichert geänderte Attribute automatisch und dauerhaft |
-s (S/../.././02|L/../../6/03) | Test festlegen T/MM/DD/d/HH |
T | Typ des Testes S - Short, L - Long Selbsttest |
MM | Monat des Jahres von 01 - 12, als Platzhalte Punkte einsetzen |
DD | Tag des Monats 01 - 31 |
d | einzelne Wochentage 1 - Montag bis 7 - Sonntag |
H | Stunde des Tages von 00 - 23 |
z.B.
S/../.././02 einen Kurztest (short) täglich 2:00 Uhr morgens L/../../6/03 einen Langen Test (long) am Samstag 3:00 Uhr morgens
smartd | Demon Programm, schreibt Fehler ins Syslog |
smartctl -i /dev/hda | Informationen zur Festplatte anzeigen |
Device Model: ST3120023A Serial Number: 3KA01CV8 Firmware Version: 3.31 Device is: In smartctl database [for details use: -P show] ATA Version is: 6 ATA Standard is: ATA/ATAPI-6 T13 1410D revision 2 Local Time is: Mon Sep 20 13:52:25 2004 UTC SMART support is: Available - device has SMART capability. SMART support is: Disabled
wenn SMART support is: Disabled angezeigt wird, ist die SMART Unterstützung im BIOS des Rechners deaktiviert. SMART kann man für die Sitzung auch mit der Option (-s on|off) ein bzw. ausschalten.
smartctl -s on | SMART Support aktivieren |
smartctl -H /dev/hda | Health-Status abfragen |
smartctl -A /dev/hdb | SMART AttributTabelle anzeigen |
smartctl -a /dev/hdb | Werte aller SMART Attribute anzeigen |
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 081 072 034 Pre-fail Always - 53896576 3 Spin_Up_Time 0x0003 070 070 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 099 099 020 Old_age Always - 1484 5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 36 7 Seek_Error_Rate 0x000f 082 060 030 Pre-fail Always - 171986804 9 Power_On_Hours 0x0032 088 088 000 Old_age Always - 10880 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 588 194 Temperature_Celsius 0x0022 037 066 000 Old_age Always - 37 195 Hardware_ECC_Recovered 0x001a 081 072 000 Old_age Always - 53896576 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 197 000 Old_age Always - 10 200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0 202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0
Spalten | |
---|---|
VALUE | enthält den aktuellen Wert, meist je grösser der Wert dieser Spalte um so besser. |
WORST | den bislang schlechtesten Wert |
THRESH | vom Hersteller angegebene Schwelle, fällt der aktuelle Wert auf den Wert der Schwelle oder darunter, so gilt das Attribut als schadhaft und wird in der Spalte WHEN_FAILED verzeichnet. (Threshold - Grenzwert) |
TYPE | Attribut Old_age sind normale Alterungsprozesse der Festplatte, Attribut Pre-fail sind kritische Fehler (versagen innerhalb der nächsten Stunden droht), sofortiger Austausch bei solchen Fehlern !! |
UPDATED | ALWAYS wird ständig aktualisiert, OFFLINE wird regelmässig aktualisiert, meist je Stunde oder durch smartctl -t offline /dev/hda |
WHEN_FAILED | in dieser Spalte wird das Attribut gekennzeichnet, das einen Fehler ausgelöst hat durch FAILING_NOW |
RAW_VALUE | konkrete Anzahl von Vorkommnissen |
ID | Attribut Name | Bedeutung |
---|---|---|
1 | Raw_Read_Error_Rate | Lesefehlerrate, wenn der Grenzwert erreicht ist, sollte ein Backup gemacht und die Platte ausgetauscht werden. |
3 | Spin_Up_Time | Motoranlaufzeit, ist er in der nähe des Grenzwertes , kann es auf einen Plattenkollaps hindeuten. |
5 | Reallocated_Sector_Ct | wird der Schwellwert erreicht, stehen keine Reservesektoren zum Austausch defekter Sektoren mehr zur Verfügung. |
7 | Seek_Error_Rate | Fehlerrate beim Positionieren des Festplattenkopfes |
9 | Power_On_Hours bei Seagate und bei Maxtor Power_On_Minutes | Betriebszeit der Platte, je nach Hersteller mal in Stunden (Hours wie im Beispiel), mal in Minuten angegeben. |
12 | Power_Cycle_Count | Einschaltvorgänge, lange Laufzeit (ID9) bei niedrigen Einschaltvorgängen, deuten darauf hin, das die Platten im Server laufen, geringe Laufzeit bei hohen Einschaltvorgängen ist ein Arbeitsplatzrechner. |
194 | Temperature_Celsius | Temperatur der Platte in Celsius, Spalte WORST enthält den Maximalwert, der jemals gemessen wurde |
195 | Hardware_ECC_Recovered | korrigierte Lesefehler |
196 | Reallocated_Event_Count | Anzahl der bereits ausgetauschte Sektoren |
197 | Current_Pending_Sector | Anzahl der noch nicht ausgetauschten defekten Sektoren |
Write_Error_Rate | Schreibfehlerrate |
- ein Online-Test wird automatisch durchgeführt, wenn man SMART im BIOS oder mittels Option -s on aktiviert hat.
smartctl -c /dev/hda | SMART Methoden anzeigen, die die Platte unterstützt und Zeit die der Test benötigt |
smartctl -t offline /dev/hda | einen Offline-Test starten, die Liste der SMART-Attribute wird aktualisiert, der Offline-Test wird unterbrochen wenn das Betriebssystem auf die Platte zugreift und danach wieder fortgesetzt, so das keine Geschwindigkeitseinbussen entstehen. |
smartctl -t short /dev/hda | Kurztest meist nur 1min |
smartctl -t long /dev/hda | Langer Test, je nach Plattengrösse bei 80GB ca. 50min, bei 120GB ca. 80min, die Länge des Testes wird mit dem Aufruf von smartctl -c /dev/hda angezeigt. |
smartctl -t offline -C /dev/hdb | mit der Option -C kann man einen Test im Captive-Mode durchführen, sollte aber nur auf Festplatten durchgeführt werden, die nicht im Verzeichnisbaum eingehängt sind, da er die Platte vollständig beansprucht. |
smartctl -X | Test abbrechen |
smartctl -l error /dev/hdb | Abfrage der ERROR Logs |
smartctl -l selftest /dev/hda | Abfrage der Self-Test Logs |
smartctl -P show /dev/hda | zeigt an ob die Platte in der Datenbank von Smartctl steht, in dieser Datenbank wird das Attribut zu der ID zugeordnet, da nur die ID auf der Platte verzeichnet ist und die ID von Hersteller zu Hersteller variiert. |
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 2333 - # 2 Short offline Completed without error 00% 1189 - # 3 Extended offline Self-test routine in progress 90% 10882 -
- der aktuellste Test steht oben, die Spalte Remaining zeigt an, wieviel des Testes noch durchgeführt werden muss.
man Befehl - Manpage zum Befehl anzeigen
Sektionen der MAN Page
1 Ausführbare Programme oder Shellbefehle
2 Systemaufrufe (Kernelfunktionen)
3 Bibliotheksaufrufe (Funktionen in System-Bibliotheken)
4 Spezielle Dateien (gewöhnlich in /dev)
5 Dateiformate und Konventionen, z. B. /etc/passwd
6 Spiele
7 Makropakete und Konventionen, z. B. man(7), groff(7)
8 Systemadministrationsbefehle (in der Regel nur für root)
9 Kernelroutinen [Nicht Standard]
die Sektionen kann man hinter MAN angeben z.B.
man 1 Befehl oder
man 6 Befehl
Suche in der MAN Page
/Suchbegriff | vorwärts suche |
?Suchbegriff | rückwärts suche |
n | Suche forfsetzen |
Leertaste | Seite weiterblättern |
b | Seite zurückblättern |
q | beenden |
Umgebugsvariable | |
LANG=de_DE | MAN Page in Deutsch anzeigen (so weit verfügbar) |
sonstige Befehle zur Systemhilfe | |
whatis Befehl | Kurzinformationen über einen Befehl (sucht nur nach ganzen Wörtern), gleich "man -f Befehl" |
apropos Befehl | Kurzinformationen über einen Befehl |
info Befehl | Informationen über Kommando und Bibliotheksaufrufen |
info | zeigt Überblick über vorhandene INFO Seiten |
Navigation auf INFO Seiten | |
TAB | vorwärts navigieren |
ALT-TAB | rückwärtz navigieren |
Enter | Navigation zur Unterebene |
u | Ebene zurück navigieren |
n (next) | folgenden Abschnitt ansteuern |
p (previous) | vorherigen Abschnitt ansteuern |
sSTICHWORT | Stichwortsuche |
iSTICHWORT | Index suche |
Leertaste | Seite weiter blättern |
Backspace | Seite zurück blättern |
CTRL-S | suche vorwärts |
CTRL-R | suche rückwärts |
q | verlassen |
sudo Befehl | führt Befehl mit ROOT Rechten aus |
visudo | editieren und syntax Prüfung der /etc/sudoers |
sudo -l | anzeigen einer Liste aller erlaubten Berechtigungen die in der sudoers eingetragen sind. |
sudo -L | anzeige alle Optionen aus /etc/sudoers |
sudo -s | Rootshell starten |
sudo -v | Timeout Ticket verlängern |
sudo -k | Timeout Ticket löschen |
sudo -b Befehl | einen Befehl im Hintergrund ausführen |
sudo -i | LoginShell wird gestartet, Dateien /etc/profile, /~/.bash_profile, /~/.bash_login, /~/.profile werden abgearbeitet |
die Aliasnamen in /etc/sudoers dürfen nur aus Grossbuchstaben, Unterstriche und Zahlen bestehen.
sudo verwendet ein Zeit-Ticket-System bei der Abfrage des Benutzerpasswortes, es ist meist 15min gültig (je nach Distribution). Diese Zeit läst sich
mit dem Eintrag in der /etc/sudoers beinflussen.
Defaults timestamp_timeout = 0 # setzt das Timeout auf 0 Minuten
/etc/sudoers
- eine Liste Rechnern für die der sudo-Aufruf gelten soll, wenn gleiche
Konfiguration auf mehreren Rechnern verwendet wird.
# Host alias specification
Host_Alias SERVERS = server1,server2,192.168.2.0/24
- Benutzer zu einer Gruppe zusammenfassen, mit gleichen Rechten
# User alias specification
User_Alias OFF = user1, user2
User_Alias NET = user1
- Alias für Kommandos festlegen
# Cmnd alias specification
Cmnd_Alias DOWN = /sbin/shutdown, /sbin/halt
Cmnd_Alias NET = /usr/bin/pon, /usr/bin/poff
- Den Useralias das Recht zum ausführen der Kommandos-Alias zuteilen
# User privilege specification
root ALL = (ALL) ALL
INET ALL = NET
OFF ALL = DOWN
- einem User ein Recht wieder entziehen (User2 darf den Rechner nicht mehr ausschalten)
user2 ALL = !DOWN
- Passwortabfrage unterdrücken für die Gruppe OFF beim Herunterfahren
OFF ALL = NOPASSWD: DOWN
- Das aussehen des Prompts definieren
Defaults passprompt="%u's Passwort:"
- Gruppe "users" darf die Befehle ausführen
%users ALL = /usr/sbin/ethereal, /usr/sbin/tcpdump
./configure --prefix=/usr/local --sysconfdir=/etc/Konfigverzeichnis | |
make check | kompilieren mit einigen Selbsttests |
make | kompilieren |
make install | kompilierte Dateiein installieren |
make uninstall | entfernt installierte Dateien |
make clean | Arbeitsverzeichnis aufräumen |
make distclean | Arbeitsverzeichnis aufräumen (besser als "make clean") |
1. Kernel anpassen an SCSI Emulation für ATAPI Laufwerke
z.B. für einen Promise Fasttrak Onboard Raid Controller
ATA/IDE/MFM/RLL support ---> | ||
IDE, ATA and ATAPI Block devices ---> | ||
<M> | Include IDE/ATAPI CDROM support | ide-cd.o |
<M> | SCSI emulation support | ide-scsi.o |
<*> | PROMISE PDC202{46|62|65|67} support | pdc202xx_old.o |
[*] | Special UDMA Feature | |
<*> | PROMISE PDC202{68|69|70|71|75|76|77} support | pdc202xx_new.o |
[*] | Special FastTrak Feature | |
SCSI support ---> | ||
<M> | SCSI support | scsi_mod.o |
<M> | SCSI CD-ROM support | sr_mod.o |
<M> | SCSI generic support | sg.o |
2. Modul testen
modprobe ide-scsi
- unter /etc/modules eintragen
ide-scsi
3. in /etc/lilo.conf eintragen (nicht unbeding nötig)
append="hdd=ide-scsi"
4. Links erstellen
rm /dev/cdrom
rm /dev/cdrw
ln -s /dev/scd0 /dev/cdrom
ln -s /dev/scd1 /dev/cdrw
Device Drivers | ||
ATA/ATAPI/MFM/RLL support | ||
<M> | SCSI emulation support | ide-scsi.o |
SCSI device support | ||
<M> | SCSI device support | scsi_mod.o |
<M> | SCSI CD-ROM support | sr_mod.o |
<M> | SCSI generic support | sg.o |
benötigten Module ide-scsi, sr_mod, sg, scsi_mod
- Module laden
modprobe sr_mod
modprobe ide_scsi
modprobe sg
- Module entfernen
rmmod sr_mod
rmmod ide_scsi
rmmod sg
rmmod scsi_mod
- angeschlossene CD-Laufwerke anzeigen
cdrecord -scanbus
scsibus0:
0,0,0 0) 'PIONEER ' 'DVD-ROM DVD-105 ' '1.22' Removable CD-ROM
scsibus1:
1,0,0 100) 'YAMAHA ' 'CRW3200E ' '1.0d' Removable CD-ROM
- CD Mounten
mount -o ro -t iso9660 /dev/scd0 /mnt/dvd
mount -o ro -t iso9660 /dev/scd1 /mnt/cdrw
compressed-Loop Device
Loop Device
CryptedLoop Device
Das Modul cloop laden.
make KERNEL_DIR=/usr/src/linux-2.4.20/
mkdir -p /lib/modules/misc
cp cloop.o /lib/modules/misc/
depmod -a
mknod /dev/cloop b 240 0
- Nun haben wir Cloop auf unserem System eingerichtet. Jetzt laden wir noch unser
Modul ein
(ebenfalls als Root):
insmod cloop.o file=/pfad/zur/livecd.iso
- Der Treiber ist nun in unser System geladen und wir können jetzt die Live-CD
endlich mounten
(achtet darauf, wie euer Mountpunkt heisst /media/cdrom, /mnt/cdrom usw):
mount -o ro -t whatever /dev/cloop /mnt/cdrom
- Image wieder entfernen
umount /mnt/cdrom
- und entfernt evtl auch das cloop-Modul mit
rmmod cloop
Knoppix Image mounten
mount KNOPPIX.iso mnt -o loop
modprobe cloop file=mnt/KNOPPIX/KNOPPIX
mount /dev/cloop mnt-compressed-ro -o uid=500
Modul loop
- 5MB grosse Imagedatei erstellen
dd if=/dev/zero of=/mnt/image.dat bs=1024 count=5120
- Datei formatieren und Mounten
mkfs.ext3 /mnt/image.dat
mkdir /mnt/image
mount -t ext3 -o loop /mnt/image.dat /mnt/image
Paket util-linux
Module cryptoloop twofish, aes, serpent
Verschlüsselung mit Kernel 2.6
- leeres Image erstellen (120 MB gross)
dd if=/dev/zero of=/mnt/crypted.dat bs=1024 count=120
- Daten von /dev/loop1 werden über DEVICENAME eingelesen, entschlüsselt und an /dev/loop1 weitergereicht.
losetup -e aes /dev/loop1 DEVICENAME
z.B.
losetup -e twofish /dev/loop1 /mnt/crypted.dat losetup -e serpent /dev/loop1 /mnt/crypted.dat
- Loop Device ins Dateisystem einbinden
losetup -d/dev/loop1 oder mount -o encryption=aes /mnt/crypted.dat /crypted
- Dateisystem auf dem Crypto-LW erstellen
mkfs.ext3 /dev/loop1 mkdir /mnt/crypted mount -t ext3 /dev/loop1 /mnt/crypted
- Eintrag in /etc/fstab zum automatischen mounten des Verschlüsselten Device (auf der Konsole wird dann nach dem Passwort gefragt)
/dev/hda3 /mnt/crypted ext3 loop=/dev/loop1, encryption=twofish
Eintrag in /etc/fstab für ein Verschlüsseltes Home und Temp Verzeichnis
/tresor.tmp /tmp ext3 auto,encryption=aes 1 2 /tresor.home /home ext3 auto,encryption=aes 1 2
beim Systemstart wird dann das Passwort abgefragt, nach dem ersten Mounten von TMP müssen noch die Rechte mit chmod 1777 /tmp
gesetzt
werden. Zum kopieren des Home Verzeichnisses kann man dann cp -a
nutzen.
im Kernel SWAP aktivieren
General setup
[*] Support for paging of anonymous memory (swap)
- eine Swap Partition verschlüsseln (Swap ist z.B. /dev/hda5)
Eintragung in /etc/fstab
/dev/loop2 none swap sw 0 0
swapoff /dev/hda5 losetup -e twofish-128 /dev/loop2 /dev/hda5 mkswap /dev/loop2 swapon -a
- automatische Aktivierung im Systemstartscript
losetup -e twofish /dev/loop2 /dev/hda5 && swapon -a || losetup -d /dev/loop2
- das Laufwerk wieder freigeben
umount /mnt/crypted losetup -d /dev/loop1
- unterstützte Crypto-Module anzeigen
cat /proc/crypto
Fehlermeldung: "ioctl: LOOP_SET_STATUS: Das Argument ist ungültig"
bei der Eingabe von "losetup -e twofish /dev/loop1 /mnt/crypted.dat"
Lösung:
Parameter der Option (-e) überprüfen, ob ein Schreibfehler vorliegt.
lsattr | Anzeigen der Flags |
chattr | setzen der Flags |
Attribute | |
a | (Append Only) Das System erlaubt das Öffnen dieser Datei nur zum Zwecke der Erweiterung und verbietet explizit allen Prozessen das Überschreiben bzw. Löschen bereits gespeicherter Daten (sinnvoll bei log-Dateien). Ebenfalls untersagt ist das Löschen, Umbenennen, Verschieben und "hartes" Linken der Datei. Wird das Flag auf einem Verzeichnis angewendet, dürfen darin keine Dateien angelegt oder gelöscht werden. |
i | (Immutable) Das System verbietet jegliche Änderungen an der Datei. Im Falle eines Verzeichnisses können Dateien, die in diesem Verzeichnis bereits existieren, verändert werden. Weder das Löschen noch das Anlegen von Dateien ist möglich. |
d | (No Dump) Das dump Programm soll diese Datei beim Backup ignorieren. |
c | (Compress) Das System soll diese Datei "transparent" komprimieren. Beim Schreiben in die Datei wird deren Inhalt komprimiert und erst danach auf dem physischen Datenträger abgelegt, beim Lesen der Datei werden jedoch stets dekomprimierte Daten zurückgegeben. Diese Funktion ist derzeit noch nicht implementiert. |
s | (Secure Delete) Wenn das System diese Datei löscht, werden alle Datenblöcke auf dem Datenträger zufällig überschrieben. |
u | (Undelete) Wenn eine Anwendung das Löschen der Datei fordert, soll das System die Datenblöcke so "konservieren", dass das Löschen der Datei auch wieder rückgängig gemacht werden kann. Diese Funktion ist derzeit noch nicht impementiert. |
A | (Atime) Das System soll die "atime" (access time) dieser Datei nicht aktualisieren. |
S | (Sync) Wenn eine Anwendung gerade den Schreibprozess durchführt, soll das System alle Änderungen sofort und ungepuffert auf dem physischen Datenträger abspeichern. |
1. RCS - The GNU Revision Control System, ist ein Einfaches System für einen
lokalen Rechner
2. CVS - Concurrent Versioning Systems, ist für Projekte geeignet auch über das
Netz und mehere User
Befehle | |
mkdir RCS | Verzeichnis für die Archive anlegen |
ci -i file | das erste mal Datei Einchecken und Initialisieren |
ci file | Datei einchecken, wird nach file,v kopiert das Orginal gelöscht und kann nur noch gelesen werden. |
ci -u file | die Option bewirkt das automatische Ein und Auschecken der Datei |
ci -r2.0 file | Datei unter der Versionsnummer 2.0 einchecken |
co file | Datei auschecken, sie ist jetzt vor Änderungen geschützt (schreibschutz) |
co -l file | Datei auschecken, mit der Option -l kann die Datei wieder bearbeitet werden. (ohne schreibschutz, Orginal Berechtigung wird hergestellt) |
co -r1.1 file | Datei der Version 1.1 zurückspielen |
rcsdiff file | vergleicht den letzten Checkout mit der aktuellen Datei und zeigt Änderungen an |
rcsdiff -r1.1 -r2.0 file | vergleicht zwei gespeicherte Versionen miteinander |
ab Kernel 2.6.14 wird FUSE (Filesystem in Userspace) unterstützt. Damit kann man ein Dateisystem eines Remoterechners in das eigene Dateisystem einbinden.
apt-get install sshfs modprobe fuse
- der SSH Benutzer muss der Gruppe fuse angehören
adduser Benutzername fuse
- jetzt kann man mittels SSH das Dateisystem mounten
sshfs user@ssh-server:/Path /mnt/sshfs
- Verbindung trennen
fusermount -u /mnt/sshfs
mkdir /media/cdrom mount /dev/cdrom /media/cdrom tar xzvf /mnt/cdrom/VMwareTools-x.x.x-xxxx.tar.gz -C /tmp/ cd /tmp/vmware-tools-distrib/ ./vmware-install.pl -d
Option -d - Default Optionen werden übernommen
kernel: piix4_smbus 0000:00:07.3: SMBus Host Controller not enabled!
Lösung: folgenden Eintrag in der blacklist.conf setzen
# /etc/modprobe.d/blacklist.conf blacklist i2c-piix4
Fehlermeldung beim booten, Rechner bleibt mit der Meldung stehen.
/dev/sda1: clean, xxxx/xxxx files, xxxx/xxxx blocks
- X-Server für Intel Graka nachinstallieren, über Recovery Mode (beim booten wählen)
apt-get update apt-get install xserver-xorg-video-intel