BIOS-Update per Boot-CD für Verzweifelte

Manche Dinge werden mit fortschreitender Entwicklung der Technik leider nicht einfacher. Ich habe an diesem Wochenende einem Kollegen beim BIOS-Update seines Medion-Rechners geholfen. Dieser Rechner hatte allerdings

  1. eine zum Original-Setup veränderte Partition, sodass die Medion-OEM-Boot-CD nicht startete
  2. eine Hardware, die sich nicht mit den üblichen FreeDOS-Varianten verträgt (die typischen Boot-CDs aus dem Internet fallen damit weg)
  3. kein Diskettenlaufwerk
  4. SATA-CDROM + SATA-Harddisk (die typischen auf MS-DOS basierten Startdisketten mit CDROM-Unterstützung kommen mit SATA nicht klar)
  5. keine funktionierende USB-Boot-Unterstützung

Das Gegenmitttel zu Nr. 3 – ein externes USB-Floppy-Laufwerk – half auch nicht weiter, da das BIOS-Image satte 2MB groß war.

Nach langem Brüten hat folgende Durch-die-Brust-ins-Auge-Variante zum Erfolg geführt. Ein Hinweis: sollte jemand das nachmachen wollen, versucht es zuerst mit Bart’s Clean Boot CD (siehe unten). Wenn das FreeDOS nicht läuft, kann man immer noch alle diese Schritte machen…

Zuerst unter Windows 7 eine MS-DOS-Startdiskette erstellen (im Dialog Formatieren…), entweder auf eine echte Diskette mit USB-Floppy-Laufwerk oder mit VMWare und einem neuen Floppy-Image.

WinImage herunterladen und entpacken (Installation nicht notwendig) …

  1. Den Inhalt der mit Windows erstellten Start-Diskette einlesen (Disk->Read Disk), die Dateien in ein Verzeichnis speichern (Image->Extract) und den Bootsektor sichern (Image->Boot Sector Properties->Save…)
  2. Eine neues 2,88MB Diskettenimage anlegen
  3. Die Dateien von der MS-DOS-Startdiskette importieren (Image->Inject a Folder) und den gesicherten Bootsektor wieder einfügen (Image->Boot Sector Properties->Open…)
  4. Die BIOS-Update-Dateien importieren (Image->Inject)
  5. Save as… Image File (*.ima)

Bart’s Clean Boot CD package v2.0 herunterladen und entpacken…

  1. In der Datei clean20\cds\clean\bcd.cfg die Zeile „buildimg“ auskommentieren, wir wollen unser fertiges Floppy-Image verwenden und nicht das mitgelieferte FreeDOS
  2. Das Diskettenimage von WinImage als „clean.img“ in das Verzeichnis clean20\cds\clean\files legen
  3. In der Datei clean20\bcd.cmd die Zeile „set bcd_noburn“ in „set bcd_noburn=1“ ändern, dann wird nicht sofort das Image auf CD gebrannt.  Wenn man sich sicher ist, dann Rohling rein und los 😉
  4. build-clean.cmd ausführen

Das Ergebnis ist eine ISO-Datei unter %TEMP%\bcd.iso bzw. eine fertige Boot-fähige CD-ROM die die BIOS-Update-Dateien enthält.

Konfigurations-Checkliste für Router und Switches

Die Inhalte der IT Grundschutz Kataloge des Bundesdamt für Sicherheit in der Informationstechnik (BSI) muten bezüglich Aktualität und nützlichen Informationen bisweilen schon etwas seltsam an. Auf jeden Fall kommen nostalgische Gefühle beim Lesen von Maßnahmen wie „Freigabe von Verzeichnissen unter Windows 95“ auf.

Zu den gelungenen Dingen zählt aus meiner Sicht aber z.B. eine Konfigurations-Checkliste für Router und Switches. Wenn man über die Eindeutschung von Fachbegriffen stolpert, kann man eventuell auch noch M 4.201 und M 4.202 lesen.

Mails > 2009 = SPAM

Interessant welche Auswirkungen ein kleiner Fehler in einem weit verbreiteten Antispam-Modul haben kann. Auch bei meinem Provider 1und1 konnte ich den Effekt beobachten.

Hier der Header einer Dilbert-Mail vom 30.12.2009:

X-SpamScore: 2.9
 tests= HTML_IMAGE_RATIO_04 HTML_MESSAGE HTML_MIME_NO_HTML_TAG MIME_HTML_ONLY

Und hier der Header der Dilbert-Mail vom 01.01.2010, die auch prompt von 1und1 in den Spamfilter befördert worden ist:

