Webcam funktioniert mit Skype unter Linux nicht

Mit folgendem Befehl lässt sich das Problem unter Ubuntu lösen:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

dnssec-keygen wird nicht fertig

Wer z.B. DDNS nutzen möchte benötigt einen DNSSec-Key. Dieser wird für gewöhnlich mit

dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER

erzeugt. Dies kann aber je nach Rechner sehr lange dauern.

Ursache: /dev/random erzeugt nur sehr langsam Zufallswerte.

Lösung:

dnssec-keygen -r /dev/urandom -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER

/dev/urandom erzeugt wesentlich schneller Zufallszahlen.

T-NetBox / SprachBox ausschalten

Die Telekom aktiviert bei neuen analogen Telefonanschlüssen einen Anrufbeantworter (SprachBox, ehemals: T-NetBox), der von der Telekom zur Verfügung gestellt wird.

Nachteil: Hat jemand eine Nachricht hinterlassen, so ruft die Telekom in regelmäßigen Abständen an, um die Nachricht zuzustellen. Weiterhin ist die Funktion überflüssig, wenn man einen eigene Anrufbeantworter betreiben möchte.

Sprachbox ausschalten

Bei einem Anruf der kostenlosen Nummer

0800-3302424

kann man aus dem Menü den Punkt 4 wählen, um die SprachBox zu deaktivieren. Dabei bleiben alle Einstellungen erhalten. So lässt sich die SprachBox bei bedarf jeder Zeit wieder einschalten.

SprachBox einschalten

Unter der kostenfreien Nummer

0800-3302424

lässt sich die SprachBox auch wieder aktivieren.

Möglichst viele Daten von defekter CD/DVD retten

Wer kennt das nicht? Man findet irgendwo im Schrank eine alte CD mit irgendwelchen Daten, die man noch gerne behalten würde. Aber beim überprüfen stellt man fest, dass die CD aufgrund ihres Alters oder durch Beschädigungen an der Oberfläche nicht mehr ordentlich einzulesen ist.

In diesem Beitrag beschreibe ich, wie man möglichst viele Daten von einem defekten Datenträger retten kann.

Was wird benötigt?

  1. Ein CD-/DVD-Laufwerk, dass immerhin gewillt ist das Inhaltsverzeichnis der CD zu lesen. Dazu sollte man ggf. verschiedene Laufwerke ausprobieren, da die Fehlerkorrektur/-toleranz unterschiedlich ist.
  2. Ein installiertes Ubuntu oder eine Linux-Live-CD (z.B. grml.org), wobei dafür dann natürlich ein zweites Laufwerk erforderlich ist. Ich beschreibe das vorgehen aber auf Basis eines installierten Ubuntus.

Linux vorbereiten

Wie oben beschrieben, erläutre ich das Vorgehen auf Basis von Ubuntu.

Als erstes ist das Paket gddrescue zu installieren. Dies geschieht über den Befehl

# sudo apt-get install gddrescue

Es ist auf jeden Fall darauf zu achten, dass gddrescue installiert wird, es es noch ein Paket ddrescue gibt, welches zwar ähnliche Funktionen hat, aber nicht zu dieser Beschreibung passt.

Abbild vom Datenträger erstellen

Nach dem Installieren des Paketes gddrescue ist nun der Befehl ddrescue (nicht dd_rescue) an der Konsole verfügbar. Damit lässt sich nun ein Abbild der CD oder DVD erstellen, ähnlich wie mit dd, jedoch mit dem Unterschied, dass bei einem Lesefehler nicht abgebrochen wird, sondern versucht wird möglichst alles um die defekte Stelle herum zu lesen.

An der Konsole sind folgende Befehle auszuführen:

# ddrescue -n -b2048 /dev/cdrom restore.iso restore.log
# ddrescue -d -b2048 /dev/cdrom restore.iso restore.log

