Geprüft und gut

Dr. Linux

01.09.2002
Ist die Image-Datei für die CD in Ordnung und die Diskette noch ganz? Frau Dr. Linux hilft beim Prüfen.

Dr. Linux

Komplizierte Organismen, wie Linux-Systeme es nun einmal sind, haben so ihre ganz eigenen Wehwehchen. Dr. Linux beobachtet die Patienten in den Linux-Newsgruppen, stellt an dieser Stelle Rezepte für aktuelle Probleme aus und alternative Heilmethoden vor.

Bevor ich meine aus dem Internet heruntergeladenen ISOs auf eine CD brenne, möchte ich überprüfen, ob die Dateien fehlerfrei übertragen wurden. Welches Linux-Programm eignet sich für diesen Zweck?

Dr. Linux: Eine Möglichkeit, die Fehlerfreiheit eines ISO-Images zu prüfen, ist das Mounten dieser Datei. Funktioniert dies, so können Sie davon ausgehen, dass es richtig übertragen wurde, aber eine 100%ige Garantie auf Fehlerlosigkeit ist das nicht.

Über sogenannte Loop-Devices lassen sich Dateien vom Superuser root wie eine Festplatte oder Diskette in den Verzeichnisbaum einhängen. Diesem Zweck dient die mount-Option -o loop. Passen Sie die Syntax im folgendem Beispiel Ihren Verzeichnissen entsprechend an!

perle@linux:~/iso> su root
Password: Ihr_Root_Passwort
linux:/home/perle/iso # mount -o loop -t iso9660 /hier/liegt/mein.iso /mnt/

SuSE-Anwender mounten lieber nach /media oder einem seiner Unterverzeichnisse:

mount -o loop -t iso9660 /pfad/zu/meinem.iso /media/

Unterhalb des als letztes Argument angegebenen Verzeichnisses, des Mountpoints, finden Sie nun den kompletten Inhalt des ISO-Images wieder – so, wie Sie ihn später auf der gebrannten, gemounteten CD sehen werden. Nach dem Prüfen der darin befindlichen Dateien hängen Sie das Image mit umount mountpoint wieder aus dem Verzeichnisbaum aus und legen den Superuser-Status mit exit ab.

Wer ganz sicher wissen möchte, ob eine ISO-Datei fehlerfrei auf den heimischen Computer übertragen wurde, vergleicht die Checksumme des Original-Files mit der Checksumme der übertragenen Datei. Dabei handelt es sich um einen (oft auch Prüfsumme genannten) mit einem Algorithmus erzeugten Wert, der aus der Summe der Bits, die eine Datei enthält, errechnet wird.

Es gibt verschiedene Programme, die Prüfsummen erstellen, z. B. sum oder cksum. Da sie mit unterschiedlichen Algorithmen arbeiten, sind die damit erstellten Prüfsummen nicht kompatibel, das heißt, Sie müssen Ihre Prüfsumme mit dem Tool erzeugen, mit dem die Checksumme der Originaldatei berechnet wurde.

Aktuell kommt für Download-Dateien fast durchgängig der MD5-Algorithmus [1] zum Einsatz. Das entsprechende Programm md5sum gehört auf allen bekannten Linux-Distributionen zur Standardausstattung. Es erzeugt aus jeder Datei einen 128 Bit großen Wert. Typisch ist die Erscheinungsform dieser Prüfsummen, die auf FTP- oder Web-Servern meist in Dateien abgelegt werden, deren Endung .md5 oder .md5sum lautet (Abbildung 1):

ddee9456051785ebdd92f3d28a033e61  gentoo-ix86-1.2.iso

MD5-Summen-Files sind damit – im Gegensatz zu ISO-Images – nur wenige Byte groß und werden sinnvollerweise im gleichen Verzeichnis gespeichert wie die zugehörige Datei. Gelegentlich fassen Administratoren mehrere Prüfsummen in einer Datei zusammen oder fügen sie in Readme.txt- o. ä. Dateien ein.