X-SpamScore: 6.1
 tests= FH_DATE_PAST_20XX HTML_IMAGE_RATIO_08 HTML_MESSAGE HTML_MIME_NO_HTML_TAG MIME_HTML_ONLY
X-Nemesis-Spam: rulefilter

Wie man sieht, ist der besagte Filter FH_DATE_PAST_20XX dabei und vermutlich für das hohe Spamscoring verantwortlich – der Dilbert-Comic-Strip wurde bisher noch nie aussortiert. Frohes Neues! 🙂

wma Dateien per Batch in mp3 umwandeln

Der Windows Media Player spült Audio-CDs leider standardmäßig im wma-Format auf die eigene Festplatte. Wenn man kein Freund von bunten Adware-Tools ist, schaffen zwei nützliche Programme und ein Batchfile Abhilfe: mplayer und lame.

Folgenden Code als .cmd-Datei gespeichert konvertiert alle im Ordner vorhandenen wma-Dateien in mp3-Dateien, mplayer und lame müssen im Pfad vorhanden sein.

rem wandle alle .wma-Dateien in .wav um
for %%F IN (*.wma) do mplayer.exe  -vo null -ao pcm:file="%%~nF.wav" -af resample=44100 "%%~nF.wma"
rem wandle alle .wav-Dateien in .mp3 um
for %%F IN (*.wav) do lame.exe -V5 --vbr-new  -h "%%~nF.wav" "%%~nF.mp3"
rem loesche alle .wav-Dateien im Ordner
rem del *.wav

Weitere Infos bezüglich LAME-Optionen

Nicht schön, aber es funktioniert 😉

WD TV Live root

Meine neueste Errungenschaft – ein Full HD Player von Western Digital. Der WD TV Live spielt praktisch alles an Medien ab was so in der bunten Internetwelt herumfleucht. Und weil es geht (nicht unbedingt weil man es braucht): dank der Firmware von b-rad habe ich jetzt auch einen ssh-root-Zugang zu dem Player. 🙂
http://b-rad.cc/1066/wdlxtv-live0-3-0/ – es gibt aber schon eine WDLXTV-LIVE-0.3.1 Version.

Die Installation ist ziemlich einfach. Downloaden, auf einen blanken Fat32-USB-Stick entpacken, USB Stick in WD box stecken und booten. Die bisherigen Features der originalen Oberfläche bleiben quasi unberührt, man kann halt zusätzlich das Gerät anpassen und Software installieren. In der Featureliste ist unter anderem ein Webserver (lighthttpd) und ein Bittorrent-Client (Deluge, den habe ich aber noch nicht ausprobiert).

BSOD auslösen unter Windows 7

Es hört sich etwas verrückt an, aber tatsächlich gibt es Situationen an denen man einen Blue Screen braucht. Und zwar wenn das System so eingefroren ist, dass man weder Taskmanager noch Ctrl+Alt+Entf einsetzen kann, um sich irgendwie aus der Klemme zu helfen. In diesem Fall bleibt normalerweise nur ein Reset – und beraubt sich damit in der Regel jede Möglichkeit einer Fehleranalyse.

Unter dem Absatz „Methods to generate a manual memory dump file“ listet der Microsoft KB-Artikel 969028 interessante Möglichkeiten für eine solche Situation auf.

Mein Favorit: CrashOnCtrlScroll. Natürlich muss man das vorher einstellen, aber man muss nicht mal booten sofern man die USB-Tastatur einmal abzieht und wieder einsteckt. Wenn man den Registry-Eintrag gemacht hat, schaut man mit einem beherzten Strg+ScrollLock+ScrollLock (auf deutschen Tastaturen auch „Rollen“) auf einen hübschen Blue Screen of Death. Und wenn das unbekannte Problem wieder auftritt kann man per Tastenkombination einen Minidump erzeugen und sich später mit WinDebug den Crashdump ansehen. Wenn das Problem z.B. durch ein Treiber ausgelöst wird, sollte mit etwas Glück die entsprechende .sys-Datei noch im Stack zu finden sein.

Das ganze sieht dann z.B. so aus:

1: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

MANUALLY_INITIATED_CRASH (e2)
The user manually initiated this crash dump.
Arguments:
Arg1: 0000000000000000
Arg2: 0000000000000000
Arg3: 0000000000000000
Arg4: 0000000000000000

Debugging Details:
------------------

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

BUGCHECK_STR:  0xE2

PROCESS_NAME:  System

CURRENT_IRQL:  2

LAST_CONTROL_TRANSFER:  from fffff88005bd4dcf to fffff80002a7cf00

