Experimentierfreudige Admins und andere Probleme

Was gibt es schöneres als am Wochenende die letzten Tips und Tricks in den gängigen Foren, Newsgroups oder sonstwo zu lesen und diese am Montag Morgen in der Firma auszuprobieren? Naklar, diese Tips an Produktivsystemen auszuprobieren.  Oder vieleicht der darauf folgende Totalausfall des Netzwerkes? Nagut, was auch immer. Ließt man manche Beiträge in Foren oder Newsgroups könnte man manchmal denken das es mehr dieser “experimentierfreudigen” Menschen gibt als man denkt. So ließt man zb. sehr oft Beiträge wie “Hilfe – Anmeldung am Netzwerk dauert sehr lange” … nach einigen Rückfragen kommt dann heraus das der “Admin” auf empfehlung eines HowTo von Seite xy die DNS-Server Adressen vom DC auf den DSL-Router des ISP umgeschaltet hat um die letzten 2% aus der Leitung herauszuholen …. naja … ich meine natürlich die Variante ohne DNS-Weiterleitung für die interne Zone ;-) . Ich habe nichts dagegen, wenn jemand die entsprechende Technik noch nicht ganz verstanden hat und es schnell einrichten musste, aber wer blind irgendwas von einer Website abtippt und ein funktionierendes Netzwerk lahmlegt … ohne Worte. Ich meine, Fehler können jedem jederzeit passieren, aber abtippen, ich verstehe einfach nicht wie diese Menschen manchmal Jahre oder Jahrzehnte in der Branche überleben. HowTo’s sind Ansätze, “Wie wird’s gemacht?” um das Thema besser verstehen zu können und KEIN Freischein das es genau so und nicht anders funktioniert. Richtig angewendet, bringen sie jeden schneller an die Lösung eines Problems. Falsch angewendet passieren obengenannte Dinge.

Die andere Seite ist aber, das lesen von Foren oder Newsgroups würde ohne solche Menschen nicht wirklich Spaß machen.

loopback für alles – Partitionen direkt einbinden

Schon einmal eine Partition direkt eingebunden? Das klingt nun vieleicht etwas merkwürdig, der Kernel erkennt ja die Partitionen und udev legt die passenden nodes unter /dev an … aber, was, wenn die Partitionstabelle beschädigt wurde oder man aus versehen mit einer grub-installation diese zerstört hat? Kein Problem. Kennt man das offset der Partition, kann die Festplatte mit einem offset als neues Gerät bereitgestellt werden, was ausreicht, um Dateien noch kopieren zu können. Schreiben sollte man mit dieser Methode nicht.

Beispiel an meiner HDD


fdisk -ul /dev/sda

Platte /dev/sda: 250.0 GByte, 250059350016 Byte
255 Köpfe, 63 Sektoren/Spuren, 30401 Zylinder, zusammen 488397168 Sektoren
Einheiten = Sektoren von 1 × 512 = 512 Bytes
Disk identifier: 0xc606c606
Gerät boot. Anfang Ende Blöcke Id System
/dev/sda1 * 63 146496734 73248336 7 HPFS/NTFS
/dev/sda2 146496735 193374404 23438835 83 Linux
/dev/sda3 193374405 486978344 146801970 b W95 FAT32
/dev/sda4 486978345 488392064 706860 82 Linux Swap / Solaris

Die erste Partition startet bei Sektor 63 und endet bei 146496734. Dabei ist zu beachten, das die Start/Endposition unbedingt in Sektoren, und nicht in Zylindern anzugeben ist. 146496735 Sektoren entsprechen 146496735*512/1024/1024/1024 Gigabyte. losetup benötigt das offset in bytes, so ist zb. 146496735*512=75006328320 für die 2. Partition zu übergeben. Andersherum kann man diese Rechnung auch nutzen, um bei zerstörten Partitionstabellen sich in etwa an den 1. Block heranzutasten. Dabei muss man in diesem Bereich nach einer gültigen Dateisystem-Signatur suchen und den 1. Sektor als offset nutzen. Das geht besonders gut mit einem hexeditor (zb. hexedit). Die größe der Partition in byte umrechnen, die HDD im hexeditor öffnen und nach einer Signatur suchen und per loopback als neues device bereitstellen. OK, zurück zur Aufgabe.

Um meine 1. Partition zu mounten, muss das Offset in byte angegeben werden, bei der diese Physisch auf der HDD startet. Also, 63sektoren a 512 Byte. Also, 63*512 = 32256. Dieses offset übergibt man zusammen mit dem zu verwendendem loop-device und der hdd an losetup. Anschließend kann das Device normal gemountet werden (wenn das offset stimmt und ein Dateisystem-header im loop-device gefunden wird)