Es ist kaum möglich, aus zwei verschiedenen Dateien mit md5sum ein und dieselbe Prüfsumme zu generieren. Geringste Veränderungen einer Datei, die zum Beispiel durch Fehler bei der Übertragung entstehen, führen sofort zu einer veränderten Prüfsumme.

Die Einmaligkeit dieser Checksummen, oft auch als Fingerabdruck (english: "fingerprint") bezeichnet, wird von Administratoren unter anderem dazu benutzt, um Veränderungen in Systemen, zum Beispiel durch eingeschleuste oder ausgetauschte Programme, zu enttarnen.

Doch wie überprüft man die heruntergeladene Checksumme nun? Sehen wir uns den Vorgang anhand einer ISO-Datei von Gentoo Linux [2] an:

perle@linux:~/iso> ls -l
insgesamt 16540
-rw-r--r--    1 perle    users    16908288 Jun 23 13:48 gentoo-ix86-1.2.iso
-rw-r--r--    1 perle    users          54 Jun 23 13:49 gentoo-ix86-1.2.iso.md5

Im Arbeitsverzeichnis (hier: /iso) liegt das heruntergeladene ISO-Image samt zugehöriger MD5-Datei. Übergeben Sie dem Programm /usr/bin/md5sum nun mit der Option -c ("check") die Prüfsummen-Datei. Wenn alles gut gegangen ist, erhalten Sie ein schlichtes ok:

perle@linux:~/iso> md5sum -c gentoo-ix86-1.2.iso.md5
gentoo-ix86-1.2.iso: Ok

Verlief der Test negativ, gibt md5sum eine Warnmeldung aus:

perle@linux:~/iso> md5sum -c gentoo-ix86-1.2.iso.md5
gentoo-ix86-1.2.iso: Fehler
md5sum: Warnung: 1 von 1 berechneten Prüfsumme paßten NICHT

Wenn Sie den MD5-Wert in der Readme-Datei vorfinden und daher zum Vergleich selber eine Prüfsumme erzeugen müssen, übergeben Sie den Namen der ISO-Datei an md5sum und vergleichen das Ergebnis mit eigenen Augen:

perle@linux:~/iso> md5sum gentoo-ix86-1.2.iso
ddee9456051785ebdd92f3d28a033e61  gentoo-ix86-1.2.iso

Sollte Ihnen Ihr Distributor md5sum vorenthalten, finden Sie es auf [4], wenn Sie das Suchwort md5sum eingeben. Das Programm gehört zum Paket der Text utilities. Weiterführende Informationen stellt das GNU-Projekt auf [5] bereit.

Abbildung 1: Knoppix-ISO-Dateien [3] und ihre md5sum-Dateien

Intakt?

Ich habe einige ältere Disketten, die ich als "Ein-Disketten-Linux" oder Bootdisketten weiter einsetzen möchte. Wie kann ich sicherstellen, dass die Datenträger keine defekten Blöcke aufweisen?

Dr. Linux: Zum Testen auf sogenannte Badblocks wird häufig das gleichnamige Programm /sbin/badblocks verwendet. Es gehört zu einer Reihe von Programmen, die für die Prüfung, Pflege und Erstellung von Dateisystemen auf (fast) jedem Linux-System zum Einsatz kommen. Wartungsprogramme wie e2fsck können Ausgabedateien von badblocks weiterverarbeiten. Da man heutzutage – von absurden Ausnahmefällen mal abgesehen – sicherlich nur Disketten weiterverwenden möchte, die keine Badblocks aufweisen, brauchen wir uns an dieser Stelle nicht mit Reparaturversuchen aufhalten.