STACK_TEXT:
fffff880`0351b5a8 fffff880`05bd4dcf : 00000000`000000e2 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KeBugCheckEx
fffff880`0351b5b0 fffff880`05bd490b : fffffa80`0377c6b8 00000000`00000000 00000000`00000000 fffffa80`05f7f970 : kbdhid!KbdHidProcessCrashDump+0x1df
fffff880`0351b5f0 fffff880`05b96629 : fffffa80`068a8970 fffffa80`068ab190 fffffa80`00000000 00000000`0000000e : kbdhid!KbdHid_InsertCodesIntoQueue+0xbb
fffff880`0351b650 fffff880`05b9687c : fffffa80`000000c6 fffffa80`068ab190 00000000`0000000e 00000000`00000001 : HIDPARSE!HidP_KbdPutKey+0x3d
fffff880`0351b680 fffff880`05b967d2 : 00000000`00000000 fffff880`05b949d6 00000000`00000007 fffff880`05060000 : HIDPARSE!HidP_TranslateUsage+0x6c
fffff880`0351b6c0 fffff880`05bd461e : 00000000`00000000 fffffa80`068a893c fffffa80`068a8860 00000000`00000000 : HIDPARSE!HidP_TranslateUsageAndPagesToI8042ScanCodes+0xde
fffff880`0351b720 fffff800`02a7f516 : fffffa80`068bf88b fffff880`00000001 fffffa80`00000000 00000000`00000009 : kbdhid!KbdHid_ReadComplete+0x222
fffff880`0351b7a0 fffff880`05b7eacc : fffffa80`068aacc0 fffffa80`068aac06 fffffa80`06895c00 00000000`00000000 : nt!IopfCompleteRequest+0x3a6
fffff880`0351b880 fffff880`05b7ed35 : fffffa80`0688e302 fffffa80`0688e3c0 fffffa80`06895cb0 00000000`00000008 : HIDCLASS!HidpDistributeInterruptReport+0x130
fffff880`0351b910 fffff800`02a7f516 : fffffa80`0686fb1b 00000000`00000000 fffffa80`06895b01 fffffa80`0686f850 : HIDCLASS!HidpInterruptReadComplete+0x235
fffff880`0351b9a0 fffff880`045735d9 : fffffa80`05a08050 fffffa80`03fe6600 00000000`00000000 00000000`00000000 : nt!IopfCompleteRequest+0x3a6
fffff880`0351ba80 fffff880`04573ab7 : fffffa80`07987502 fffffa80`0686f850 00000000`ffffffff fffffa80`05a08ea8 : USBPORT!USBPORT_Core_iCompleteDoneTransfer+0xa15
fffff880`0351bb60 fffff880`0457164f : fffffa80`05a08ea8 fffffa80`05a081a0 fffffa80`05a09040 00000000`00000000 : USBPORT!USBPORT_Core_iIrpCsqCompleteDoneTransfer+0x3a7
fffff880`0351bbc0 fffff880`04562f89 : fffffa80`05a08050 00000000`00000000 fffffa80`058af702 fffffa80`05a08ea8 : USBPORT!USBPORT_Core_UsbIocDpc_Worker+0xf3
fffff880`0351bc00 fffff880`0106f4ce : fffffa80`058af000 fffffa80`05a08ea8 fffffa80`058af750 fffffa80`05a08ec0 : USBPORT!USBPORT_Xdpc_Worker+0x1d9
fffff880`0351bc30 fffffa80`058af000 : fffffa80`05a08ea8 fffffa80`058af750 fffffa80`05a08ec0 fffff880`009ef180 : spxe+0x424ce
fffff880`0351bc38 fffffa80`05a08ea8 : fffffa80`058af750 fffffa80`05a08ec0 fffff880`009ef180 00000000`00000000 : 0xfffffa80`058af000
fffff880`0351bc40 fffffa80`058af750 : fffffa80`05a08ec0 fffff880`009ef180 00000000`00000000 fffff880`009f3ec0 : 0xfffffa80`05a08ea8
fffff880`0351bc48 fffffa80`05a08ec0 : fffff880`009ef180 00000000`00000000 fffff880`009f3ec0 00000000`00000022 : 0xfffffa80`058af750
fffff880`0351bc50 fffff880`009ef180 : 00000000`00000000 fffff880`009f3ec0 00000000`00000022 00000000`00000000 : 0xfffffa80`05a08ec0
fffff880`0351bc58 00000000`00000000 : fffff880`009f3ec0 00000000`00000022 00000000`00000000 00000000`00000000 : 0xfffff880`009ef180

[...]