vmware web-konsole stürzt nach CentOS-Upgrade ab

[stextbox id=“warning“ caption=“Achtung“]Ab CentOS 5.6 ist das Problem mit der glibc zwar wieder behoben; doch dann stürzt die vmware-konsole ab (vmware-hostd mit einem „Segemnation fault“), wenn der hack aktiv ist!

Um das Problem dann wieder zu lösen muss man lediglich in /usr/sbin/vmware-hostd die zweitletzte Zeile

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH

auskommentieren oder löschen.

Diese Beschreibung bleibt deshalb nur noch als Referenz hier und für solche welche den Hack früher schon mal gemacht hatten. – Falls der Hack noch nicht ausgeführt wurde, sollte man ab jetzt gleich auf CentOS 5.6 upgraden.[/stextbox]

Nach dem upgrade von CentOS 5.3 auf 5.4 oder eine höhere Version stürzt die vmware web-konsole mit einem "HTTP error code" ab.

Grund ist ein bug in vmware, der mit der aktuellen glibc nicht zurecht kommt.

Glücklicherweise lässt sich dies aber sehr einfach lösen, indem man die alte glibc herunter lädt und diese mit vmware verlinkt.

Folgendes script löst das Problem automatisch:

#!/bin/bash
###########################################
# This may help using the vmware-server2  #
# on a CentOS 5.4 x86_64 Host.            #
# There is a problem with the the libc    #
# More informations:                      #
# <a href="http://bugs.centos.org/view.php?id=3884" target="blank">http://bugs.centos.org/view.php?id=3884</a> #
#-----------------------------------------#
# Version 0.1                             #
# This script will get the 'old' libc     #
# from the CentOS 5.3 repositories and    #
# configures vmware-server2 to use this   #
# The original libc (for the 5.4-system)  #
# will not be replaced or touched.        #
#-----------------------------------------#
# License: Do with the code whatever you  #
# want. This came without any warrenty.   #
###########################################
 
LIBC_DIR="/usr/lib/vmware/lib/libc.so.6"
TEMP_DIR="/tmp/vmw_glibc"
VMWARE_CONFIGFILE="/usr/sbin/vmware-hostd"
VMWARE_CONFIGFILE_BAK=$VMWARE_CONFIGFILE.bak
 
# Checking for root
if <span class="keys"> $EUID -ne 0 </span>; then
    echo "This script must be run as root"
    exit 1
fi
 
# We test for the commands  we need:
echo "Looking for some commands I need..."
which wget
if [ $? != 0 ]; then
    echo "I can't find wget but need it to download the files. Please install."
fi
which rpm2cpio
if [ $? != 0 ]; then
    echo "I can't find rpm2cpio but need it to extract Files from a .rpm-file. Please install."
fi
 
# Creating a directory for the 'old' glibc
mkdir -p $LIBC_DIR
if [ $? != 0 ]; then
    echo "Can't create directory $LIBC_DIR"
    exit 2
fi
 
# Removing and creating a temporary directory for the rpm,
# downloading it, extracting the old glibc and copy
# the them to our new directory
rm -rf $TEMP_DIR
mkdir -p $TEMP_DIR
if [ $? != 0 ]; then
    echo "Can't create directory $TEMP_DIR"
    exit 2
fi
cd $TEMP_DIR
wget <a href="http://vault.centos.org/5.3/os/x86_64/CentOS/glibc-2.5-34.x86_64.rpm" target="blank">http://vault.centos.org/5.3/os/x86_64/CentOS/glibc-2.5-34.x86_64.rpm</a>
if [ $? != 0 ]; then
    echo "Something was wrong while downloading"
    exit 2
fi
rpm2cpio glibc-2.5-34.x86_64.rpm | cpio -ivd
mv lib64/libc-2.5.so $LIBC_DIR/libc.so.6
if [ $? != 0 ]; then
    echo "Can't move the libc into directory $LIBC_DIR"
    echo "Removing temporary files..."
    echo -rf $TEMP_DIR
    exit 2
fi
echo "The file libc-2.5.so from the centOS 5.3 rep. was saved in: $LIBC_DIR as libc.so.6"
 
echo "Removing temporary files..."
rm -rf $TEMP_DIR
 