Um eine Diskette mit badblocks zu testen, darf man sie nicht in den Linux-Verzeichnisbaum einhängen. Da für den Zugriff auf das Laufwerk die Rechte des Superusers benötigt werden, stellt man dem badblocks-Aufruf den Befehl su mit der Option -c voran. Diese sorgt dafür, dass ausschließlich der nachfolgende, in Anführungszeichen gesetzte Befehl mit root-Rechten ausgeführt wird.

Mit der badblocks-Option -s ("show", "zeigen") lässt sich beobachten, an welchem Block das Programm gerade arbeitet; das Flag -v ("verbose", "wortreich") teilt Ihnen mit, was das Programm gerade tut. Aber auch ohne diese beiden Optionen sind Sie auf der sicheren Seite, denn werden Badblocks gefunden, erhalten Sie eine Ausgabe.

Nach dem Befehl mit seinen Optionen sollte laut Manpage die zu prüfende Blockzahl folgen, doch da deren Erkennung bei Floppy-Laufwerken über die Geräte-Datei erfolgt, kann man sie weglassen:

perle@linux:~> su -c "/sbin/badblocks -s -v /dev/fd0"
Password:Ihr_Root_Passwort
Checking for bad blocks in read-only mode
>From block 0 to 1440
Checking for bad blocks (read-only test):        16/     1440

Im Beispiel testet das Programm gerade Block 16 von 1440. Bei einem negativen Ergebnis, also keinen defekten Blöcken, meldet Ihnen das Programm (sofern mit der Option -v aufgerufen) Durchlauf abgeschlossen, 0 Badblocks gefunden, auf Englisch:

Pass completed, 0 bad blocks found.

Bei positivem Befund werden die Badblocks aufgelistet, in Listing 1 die Blöcke 12-15. Entsprechend meldet das Programm: Durchlauf abgeschlossen, 4 Badblocks gefunden.

Listing 1

1,44-MB-Diskette mit fehlerhaften Blöcken

perle@linux:~> su -c "/sbin/badblocks -s -v /dev/fd0"
Password:Ihr_Root_Passwort
Checking for bad blocks in read-only mode
>From block 0 to 1440
Checking for bad blocks (read-only test): 12      0/     1440
13     13/     1440
14
15     15/     1440
done
Pass completed, 4 bad blocks found.

Disketten-Format-Odysssee

Meine Disketten haben eine ganze Menge erlebt – nehmen wir all die Versuche, die Kapazität durch verschiedene Formatierungen zu erhöhen. Danach zeigt badblocks immer eine immense Anzahl fehlerhafter Blöcke an, bei der normalen 1440-kB-Formatierung jedoch nicht.

Dr. Linux Wenn die angegebene Geräte-Datei nicht zur Low-Level-Formatierung der Diskette passt, zeigt badblocks Kauderwelsch an. Davon abgesehen gefährdet die Zuweisung einer falschen Geräte-Datei auch Ihre Hardware. Probieren Sie daher keine Device-Files aus, für die Ihre Hardware nicht geeignet ist!

Die verschiedenen Disketten-Laufwerke lassen sich über Geräte-Dateien im Verzeichnis /dev ansprechen. Sie tragen allesamt die Major-Device-Nummer 2. Die Minor-Device-Nummer steht bei diesem Hardware-Typ u. a. für ein bestimmtes Disketten-Format (vgl. Kasten 1). Wenn Sie das Verzeichnis /dev auflisten, finden Sie statt der "üblichen" Größenangabe zur jeweiligen Datei die Major- und Minor-Nummern der Geräte. Listing 2 zeigt ein Beispiel, das aber keinesfalls mit den auf Ihrem System angelegten Gerätedateien übereinstimmen muss.

Listing 2

Major- und Minor-Nummern der Floppy-Devices