~ # losetup -o 32256 /dev/loop4 /dev/sda
~ # losetup -a
/dev/loop/4: [000f]:1108 (/dev/sda) offset=32256
~ # mount /dev/loop4 tmp2
~ # mount
/dev/sda2 on / type ext3 (rw,noatime)
proc on /proc type proc (rw,nosuid,nodev,noexec)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
udev on /dev type tmpfs (rw,nosuid)
devpts on /dev/pts type devpts (rw,nosuid,noexec)
shm on /dev/shm type tmpfs (rw,noexec,nosuid,nodev)
usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)
svcdir on /var/lib/init.d type tmpfs (rw,mode=0755,size=2048k)
none on /sys/fs/fuse/connections type fusectl (rw)
/dev/loop/4 on /root/tmp2 type ntfs (rw)
~ # ls tmp2
AUTOEXEC.BAT ntldr
BOOT.BAK pagefile.sys
bootfont.bin Programme
boot.ini RECYCLER
Dokumente und Einstellungen hiberfil.sys
System Volume Information NTDETECT.COM
IO.SYS Update
MSDOS.SYS WINDOWS
mount | grep -i loop
/dev/loop/4 on /root/tmp2 type ntfs (rw)
df -h | grep -i loop
/dev/loop/4 70G 68G 2,1G 98% /root/tmp2

nagut, wie man sieht lassen sich die Dateisysteme problemlos mounten und lesen. Wurde die Partitionstabelle beschädigt, kann man in einer Region der HDD in der sich das Dateisystem befinden sollte nach der Signatur suchen und anschließend mit offset mounten.

loopback für alles – ISO-Images

Wer kennt nicht das Problem? Man hat ein DVD oder CD-Image und möchte ohne zu Brennen auf dieses zugreifen. Mit einem loop-device kein Problem. Einfach vor den jeweiligen Mount-Befehl ein -o loop anfügen und das Problem ist Vergangenheit.
Einen tmp-Ordner erstellen, ein paar Unterordner anlegen und ein dummy-Image erstellen

mkdir image
mkdir image/ordner1
mkdir image/ordner2
mkdir image/ordner3
dd if=/dev/zero of=image/afile.dat bs=1000 count=100000
mkisofs -R -J -o cdimage.iso image/
I: -input-charset not specified, using utf-8 (detected in locale settings)
9.70% done, estimate finish Tue Mar 18 21:11:38 2008
19.41% done, estimate finish Tue Mar 18 21:11:38 2008
29.09% done, estimate finish Tue Mar 18 21:11:38 2008
38.80% done, estimate finish Tue Mar 18 21:11:40 2008
48.48% done, estimate finish Tue Mar 18 21:11:40 2008
58.19% done, estimate finish Tue Mar 18 21:11:39 2008
67.87% done, estimate finish Tue Mar 18 21:11:40 2008
77.58% done, estimate finish Tue Mar 18 21:11:40 2008
87.26% done, estimate finish Tue Mar 18 21:11:40 2008
96.97% done, estimate finish Tue Mar 18 21:11:40 2008
Total translation table size: 0
Total rockridge attributes bytes: 1322
Total directory bytes: 10240
Path table size(bytes): 90
Max brk space used 0
51572 extents written (100 MB)
ls -l
-rw-r--r-- 1 root root 105619456 18. Mär 21:12 cdimage.iso

OK, nun kann das Image einfach mit der -o loop Option gemountet werden.

mkdir tmp
mount -o loop cdimage.iso tmp
ls tmp
ordner1 ordner2 ordner3 afile.dat

Wunderbar, das Image wurde gemountet. Ich hatte nur eben gerade keine iso zur hand ;-)

OpenVPN HowTO Teil2 auf administrator.de veröffentlicht

nach einiger Zeit habe ich den 2. Teil meines HowTo’s zu OpenVPN endlich veröffentlicht. Es geht diesmal um die erstellung einer grundlegenden Server/Clientkonfiguration inkl. Tests. Ich bin dabei nur auf die grundlegende Konfiguration die für einen Tunnel nötig ist eingegangen. In einem 3. Teil werde ich detailierter auf die Verteilung der Software auf mehrere Clients, GUI’s sowie die fehlerbehebung eingehen. Ich hoffe es gefällt. Ich freue ich mich über jedes feedback.

http://www.administrator.de/index.php?content=dedecc70209db85b6b33389a0fae1835Â