# Now we editing the start-config of the vmware-server
echo "I must change $VMWARE_CONFIGFILE now, you will find a backup in $VMWARE_CONFIGFILE_BAK"
mv $VMWARE_CONFIGFILE $VMWARE_CONFIGFILE_BAK
cat $VMWARE_CONFIGFILE_BAK | grep -v 'eval exec "$DEBUG_CMD" "$binary" "$@"' > $VMWARE_CONFIGFILE
echo export LD_LIBRARY_PATH=$LIBC_DIR/libc.so.6:'$LD_LIBRARY_PATH' >> $VMWARE_CONFIGFILE
echo '' >> $VMWARE_CONFIGFILE
echo 'eval exec "$DEBUG_CMD" "$binary" "$@"' >> $VMWARE_CONFIGFILE
 
# Ensuring the script is executable
chmod 555 $VMWARE_CONFIGFILE
 
echo "Everything is done, please restart your vmware-server2"

Troubleshooting

Nach dem ausführen des scriptes sollte überprüft werden ob das file: /usr/sbin/vmware-hostd ausführbar ist.

Weiter öffnet man am besten mal: /usr/sbin/vmware-hostd und prüft die unterste export Zeile; dabei muss man darauf achten, dass LD_LIBRARY_PATH auf das Verzeichnis zeigt wo die "libc.so.6" liegt und nicht das File selbst!

So ist es falsch:

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6/libc.so.6:$LD_LIBRARY_PATH

So sieht die korrekte export-Zeile aus:

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH

(Dies wird manchmal vom script durcheinander gebracht)

Nach einem vmware-neustart sollte sich dann die Konsole wieder öffnen lassen.

[stextbox id=“note“ caption=“Hinweis“]Seit der Firefox-Version 3.6 lässt sich die vmware Web-Konsole nicht mehr korrekt öffnen; dies ist jedoch nicht mit diesem bug relevant, sondern ein Bug im Firefox-Plugin.[/stextbox]

Related Links

postfix-mysql: queue file write error / Temporary lookup failure

Nachdem ich mein Postfix für die Verwendung mit mysql Tabellen konfiguriert hatte, bekam ich auf einmal beinahe täglich mails, die den Text: "451 4.3.0 Error: queue file write error" und/oder: "Temporary lookup failure" enthielten:

Transcript of session follows.
 
 Out: 220 mail.domain.tld ESMTP Postfix
 In:  EHLO [X.X.X.X]
 Out: 250-mail.domain.tld
 Out: 250-PIPELINING
 Out: 250-SIZE 10240000
 Out: 250-VRFY
 Out: 250-ETRN
 Out: 250-AUTH PLAIN LOGIN
 Out: 250-AUTH=PLAIN LOGIN
 Out: 250-ENHANCEDSTATUSCODES
 Out: 250-8BITMIME
 Out: 250 DSN
 In:  AUTH PLAIN XXXXXXXXXXXXXXXXXXXXXXX
 Out: 235 2.0.0 Authentication successful
 In:  MAIL FROM:<sender@example.org> SIZE=1037
 Out: 250 2.1.0 Ok
 In:  RCPT TO:<empfaenger@example.org>
 Out: 250 2.1.5 Ok
 In:  DATA
 Out: 354 End data with <CR><LF>.<CR><LF>
 Out: 451 4.3.0 Error: queue file write error
 
Session aborted, reason: lost connection

Zwar schien alles zu funktionieren und die mails kamen auch immer noch rein, ich wollte jedoch der Meldung nachgehen.

Im maillog wurde ich dann fündig, denn folgende Fehlermeldung tauchte ziemlich oft auf:

warning: mysql query failed: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=

Dies kam davon, weil ich die postfix Datenbank noch auf dem alten Server angelegt hatte und auf dem der Zeichensatz: latin1_swedish_ci standardmässig eingestellt war, beim neuen Server war jedoch UTF8 standard.

Das Problem kann man dann lösen, wenn man die Postfix Datenbank wie folgt konvertiert:

Login auf mysql:

mysql -uroot -p

dann für jede Tabelle:

ALTER TABLE tbl_name CHARACTER SET utf8 COLLATE utf8_general_ci;

und für jedes Textfeld:

ALTER TABLE tbl_name MODIFY email varchar(255) CHARACTER SET utf8;

Quelle

Lenovo Notebooks: Touchpad und Keyboard reagieren nicht

Einige Besitzer von Lenovo Notebook aus der Baureihe: T50, T51, T60, T61 (und vermutlich noch andere) werden nach einer Neuinstallation von Windows und durchführen der ersten Windows Updates entrüstet feststellen, dass das TouchPad oder das Keyboard nur noch sporadisch funktioniert, manchmal klingt auch der Windows-Startsound etwas zerstückelt.

Das Problem liegt am Treiber Update, dass Lenovo über die Windowsupdates zur Verfügung stellt – Die Lösung: Den Lenovo treiber einfach nicht updaten. 😉

Dazu wählt man bei Windows Update die benutzerdefinierte Installation und wählt das häckchen bei: Synaptics Thinkpad UltraNav Pointing Devices ab. Dann noch Bestätigen, dass dieses update nicht mehr angezeigt werden soll und gut ist!

{img fileId="62" thumb="y" alt="" rel="box[g]"}
{img fileId="63" thumb="y" alt="" rel="box[g]"}

sudo blockt nrpe „check_clamd“ und „check_smartmon“ (NRPE: Unable to read output)

Wenn man nrpe-commands über sudo laufen lassen muss, schlagen diese teilweise mit dem wenig sagenden Fehler „NRPE: Unable to read output“ fehl; so z.B. „check_clamd“ und „check_smartmon“ auf CentOS. – Und das obwohl lokal mit dem nrpe-user alles funktioniert!

Schuld ist der visudo-Parameter:

Defaults    requiretty

Dieser ist bei einigen Linux-Distributionen standardmässig deaktiviert-, bei CentOS (und wahrscheinlich auch RHEL) aber aktiviert.

