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