perle@maxi:~> ls -al /dev | less
[…]
brw-rw—-    1 root     disk       2,   0 Jun  6 17:13 fd0
brw-rw—-    1 root     disk       2,  36 Sep 24  2001 fd0CompaQ
brw-r--r--    1 root     root       2,  60 Jun 28 14:28 fd0H1722
brw-rw—-    1 root     disk       2,   4 Sep 24  2001 fd0d360
brw-rw—-    1 root     disk       2,   8 Sep 24  2001 fd0h1200
[…]

Nur mit diesen Informationen erkennt der Kernel beim Öffnen einer Floppy das richtige Format und kann es auf Anfragen von Programmen hin weitergeben.

Wie schief eine Untersuchung durch badblocks laufen kann, wenn bei der Angabe der Geräte-Datei ein Fehler gemacht wird, lässt sich am Beispiel leicht verfolgen: Eine Diskette bekommt mit dem Programm fdformat eine Low-Level-Formatierung mit einer Kapazität von 1722 kb verpasst:

perle@linux:~> su -c "fdformat /dev/fd0H1722"
Password:Ihr_Root_Passwort
Doppelseitig, 82 Spuren, 21 Sektoren/Spur, Totale Kapazität: 1722kB.
Formatieren … Beendet
Überprüfen … Beendet

Man entfernt die Floppy aus dem Laufwerk und schiebt sie erneut ein, damit der Kernel den Eindruck bekommt, er habe es mit einem anderen Datenträger zu tun. Bei der Prüfung durch badblocks spricht man das Gerät falsch als /dev/fd0 an, die Anzahl der zu bearbeitenden Blöcke wird aber richtig angegeben.

Das Ergebnis: 282 Badblocks kommen zum Vorschein, und zwar die Blöcke 1440 bis 1721. Jene also, die die Kapazität von /dev/fd0 (1440 Blöcke bei High-Density-Disketten) überschreiten (Listing 3).

Listing 3

Scheinbare Badblocks bei falschem Floppy-Device

perle@linux:~> su -c "/sbin/badblocks -s -v /dev/fd0 1722"
Password: Ihr_Root_Passwort
Checking for bad blocks in read-only mode
>From block 0 to 1722
Checking for bad blocks (read-only test): 1440 1408/     1722
1441
1442
[…]
1720
1721
done
Pass completed, 282 bad blocks found.

Bei der Wahl der richtigen Geräte-Datei besteht die Diskette die Prüfung hingegen erwartungsgemäß, wie Listing 4 zeigt.

Listing 4

Badblocks-Prüfung einer 1722-kB-Diskette

perle@linux:~> su -c "/sbin/badblocks -v /dev/fd0H1722"
Password:Ihr_Root_Passwort
Checking for bad blocks in read-only mode
>From block 0 to 1722
Pass completed, 0 bad blocks found.

Kasten 1: Welche Disketten-Devices gibt es?

Die Manpage zu den fd-("Floppy Disk"-)Devices erklärt über 30 verschiedene Geräte-Dateien, über die Disketten-Laufwerke angesprochen werden können, darunter auch exotische 5,25-Zoll-Laufwerke. Aus der Vielfalt der Geräte-Dateien geben wir an dieser Stelle nur einen kleinen Ausschnitt der Möglichkeiten wieder:

[…]
Im Folgenden steht n für die Laufwerksnummer: 0 für das erste Laufwerk, 1 für
das zweite usw.
[…]
3.5-Zoll-High-Density-Devices:
Name         Kapaz.   Zyl.   Sekt.   Köpfe   Minor-Basis #
———————————————————–
fdnH360      360K     40     9       2       12
fdnH720      720K     80     9       2       16
fdnH820      820K     82     10      2       52
fdnH830      830K     83     10      2       68
fdnH1440     1440K    80     18      2       28
fdnH1600     1600K    80     20      2       124
fdnH1680     1680K    80     21      2       44
fdnH1722     1722K    82     21      2       60
fdnH1743     1743K    83     21      2       76
fdnH1760     1760K    80     22      2       96
fdnH1840     1840K    80     23      2       116
fdnH1920     1920K    80     24      2       100
[…]