Jeder dieser Befehle wird je nach Beschädigungsgrad des Datenträgers einige Stunden laufen. Beide male wird auf unterschiedliche Weise ein Abbild des Datenträgers zu erstellen und dabei möglichst viele Sektoren zu speichern. Alle gelesenen Daten werden dabei in das ISO geschrieben. ddrescue speichert in dem Logfile Informationen darüber, welche Bereiche defekt sind und welche erfolgreich gelesen werden konnten. Das hat den Vorteil, dass beim Aufruf des zweiten Befehls nicht die bereits erfolgreich kopierten Bereichen noch einmal kopiert werden, sondern damit konzentriert sich ddrescue nur noch auf die Bereiche, die nicht gelesen werden konnten.

Welche Daten sind defekt?

Nachdem nun ein ISO erstellt wurde, welche vielleicht auch noch einige brauchbare Daten enthält, gibt es nun noch die Möglichkeit herauszufinden, welche Dateien absolut unbeschädigt sind.

Dazu mounten man sich das ISO mit folgendem Befehl:

# sudo mount -o loop restore.iso /mnt

Nun erstellt man sich von alles Dateien eine MD5-Checksumme:

# find /mnt -type f -exec md5sum {} \; > /tmp/md5sum.txt

Mit diesem Befehl wird für jede Datei unterhalb von /mnt eine Checksumme in /tmp/md5sum.txt gespeichert.

Dank der Logdatei von ddrescue ist es nun möglich alle Bereiche des ISOs, die nicht von CD gelesen werden konnten, mit Inhalt zu füllen. Danach werden wieder Checksummen erzeugt und mit denen aus /tmp/md5sum.txt verglichen. Jede Datei, die in beiden Checksum-Dateien die gleichen Checksumme haben, sind auf jeden Fall fehlerfrei vom Datenträger kopiert worden.

# sudo umount /mnt
# cp rescue.iso rescue_tmp.iso
# echo -n "BAD SECTOR " > /tmp/tmpfile
# ddrescue --fill=- /tmp/tmpfile rescue_tmp.iso rescue.log

# sudo mount -o loop rescue_tmp.iso /mnt
# find /mnt -type f -exec md5sum {} \; > /tmp/md5sum2.txt

Das war’s. Mehr kann man einfach nicht retten!

Leistungsmerkmal “Anklopfen” deaktivieren

Zum Glück kommt man heute nicht mehr ganz so oft in den Genuss per Modem im Internet zu surfen. Aber für den Fall, dass man doch mal mit dieser analogen Übertragungstechnik konfrontiert wird, kann es vorkommen, dass plötzlich keine Daten mehr über die Leitung gehen, obwohl der Rechner noch der Meinung ist, dass man online sei.

Das Problem liegt ganz einfach im Leistungsmerkmal “Anklopfen” des Telefonanbieters bzw. der Telefonanlage. Ruft jemand auf dem Anschluss an, mit dem man gerade per Modem online ist, wird in das Rauschen des Modems das Anklopfsignal geschickt. Das verwirrt das Modem aber so sehr, dass es den Faden verloren hat und nicht mehr mit der Gegenstelle “sprechen” möchte.

Aber die Lösung ist ganz einfach: Man schließt ein Telefon an dem Anschluss an und wählt

*#43#*

um das Ankopfen zu deaktivieren.

**43#*

… aktiviert das Ankopfen wieder.

Nun sollte es keine Verbindungsabbrüche mehr geben, wenn jemand versucht auf dem Anschluss anzurufen, mit dem man per Modem online ist.

VMware Server 2 mit Firefox 3.x

Wer aktuelle Firefox-Versionen für den Zugriff auf das User Interface von VMware Server 2 verwendet wird schnell merken, dass er nur eine weiße Seite bekommt.

Das Problem liegt darin, dass für die SSL-Verschlüsselung der Browser SSL2 unterstützen muss. In aktuellen Firefox-Versionen ist SSL3 standardmäßig aktiviert, SSL2 jedoch nicht.

Um SSL2 im Firefox zu aktivieren, gibt man in der Adresszeile

about:config

ein.

Die Meldung

wird mit “Ich werde vorsichtig sein, versprochen!” bestätigt.

Nun geben wir oben im Suchfeld

security.enable_ssl2

ein und setzen mit einem Doppelklick den Wert von “false” auf “true”.

Nun sollte ein Zugriff auf https://:8333/ problemlos möglich sein.

