linux-l: disk* tools
Steffen Solyga
solyga at beast.absinth.net
Fr Jul 23 21:49:43 CEST 1999
Moin allerseits,
ich habe jüngst - Anlaß war ein Dank DOS gelöschter MBR - ein paar kleine
Kommandozeilen-Tools rund um den Zugriff auf große Platten geschrieben.
Trotz häufigem download von meiner homepage kam bisher leider kaum Reaktion,
weder bug reports noch Dankesschreiben :^)
Deshalb will ich die Programme mal kurz vorstellen, vielleicht helfen sie
ja einem von Euch, und ich kriege ein paar Verbesserungsvorschläge.
diskdump (0.30)
Wenn man einzelne Sektoren einer Platte durchkämmen will, hat man
mit dd(1) zwar eine Chance, nur leider wachsen einem graue Haare,
wenn die in Erfahrung zu bringenden Bytes bei großen Offsets liegen.
Im Gegensatz zu dd(1) verwendet diskdump die libc-Funktion lseek(2)
bzw. llseek(2), so daß man auch auf große Offsets unverzüglich zu-
greifen kann. Beispiel:
# diskdump -o 0x03ef7e8e00 -n 32 /dev/hda > /tmp/dump
disksize (0.31)
Ebenfalls per lseek(2) läßt sich auf die Schnelle die genaue Größe
einer Platte oder auch Partition bestimmen. Komplizierter ist es
schon bei einem CD-Image, weil man dem Eintrag im primary descriptor
block eines iso9660 fs i.allg. nicht trauen kann. Disksize findet
in beiden Fällen die korrekten Werte. Beispiel:
# disksize -M /dev/hda
16124
diskerase (0.21)
Ich habe es mir angewöhnt, jungfräuliche Platten vor der ersten
Benutzung (Partitionierung, Formatierung, ...) mit einem speziellen
Muster zu beschreiben, um später feststellen zu können, wohin die
Systeme geschrieben haben und was unangetastet geblieben ist. Für
alte Platten kann das auch von Vorteil sein, werden doch tatsächlich
alle Informationen gelöscht (zugegeben, ein dd täte das auch). Bsp.:
# diskerase -H 8M /dev/hda
hxd (0.70)
ist junst another hex dumper, ja. Allerdings besitzt er gewisse
Vorteile gegenüber den jeder Distribution beigelegten tools
hexdump(1) oder od(1). Einerseits ist er (auf Kosten eines freien
Formats) einfacher zu bedienen, ist (bei mir) ca. 3x so schnell
und es gibt eine Umkehrfunktion in Form von unhxd, so daß man
praktisch einen Hex-Editor besitzt. Beispiel zum Auffinden des
Startzylinders einer e2fs-Partition mit dem volume label xxxx:
--------------------------------------------
#!/bin/sh
DISK=/dev/hda
CYL=2055 # Anzahl Zylinder
HDS=255 # Anzahl Köpfe
SEC=63 # Sektoren per track
c=0 # c in [ 0, $CYL )
while [ $c -lt $CYL ]; do
off=`echo "$c * $HDS * $SEC * 512 + 1144" | bc`
hxd $DISK -o $off -n 16
c=`expr $c + 1`
done
exit 0
-------------------------------------------
Die files liegen als source auf http://www.absinth.net/linux.
Würde mich über Resonanz freuen, auch was das kompilieren/installieren
bertrifft.
Gruß, Steffen.
--
-------------------------------------------
Steffen Solyga
mail: solyga at beast.absinth.net
www : http://www-tet.ee.TU-Berlin.DE/solyga
-------------------------------------------
Mehr Informationen über die Mailingliste linux-l