Mit diesem Parameter laufen visudo Kommandos nur noch wenn ein Benutzer in der Shell eingeloggt ist, d.h. weder über cron, cgi, oder eben nrpe (siehe: http://www.courtesan.com/sudo/man/sudoers.html).

Das Problem lässt sich recht einfach beheben:

Zuerst ‚visudo‘ aufrufen und dann die Zeile: „Defaults requiretty“ einfach auskommentieren oder löschen.

Die bessere Alternative wäre eine spezielle sudo Konfiguration für den nrpe Benutzer.

Umgang mit dynamischen Datenträgern

Mit Windows 2000 hat Microsoft die sog. "dynamischen Datenträger" eingeführt. Dies ist sehr praktisch, man muss aber aufgrund einiger, immer noch unfertiger Implementierung einige Fallstricke beachten.

Diese werden hier erklärt.

Regel ##1: NIEMALS Änderungen in der Windows Oberfläche

Egal, ob man nur Partitionen anlegen, verkleinern, usw. will; diese Änderungen muss man IMMER in der Windows Installationsoberfläche machen (also Windows CD beim start einlegen, so wie wenn man Windows installieren möchte). -Windows erlaubt zwar alle diese Änderungen auch in der "Datenträgerverwaltung"; nur danach sieht der Installer diese Partitionen nicht mehr! Nimmt man dann nach einer Änderung in der Datenträgerverwaltung eine Änderung im Windows Installer vor, ist danach der ganze dynamische Datenträger unbrauchbar!

Regel #2: Erst im Windows Installer als "Basis-Festplatten" anlegen, dann in Windows zu dynamischen Datenträgern konvertieren.

Möchte man sich ein dynamisches Datenträger-Layout anlegen, etwa weil man die Laufwerksbuchstaben endlich unveränderbar anlegen möchte, so muss man dieses zuerst normal im Windows-Setup als Basis-Festplatten machen. Dann in der Datenträgerverwaltung auf dynamische konvertieren. -Danach dürfen jedoch KEINE Änderungen gemacht werden!

Regel #3: Keine stripesets/mirrors verwenden
Die erweiterten Funktionen wie z.B. das "Software RAID" (stripeset, mirroring) oder spanning (eine Partition über mehrere Festplatten verteilt) sollte man wenn möglich nicht machen.
Verwendet man dies trotzdem, muss vor JEDER Windows Installation der ganze dynamische Datenträger gesichert und neu angelegt werden.

Regel #4: Bei Änderungen: Immer komplett neu anlegen

Was, wenn man nun aber dem freien Speicherplatz eines dynamischen Datenträgers weitere Partitionen hinzufügen möchte?
Dann gibts nur folgende Prozedur:

    1. Alle Daten auf allen Partitionen der dynamischen Laufwerken sichern

2. Alle Partitionen löschen, wieder in Basis-Festplatte Umwandeln
3. Windows Installer booten, neues Partitonslayout anlegen
4. In der Windows Datenträgerverwaltung in einen dynamischen Datenträgern umwandeln

Windows 98- 1 Fehler weniger (Win98 only)

Viele Wissen es vielleicht schon: Windows 98 hat einen Bug, der das System 10% Langsamer macht!-Der Grund: Es fehlen einige "Virtual Xtensions Driver" Dateien (vxd). Hier wird beschrieben, wie man diesen Bug selbst behebt.

So behebt man den Bug:

    1. Legen Sie die Windows 98 CD ein.

2. Gehen Sie ins Verzeichnis win98win_45.cab
3. Suchen Sie die folgenden Dateien, und Extrahieren Sie ins Entsprechende Verzeichnis:

Datei: Zielordner:

VDD.VXD C:WindowsSystem
VCOMM.VXD C:WindowsSystem oder C:WindowsSystemvmm32
VMOUSE.VXD C:WindowsSystem oder C:WindowsSystemvmm32
CONFIGMG.VXD C:WindowsSystem oder C:WindowsSystemvmm32
NTKERN.VXD C:WindowsSystem
VDMAD.VXD C:WindowsSystem oder C:WindowsSystemvmm32

Klassisch mounten statt subfs

den einen ist das automatische Mounten, wie es seit der SUSE Version 9.1 über submount/subfs standardmässig für Wechselmedien (Floppy, CD und DVD) sowie über Hotplug eingebundene Geräte, wie etwa USB-Sticks oder -Festplatten, unsympathisch bzw. die Funktionalität unerwünscht. Man würde deshalb gerne wieder auf die "klassische" Art des Mountens von Datenträgern umstellen.

Vorgehen
Für Floppy, CD- und DVD-Laufwerk lässt sich dies einfach durch Editieren der Datei /etc/fstab bewerkstelligen. Dazu ändert man die betreffenden Zeilen (hier am Beispiel von DVD und Floppy) einfach von

/dev/dvd     /media/dvd        subfs   fs=cdfss,ro,procuid,nosuid,nodev,exec,iocharset=utf8 0 0
/dev/fd0     /media/floppy     subfs   fs=floppyfss,procuid,nodev,nosuid,sync 0 0

in

/dev/dvd     /media/dvd        auto    ro,noauto,user,exec,iocharset=utf8    0 0
/dev/fd0     /media/floppy     auto    noauto,user,exec,sync                 0 0

Wichtig: Bitte zunächst eine Sicherheitskopie der originalen /etc/fstab erzeugen!

Für Datenträger wie USB-Sticks, die über den Hotplug-Mechanismus eingebunden werden ist die Sache noch einfacher. Zunächst zunächst ein YaST Online Update durchführen, damit das Paket hotplug aktualisiert wird. Anschliessend als root die Datei /etc/sysconfig/hotplug öffnen und die Variable HOTPLUG_USE_SUBFS von yes auf no stellen. Durch den folgenden Befehl startet man nun das hotplug-System neu, um die Änderung zu übernehmen:

rchotplug restart
Hotplug wird in diesen Fall nicht weiterhin dafür sorgen, dass unterhalb von /media entsprechende Verzeichnisse angelegt werden, wenn ein neuer Datenträger über Hotplug erkannt wird. Wenn noch kein Verzeichnis besteht, muss es manuell angelegt werden, zum Beispiel durch den folgenden Befehl:

mkdir /media/sda1
Das Mounten der Datenträger funktioniert wie gehabt über (beispielsweise)

mount /dev/sda1 /media/sda1

Quelle: http://de.opensuse.org/SDB:9.1:_klassisch_mounten_statt_subfs

MSI StarKey 2: USB Bluetooth stick wird nicht automatisch erkannt

[stextbox id=“note“ caption=“Hinweis“]Das nachfolgende gilt Grundsätzlich für alle Geräte mit dem Broadcom Bluetooth stack, bei mir ist das halt einfach der MSI StarKey.[/stextbox]

MSI wirbt damit, dass ihr bluetooth dongle "StarKey 2" den Treiber automatisch über Windows Update installieren kann.

Bevor dies jedoch möglich ist muss eine Windows INF Datei "gehackt" werden, ansonsten wird der stick von WindowsUpdate nicht erkannt.

Zuvor sollte man aber wie in der Anleitung beschrieben http://windowsupdate.microsoft.com/ aufrufen um die neueste Version von WindowsUpdate herunterzuladen (dies gilt auch, wenn man automatische updates aktiviert hat in Windows!)

Danach wirds spannend:
Um also den stick bekannt zu machen muss man im Geräte Manager einen Rechtsklick auf das Gerät "Broadcom BCM2045A" machen, dann unter "Details" die "Hardwarekennung" auswählen.

Dort stehen dann zwei Einträge:

USBVID_0A5C&PID_2045&REV_0112
USBVID_0A5C&PID_2045

Den unteren davon muss man kopieren.

Jetzt öffnet man unter den "INF" Ordner im Windowsverzeichnis (C:WINDOWSINF) und dort die Datei bth.ini

Dann sucht man dort unter "Broadcom" den Eintrag: "BCM2033" und ersetzt dies mit 2045A.
Bei der Hardware-ID (So was wie: "Transceiver= BthUsb, USBVID_0A5C&PID_2033") ist das 2033 mit "2045" zu ersetzen und die "USBVID"-Zeile mit dem kopierten Eintrag aus dem Gerätemanager.

Nun kann man den Treiber wie beschrieben über Windows update installieren lassen.

Thanks to: http://forums.driverguide.com/showthread.php?p=77084

DNS-Server: Falsche serial-nummern reparieren

Bei einem Nameserver gibt jeweils der sog. "serial" Wert an, ob ein zonefile vom master auf den slave aktualisiert werden soll; dies geschieht jedoch nur, wenn diese Nummer GRÖSSER ist als vorher.

Diese Nummer lässt sich zwar frei festlegen, die meisten admins bevorzugen aber die Konvention: YYYYMMDDNR

Nun bekommt man natürlich ein Problem, wenn man diese Nummer mal aus versehen zu hoch gesetzt hat, beispielsweise auf: 3010120301 – Wie korrigiert man nun diesen Wert, damit man wieder die kleinere Nummer verwenden kann?

Es reicht die Nummer: 4294967295 als serial zu setzen, die Zone neu zu laden und dann die Richtige einzutragen.

[stextbox id=“note“ caption=“Der Mathematische Weg“]Wer lieber den "Mathematischen-Weg" gehen möchte: 😉

Man addiert einfach den Maximal-Wert: 2147483647 zur falschen Nummer hinzu, also beispielsweise: 2147483647 + 3010120301 = 5157603948 und trägt diese Serial ein. Da diese Zahl dann überlaufen würde wäre die Nummer Name-Server intern eine minus-zahl.

Nach einem refresh kann man dann wieder die richtige Nummer eintragen.[/stextbox]

Weitere Infos

http://www.zytrax.com/books/dns/ch8/soa.html
http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.ch08.html#id2567648

Der XHOST sendet kein Broadcast Signal aus

Wenn man Exceed aufruft wird ein neu installierter SLES(9) Server nicht in der Broadcast Liste angezeigt.
Um dies zu erreichen, muss die Datei: ‚/etc/opt/kde3/share/config/kdm/kdmrc‘ editiert- und

[Xdmcp]
 Enable=false

in

[Xdmcp]
 Enable=true

geändert werden.

Link: http://groups.google.ch/group/alt.os.linux.suse/browse_thread/thread/3c8fbc7d69c76e6f/c5bfe867c8d6dc26

Zu XDMCP gibt es auch Einträge in der SDB.

Weitere Lösungen, die zu diesem Problem führen könnten:

/etc/X11/xdm/xdm-config: Hier muss die Zeile:

DisplayManager.requestPort: 0

auskommentiert sein.

Weitere Dateien, die damit zusammenhängen:
-XAccess
-XServers
-xdm-config