VMware ESXi 4: Überwachen eines 3ware-RAID-Controllers mit Nagios

Wer seinen VMware ESXi 4 – Server an einem 3ware-Controller (z.B. 9650) betreibt, wird das Problem kennen, dass sich der Status der Festplatten und des Controllers mit VMware-Mitteln nicht überwachen lässt. Auch das von 3ware angebotene Überwachungstool 3dm2 findet keinen Controller in dem Server.

Wer jedoch einen Nagios-Server betreibt, hat Hoffnung. Mit einer von 3ware angepassten Version von tw_cli und einem Shell-Skript lässt sich der Status des Controllers mit Nagios per SSH (check_by_ssh) abfragen.

Anpassungen am ESXi

SSH auf ESXi 4.0 aktivieren

Hier gibt es eine Anleitung, wie man auf dem ESXi 4.0 den SSH-Dienst startet.

Angepasste tw_cli besorgen

Die tw_cli, die auf dem ESXi läuft, gibt es hier. Die Daten befindet sich als Download unten im KB-Eintrag.
Der vermutlich beste Ort auf dem ESXi wird ein VMFS sein. Denn dies setzt der ESXi nach einem Neustart nicht zurück. Die tw_cli sollte natürlich noch ausführbar gemacht werden:

chmod u+x /vmfs/volumes/datastore1/tw_cli

Nagios-Skript

Um tw_cli mit Nagios nutzen zu können ist noch ein Skript erforderlich, welches der Nagios per SSH aufruft, welches dem Nagios passende Werte zur Auswertung zurück gibt.
Download: check_3ware.sh

#!/bin/sh
#
# check_3ware.sh
#
# Simple script to check the status of arrays on 3ware/AMCC controllers
# using Nagios.
#
# Sander Klein <sander [AT] pictura [dash] dp [DOT] nl>
# http://www.pictura-dp.nl/
# Version 20070706
#
# BUGS: Sure...
#

TWCLI=/vmfs/volumes/datastore1/tw_cli
EXITCODE=0
BBUEXITCODE=0

#
# Preflight check...
#

if [ "$UID" -ne 0 ]; then
 echo "You must be root to use this program..."
 exit 3
fi

if [ -z $TWCLI ] || [ ! -x $TWCLI ]; then
 echo "tw_cli not installed or not executable..."
 exit 3
fi

if [ ! -x /bin/grep ] || [ ! -x /usr/bin/awk ]; then
 echo "grep or awk not installed on this system..."
 exit 3
fi

#
# Let the games begin!
#

# Find out which controllers are available...
CONTROLLERS=`$TWCLI info|grep -E "^c"|awk '{print $1}'`

for i in $CONTROLLERS; do
 UNITSTATUS=`$TWCLI info $i unitstatus|grep -E "^u"|awk '{print $3}'`

 # Create an array containing the units
 UNIT=`$TWCLI info $i unitstatus|grep -E "^u"|awk '{print $1}'`
 #Counter for the array
 COUNT=0
 for j in $UNITSTATUS; do
  TMP=`echo $UNIT | grep $COUNT`
  case "$j" in
   OK)
    CHECKUNIT=`$TWCLI info $i unitstatus | grep -E "$TMP" | awk '{print $1,$3}'`
    STATUS="/$i/$CHECKUNIT"
    OKSTATUS="$OKSTATUS $STATUS -"
    PREEXITCODE=0
    ;;
   REBUILDING)
    CHECKUNIT=`$TWCLI info $i unitstatus | grep -E "$TMP" | awk '{print $1,$3,$4}'`
    STATUS="/$i/$CHECKUNIT%"
    MSG="$MSG $STATUS -"
    PREEXITCODE=1
    ;;
   DEGRADED)
    CHECKUNIT=`$TWCLI info $i unitstatus | grep -E "$TMP" | awk '{print $1,$3}'`
    STATUS="/$i/$CHECKUNIT"
    # Check which disk has failed
    DRIVE=`$TWCLI info $i drivestatus | grep -E "$TMP" | grep -v -i "OK" | awk '{print $1,$2}'`
    MSG="$MSG $STATUS Reason: $DRIVE -"
    PREEXITCODE=2
    ;;
   *)
    CHECKUNIT=`$TWCLI info $i unitstatus | grep -E "$TMP"`
    STATUS="/$i/$CHECKUNIT"
    MSG="$MSG $STATUS -"
    PREEXITCODE=3
    ;;
  esac

  # Make sure we always exit with the most important warning
  # OK is least and UNKNOWN is the most important in this case
  if [ $PREEXITCODE -gt $EXITCODE ]; then
   EXITCODE=$PREEXITCODE
  fi

  let COUNT=$COUNT+1                                                                                         
 done                                                                                                               

 # Check BBU's                                                                                                      
 # BBU=`$TWCLI info |grep -E "^bbu"|awk '{print $1,$2,$3,$4,$5}'`
 # if [ "${BBU[0]}" = "bbu" ]; then                                                                                   
 #  if [ "${BBU[1]}" != "On" ] || [ "${BBU[2]}" != "Yes" ] || [ "${BBU[3]}" != "OK" ] || [ "${BBU[4]}" != "OK" ]; then
 #   BBUEXITCODE=2                                                                                             
 #   BBUERROR="BBU on $i failed"                                                                               
 #  fi                                                                                                                
 # fi                                                                                                                        
