Monday, 16. February 2009Debian Server ueber NEtzwerk auf neuen RAID1-Server migrieren
Am Wochenende hatte ich die Aufgabe, einen bestehenden Server auf einen neuen Rechner migrieren. Der neue Rechner
hat 2 Festplatten drin, die man als Software-RAID1 gespiegelt im Verbund betreiben kann. Im Internet habe ich einige Anleitungen gefunden, wie man ein laufendes System zu einem RAID-1 Verbund konvertiert, aber der Aufwand ist in diesem Fall ja nicht nötig, da man ja übers Netzwerk auf ein komplett neues System migrieren kann. Ich habe micht daher etwas herumgespielt und diese Anleitung entwickelt. Vielleicht kann ja mal jemand was damit anfangen. Wednesday, 28. January 2009Defekte Windows XP Registry wiederherstellen
Nachdem ich heute mal wieder einen Fall hatte, bei dem die Windows XP Registry-Datei (konkret der SYSTEM hive) im Eimer war, bin ich auf diesen Link gestoßen, wo erklärt wird, wie man mithilfe von Systemweiderherstellungspunkten die Registry-Datei wiederherstellen kann.
Konkret geht's relativ einfach: Mit Bart PE booten, im "System Volume Information" Ordner den neuesten Systemwiederherstellungspunkt (RP* Verzeichnis mit der höchsten Nummer) suchen und die jeweilige Registry-Datei in %systemroot%\system32\repair\ zurückkopieren. Das Mapping der Files steht ebenfalls beschrieben:
c:\windows\tmp natürlich durch den jeweiligen RP-Ordner ersetzen. Wednesday, 7. January 2009SIL3112 SATA-Controller des P4G8X Mainboards für Platten >750GB (z.B. 1TB) einrichten
Habe gestern ein P4G8X Mainboard geschenkt bekommen und wollte den neuen Rechner auch gleich entsprechend "würdigen", indem ich ihm eine 1TB SATA-Platte verpasse.
Also schnell mal eine 1TB Platte gekauft, reingesteckt und.... ...ernüchterung. Der SATA Controller bleibt beim Erkennen der Platte hängen. Na Prima! Also mal auf der Mainboard-Herstellerseite nach einem BIOS-Update suchen.. Fehlanzeige, das neueste BIOS ist von 2003. Was also tun? Glücklicherweise bin ich dann auf folgenden Thread gestoßen: http://forums.seagate.com/stx/board/message?board.id=ata_drives&thread.id=970&view=by_date_ascending&page=1. Dort wird erklärt, dass man mit MMTOOL das neue Controllerbios in das BIOS-Image hineinpatchen kann. Mit dem dort vorgeschlagenen MMTOOL geht's aber nur für AMI-BIOS wies scheint, also nichts für mein Board mit AWARD-BIOS. Jedoch habe ich bei meiner Recherche dann folgendes nützliche Tool entdeckt: AWDBEDIT. Folgende Schritte habe ich durchgeführt, um mir ein BIOS mit aktuellem SATA-Controllerbios zu erzeugen: 1) Aktuelle BIOS-Version vom Hersteller laden. 2) Wie im Thread oben angegeben Aktuelles SATA-ControllerBIOS laden. 3) AWDBEDIT laden 4) Alles In ein Verzeichnis auf der Platte laden. 5) AWDBEDIT hatte bei mir einen Bug und hat die Plugins nicht im Unterordner gefunden, habe daher die Files aus dem Plugins-Ordner ins Programmverzeichnis (also eine Verzeichnisebene höher) kopiert. 6) In AWDBEDIT die 1006G.awd geöffnet 7) Die Fehlermeldung, dass das kein gültiges BIOS-Image ist ignoriert und mit "JA" trotzdem das Laden bestätigt. In der Kategorie Font ROMs den FONT0 ROM ausgewählt. Dort müsste die rom\storage\4224.bin drin sein. 9) Actions / Replace File.. 10) 4284.bin aus dem zuvor entpackten Controllerbios eingefügt und dann unter Filename rom\storage\4284.bin genannt. 11) File / Save 12) Neues gepatches File geflasht. Viell. kann den Tip ja auch mal wer brauchen. Thursday, 20. November 2008Messagebox mit Timeout
Nachdem Zeit Geld ist und jemand nicht unbedingt immer die Nerven hat eine Messagebox wegzuklicken habe ich heute mal schnell eine MessageBox mit Timeout programmiert.
Das Prinzip ist denkbar simpel: Messagebox Hooken, Windowhandle bei Initialisierung holen, Timer Setzen und bei Timeout default-Button drücken. Dabei bin ich jedoch durch einen Programmierfehler (vergessen die Timerprozedur in SetTimer anzugeben) auf ein interessantes Verhalten gestoßen: Scheinbar reicht es, einen Timer mit der ID 1 mit SetTimer in der MessageBox anzulegen, der dann nach Ablauf der Zeit ein WM_TIMER an die Messagebox sendet. Vermutlich hat die Dialogprozedur des Systems schon von sich aus eine Logik dahinter, die die Box dann schließt.Code siehe hier: MessageBox mit Timeout Eine noch interessantere Lösung habe ich dann schließlich in der MSDN gefunden: KB181934 Friday, 31. October 2008Empfangendes Interface bei UDP-Kommunikation finden
Ich schreibe zur Zeit privat an einer kleinen RIS (Remote-Installation)-Lösung, mit der man übe rPXE ein Betriebssystem bequem und einfach übers Netzwerk installieren kann.
Dafür wollte ich auch ein kleines Feature einbauen, mit welchem man Tokens (derzeit nur einen Token) im Textfile, welches die Menüstruktur des PXE-Menüs beschreibt, hinterlegen kann, welche dann entsprechend ersetzt werden. Konkret handelte es sich um einen Token, welcher die IP-Adresse des TFTP-Servers angeben soll. Um Knoppix über PXE zu booten, habe ich das gepatchte Koppix verwendet, welches statt über NFS auch über SMB booten kann. Hier der entsprechend gepatchte Knoppix-Kern. Leider benötigt dieser bei der Pfadangabe des zu bootenden Servers unbedingt die IP und kann den Namen scheinbar nicht auflösen. Da ich den Server aber möglichst flexibel halten will, dachte ich mir, ich lasse meinen TFTPD einfach die IP des Interfaces einsetzen, über den der TFTP-Server den Client bedient. Doch das herauszufinden gestaltet sich leider alles Andere als einfach. Ich binde den TFTPD auf alle Interfaces (INADDR_ANY). Danach verwende ich recvfrom und sendto , um Requests zu erhalten bzw. zu beantworten. Damit funktioniert das Ganze ja recht einfach, beim recvfrom erhalte ich die CLIENT-Adresse, die ich bei sendto wieder angeben muss. Doch wie bekomme ich die IP des Interfaces?Die erste Idee war, getsockname nach dem ersten recvfrom zu verwenden. Unter BSD-Artigen Systemen ist in der resultierenden Strutur dann die jeweils verwendete Adresse zu finden (sockaddr_in ). Groß war die Ernüchterung, als unter Windows jedoch 0.0.0.0 drinnen stand. Warum das so ist erklärt der Artikel Q129065 der Microsoft Knowledge Base.Na prima, dort steht eindeutig: Applications should not assume that they can get the IP address of the interface.. Damit wollte ich mich aber nicht zufrieden geben. Irgendwie muss es doch möglich sein, trotzdem das zuständige interface herauszufinden. Schließlich kam ich auf folgende Idee, die als Workaround ganz gut funktioniert: Von recvfrom ist ja die IP des Clients bekannt. Also müssen wir Winsock einfach fragen, welches Interface die beste Route dorthin hat. Mein Workaround:
Gewinnt zwar keinen Schönheitspreis, aber mir ist auch keine bessere Lösung dafür bekannt. Monday, 10. March 2008RAMDISK.SYS unter Windows XP
Microsoft bietet als als Beispieltreiber eine kleine ramdisk an (RAMDISK.SYS). Dort steht geschrieben, dass man für windows XP den Treiber neu kompilieren muss, falls man ihn auf einem System einsetzen will, wo keine FAT-Laufwerker installiert sind (Sonst komtm beim Aufruf des Laufwerks: Unzulässiger Funktionsaufruf).
Dies ist aber nicht unbedingt notwendig. Man kann auch einfach den FastFat-Treiber aktivieren. Hierzu in der Registry unter: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Fastfat\ den Wert Start von 4 auf 1 ändern. damit wird der Treiber beim Systemstart gestartet und folglich funktioniert auch RAMDISK.SYSTuesday, 5. February 2008Konvertieren von RTF in TXT files mittels WIN32-API
Heute hatte ich im Büro die Aufgabenstellung, eine RTF-Datei in PLaintext zu konvertieren.
Für solche Aufgabenstellungen gibt es natürlich unzählige Libraries im Internet, aber mittels des RichEdit-Controls funktioniert es auch direkt über Windows. Das Prinzip ist einfach: Ein verstecktes Richedit-Control als Fenster anlegen, RTF-Daten hineinladen, TXT-Daten herausschreiben, fertig. Ich habe mir eine kleine Funktion hierfür gebastelt. Wen's interessiert, es gibt sie hier. Tuesday, 6. December 2005OldSkool DemoMakerDer OldSkool DemoMaker von Volker Stepprath, mit dem ihr kinderleicht eure eigenen Grafikdemos im Oldschool-Amiga-Style zusammenklicken könnt. Sunday, 6. November 2005Halloween Chiptunes
per zufall bin ich auf der homepage vom schaua auf einen link zu einer chipstyle halloween compilation gestossen. hört's auch an!
(Seite 1 von 1, insgesamt 9 Einträge)
|
SucheBlog abonnierenTop ReferrerVerwaltung des Blog |