Glossar

ISOs

Populäre Ausdrucksweise für Dateien, die ein Dateisystem entsprechend dem System-unabhängigen ISO-9660-Standard enthalten, mit dem CD-ROMs beschrieben werden.

Mounten

Das Einbinden von Datenträgern in den Linux-Dateibaum geschieht mit dem root vorbehaltenen mount-Befehl. Ehe man eine gemountete CD oder Diskette wieder aus dem Laufwerk entnehmen kann, ist ein umount-Befehl zwingend nötig. Auch Festplattenpartitionen lassen sich so dem Zugriff unter Linux wieder entziehen. In der Datei /etc/fstab kann der System-Verwalter jedoch auch festlegen, dass unprivilegierte Benutzer bestimmte Datenträger wie CD-ROMs ebenfalls ein- und aushängen dürfen.

su

Mit dem Befehl "su Benutzer-Name" nehmen Sie auf einer Shell die Identität und die Rechte des gewählten Anwenders an. Nach Eingabe des richtigen Passworts finden Sie sich zum Beispiel als Superuser im aktuellen Verzeichnis wieder und können mit root-Rechten weiterarbeiten.

e2fsck

Dieses Kommandozeilen-Tool prüft und repariert bei Bedarf Extended-2-Dateisysteme (sofern dies noch möglich ist). Dieser Filesystem-Typ kam bislang standardmäßig auf Linux-Festplattenpartitionen zum Einsatz, inzwischen setzen viele Distributoren auf modernere Dateisysteme wie den Nachfolger Ext3 oder ReiserFS.

Low-Level-Formatierung

Dabei wird auf der Diskette kein Dateisystem (minix, msdos) eingerichtet, sondern nur die Spuren und Sektoren angelegt. Solche "roh" formatierten Disketten können von tar oder dd beschrieben werden.

Device-Nummer

Greift ein Programm auf eine Geräte-Datei zu, wird dem Kernel diese Anforderung in Form zweier Gerätenummern übergeben. Der Major-Wert bezieht sich im Allgemeinen auf einen bestimmten Kernel-Treiber, der Minor-Wert auf das Gerät, auf das jener zugreifen soll. Deshalb haben zum Beispiel alle Geräte-Dateien für die serielle Schnittstelle den gleichen Major-Wert, aber unterschiedliche Minor-Nummern. Kurz gefasst benutzt der Kernel die Major-Nummer, um die Anforderung dem zuständigen Treiber zu übergeben, dieser wiederum braucht die Minor-Nummer, um festzustellen, welches Gerät er benutzen soll. Es gibt ein paar Ausnahmen, aber über die stolpert ein normalsterblicher Linux-Nutzer im Allgemeinen nicht.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Mit dd_rescue defekte Partition wiederherstellen
    Wer regelmäßig seine Daten sichert, braucht vor Platten-Versagen keine Angst zu haben – doch manchmal vergisst man die regelmäßigen Backups. Verabschiedet sich dann die Festplatte mit einem Lesefehler, ist guter Rat teuer. Oder umsonst, wenn Sie "dd_rescue" verwenden.
  • Integrität gespeicherter Daten sicherstellen
    Enthält die Festplatte defekte Speicherblöcke, hilft das beste Backup nichts: Es speichert dann nur fehlerhafte Dateien. Abhilfe schafft regelmäßige Kontrolle.
  • tar kopiert ganze Partitionen
    Ist die Festplatte bis zum Rand gefüllt, hilft meist nur der Einbau einer Zweitplatte. Wie Sie mit Ihren Linux-Partitionen auf die neue Platte umziehen, zeigt dieser Artikel.
  • Inode in Not
    Mit den richtigen Werkzeugen fühlen Sie Ihrem Dateisystem auf den Zahn, beseitigen Inkonsistenzen und restaurieren beschädigte Dateien.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...