done                                                                                                                              

#if [ $EXITCODE -lt $BBUEXITCODE ]; then
#       EXITCODE=$BBUEXITCODE
#fi

case "$EXITCODE" in
 0)
  echo "UNITS OK: $OKSTATUS"
  exit 0
  ;;
 1)
  echo "WARNING: $MSG$OKSTATUS"
  exit 1
  ;;
 2)
  echo "CRITICAL: $BBUERROR$MSG$OKSTATUS"
  exit 2
  ;;
 *)
  echo "UNKNOWN: $MSG$OKSTATUS"
  exit 3
  ;;
esac

# That's it, That's all, That's all there is...

Das Original-Skript habe ich etwas angepasst, damit es auch auf der Shell des ESXi läuft.

Man legt es sich am besten auch nach /vmfs/volumes/datastore1/check_3ware.sh und macht es ebenfalls mit chmod ausführbar.

Einstellungen auf dem Nagios-Server

SSH-Key für ESXi-Server erstellen

Wie gewohnt muss ein SSH-Key für den Nagios-Benutzer erstellt werden. Der Public-Key muss dann wie gewohnt mit z.B. ssh-copy-id auf dem ESXi-Server eingetragen werden. Ebenfalls sollte der Nagios-Benutzer in seiner known_hosts den Schlüssel für den SSH-Server auf dem ESXi-Server eingetragen haben, da sonst “check_by_ssh” sich nicht verbinden kann.

check_command in der command.cfg

Nun folgt noch ein neuer check_command

define command{
 command_name    check_3ware
 command_line    /usr/lib/nagios/plugins/check_by_ssh -H $HOSTNAME$ \
 -i /etc/nagios3/conf.d/ssh/$HOSTNAME$.id -l root -t 25 \
 -C '/vmfs/volumes/datastore1/check_3ware.sh'
}

Diesen check_command nun noch den Hosts in der Nagios-Konfiguration zuordnen und fertig ist der Check.

Ubuntu 10.04: Fenster-Buttons wieder an der richtigen Stelle

Jedem ist direkt nach dem Start von Ubuntu 10.04 eine unangenehme Änderung aufgefallen: Die Buttons in der Titelleiste sind nicht mehr da, wo sie hingehören!

Aber es gibt eine recht einfach Abhilfe:

<Alt> + <F2> öffnet das Fenster “Anwendung ausführen”. Dort kann dann folgender Befehl eingegeben werden:

gnome-terminal

Dadurch öffnet sich ein Terminal-Fenster in dem wiederum der folgende Befehl kopiert werden kann:

gconftool-2 --type string --set \
  /apps/metacity/general/button_layout \
  "menu:minimize,maximize,close"

Und schwups, da sind die Buttons wie gewohnt angeordnet.

Wieder rückgängig lässt sich das mit dem Befehl

gconftool-2 --type string --set \
  /apps/metacity/general/button_layout \
  "close,minimize,maximize:menu"