Reparatur eines Server mit Ubuntu oder Debian bei Hetzner

Des öfteren habe ich einen Linux-Server in einem Rechenzentrum der nicht mehr bootet und bei dem man nicht direkt auf den Monitor schauen kann. Bei dem Anbieter Hetzner ist es z.B. so, dass zunächst ein Gerät an den Server angeschlossen werden muss, bevor man das Monitorbild des Servers angezeigt bekommt. Dies dauert etwas länger und man verliert wertvolle Zeit.

Wesentlich schneller ist man bei Hetzner, wenn man das Rescue-System bootet und von diesem aus den Server untersucht. Dazu muss man nur über die Management-Webseite von Hetzner das Rescue-System aktivieren und den Server rebooten.

Im folgenden habe ich mir ein paar nützliche Befehle notieret, mit denen man im Rescue-System den Server untersuchen und reparieren kann. Damit habe ich diese im Notfall immer schnell zur Hand und muss nicht lange im Wiki von Hetzner suchen.

Überprüfung des RAID (Plattenspiegelung)
mit dem Befehl cat /proc/mdstat kann man sich den Status des RAID-Systems ausgeben lassen. Dies ausgäbe sollte dann wie folgt aussehen, wenn alles o.k. ist.

root@rescue ~ $ cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 sda3[0] sdb3[1]
      1936077760 blocks super 1.2 [2/2] [UU]
 
md1 : active raid1 sda2[0] sdb2[1]
      523968 blocks super 1.2 [2/2] [UU]
 
md0 : active raid1 sda1[0] sdb1[1]
      16768896 blocks super 1.2 [2/2] [UU]

Filesystem-Check
Mit dem Befehlt fsck /dev/md1 und fsck /dev/md2 kann man dann die Filesysteme prüfen lassen. Wenn diese heil sind, sollte die Ausgabe wie folgt aussehen.

root@rescue ~ $ fsck /dev/md1
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/dev/md1: recovering journal
/dev/md1: clean, 313/131072 files, 125273/523968 blocks
root@rescue ~ $ fsck /dev/md2
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/dev/md2: recovering journal
Setting free blocks count to 440126453 (was 440126531)
/dev/md2: clean, 5444918/121012224 files, 43892987/484019440 blocks

Erneutes schreiben des Boot-Blocks
Oft ist auch nur der Boot-Block auf der Festplatte nicht vorhanden, oder beschädigt. Mit den folgenden Befehlen kann man diesen neu schreiben.

mount /dev/md2 /mnt
mount /dev/md1 /mnt/boot
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
mount -t proc /proc /mnt/proc
cp /proc/mounts /mnt/etc/mtab
chroot /mnt /bin/bash
grub-install /dev/sda
grub-install /dev/sdb
grub-install --recheck /dev/sda
grub-install --recheck /dev/sdb
mkdir /run/lock
cp /proc/mounts /etc/mtab
update-grub

SVN auf einem Ubuntu 14.04 mit Plesk installieren

Ich habe Heute ein SVN (Subversion) auf einem Ubuntu 14.04 Server mit einem SVN Plesk 12.5 installiert. Damit dies gelingt muss man ein Kleinigkeiten beachten. Zudem gibt es diverse Anleitungen im Netz, die sich nicht an die Vorgaben von Plesk halten. Wenn man eine solche Anleitung befolgt, kann dies Folgeproblemen verursachen. Kurz um … ich beschreibe hier mal, wie man die Installation richtig macht.

1. Installation von svn aus den Paketquellen von Ubuntu
Dazu loggt man sich per ssh auf dem Server ein und installiert die Pakete mit dem folgenden Befehl (muss als root ausgeführt werden):

apt-get install subversion libapache2-svn

2. Eine Subdomain in Plesk anlegen
In meinem Fall heißt die Subdomain save. Wie das geht ist im Handbuch von Plesk zu finden: https://docs.plesk.com/de-DE/12.5/customer-guide/websites-und-domains/domains-und-dns/hinzufügen-von-subdomains.65180/

3. Authentifizierung und die SVN-Einstellungen in die Konfiguration des vHost einbauen
Damit diese Konfiguration bei Änderungen in Plesk nicht überschrieben wird, sollte man sie über das Webinterface von Plesk einbauen. Dazu muss man in die „Web Server Settings. Um dorthin zugegangen, klickt man auf der Linken Seite auf „Hosting Services“ Domains bei der richtigen Domain auf „Hosting Settings“ Es geht ein Reiter auf. Auf diesem findet man die „Web Server Settings“
Plesk 12.5 Web Server Settings
Dort trägt man dann als „Alditional direktives“ für HTTP und HTTPS (sofern man https nutzen möchte) die folgenden Zeilen ein (dabei die Domain und Subdomain anpassen!):

<Location /svn>
DAV svn
SVNParentPath /var/www/vhosts/[DOMAIN NAME]/subdomain-name
SVNListParentPath On
 
AuthType Basic
AuthName "SVN Authorization Realm"
AuthUserFile /etc/apache2/mods-enabled/dav_svn.passwd
Require valid-user
</Location>

4. Benutzer, Verzeichnis und Repository anlegen
Dazu gibt man als root die folgenden Befehle ein:

htpasswd -c /etc/apache2/mods-enabled/dav_svn.passwd USERNAME
cd /var/www/vhosts/DOMAIN/subdomains/subdomain-name
mkdir svn
svnadmin create svn/projektname
chown -R www-data:www-data svn/
service apache2 restart

Danach sollte das SVN laufen. Falls nicht, sind hier noch ein paar weiterführende Informationen zur Fehlerbehebung zu finden: https://talk.plesk.com/threads/basic-subversion-svn-on-plesk-12-5.338617/

Das Tunneln von X11 über SSH bei Ubuntu 14.04 geht nicht

Zu meiner Überraschung funktionierte das Tunneln von X11 über ssh auf einem Ubuntu 14.04 Server nicht mehr. Schon beim Login über den Befehl

ssh -X <Hostname>

gibt es den Fehler „X11 forwarding request failed on channel 0“,
obwohl in der /etc/ssh/sshd_config der Eintrag „X11Forwarding yes“ gesetzt ist.

Auch eine Installation der der XServer Utils

apt-get install x11-xserver-utils

brachte keine Lösung und nicht einmal xclock lief.

Nach ein bisschen Suchen stellt ich fest, dass das Paket xauth fehlt. Wenn man dieses nachinstalliert funktioniert auch das Tunneln von X11 über SSH wieder.

apt-get install xauth

BitCoin und LiteCoin Mining mit GPU’s unter Ubuntu

Nachdem in letzter Zeit immer mehr über BitCoins gesprochen wurde, wollte ich auch mal versuchen welche zu finden. Das finden von BitCoins basiert auf der Suche nach SHA256 Hash-Werten, die bestimmte Eigenschaften aufweisen müssen. Eine genauere Beschreibung von BitCoins und wie man diese findet ist bei Wikipedia zu finden.

Das finden von BitCoins ist durch den stetig steigenden Rechenaufwand bei der Suche jedoch immer schwieriger geworden. Deshalb ist es inzwischen unrentabel die BitCoins mit normalen CPU’s von Computern zu suchen, da die Stromkosten wesentlich höher sind als der der Wert der gefundenen BitCoins. Deutlich schneller und mit geringeren Stromkosten können aktuelle Grafikkarten BitCoins finden. Ihre CPU’s können die SHA256 Hash-Werte effektiver errechnen. Aber selbst mit den CPU’s von Grafikkarten lohnt sich das eigentlich kaum noch. Dennoch wollte ich zunächst einmal mit einen PC und einer Grafikkarte anfangen. Also habe ich in einem meiner Computer kurzer Hand die Grafikkarte umfunktioniert und sie für das finden von BitCoins verwenden.

Wie sich rausstellte war es aber gar nicht so leicht die Grafikkarte dazu zu bringen. Einige Anleitungen im Internet funktionierten zumindest mit dem installierten und aktuellen Ubuntu 13.10 nicht. Das mag auch daran liegen, dass die meisten Anleitungen für ältere Ubuntu-Verionen geschrieben waren. Nach zwei Stunden hatte ich jedoch keine Lust mehr die Probleme zu finden und zu lösen. Also nahm ich die neuste Anleitung, die ich gefunden hatte und befolgte diese Schritt für Schritt. Die Anleitung stammt aus dem Blog Silverlinux Da diese auf einem „Ubuntu 13.04 Server 64 Bit“ basierte, installierte ich zunächst ein frisches „Ubuntu 13.04 Server 64 Bit“ auf dem PC und führte folgende Schritte durch:

Update des Server
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
Download und Installation der Treiber
Download der fglrx Treiber (Da die aktuellen Treiber nicht zu funktionieren scheinen ist es wichtig die Version 13.8 beta zu nehmen). Weil AMD keine direkte Verlinkung zulässt, sollte der Download über einen Webbrowser erfolgen und kann nicht mit wget gemacht werden.
http://www2.ati.com/drivers/beta/amd-catalyst-13.8-beta2-linux-x86.x86_64.zip
Bei der R9 290 oder anderen neueren Grafikkarten muss eventuell zunächst die Grafikumgebung und erst dann der Treiber installiert werden.
http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx
Installation einiger notwendiger Pakete
sudo apt-get install dh-make dh-modaliases execstack libxrandr2 libice6 libsm6 libfontconfig1 libxi6 libxcursor1 libgl1-mesa-glx libxinerama1 libqtgui4
Installationsprogramm auspacken
unzip amd-catalyst-13.10-beta2-linux-x86.x86_64.zip
chmod +x amd-catalyst-13.10-beta2-linux-x86.x86_64.run
.deb Pakete für fglrx bauen
./amd-catalyst-13.10-beta2-linux-x86.x86_64.run --buildpkg Ubuntu/raring
Installation der Pakete für fglrx
sudo dpkg -i fglrx*.deb
sudo apt-get -f install
sudo reboot
(Das funktioniert wegen einigen Abhängigkeiten zunächst nicht. Dies kann aber durch den Befehl „apt-get -f install“ behoben werden)
Bei mehreren Grafikkarten muss eventuell auch noch konfiguriert werden, dass alle verwendet werden.

sudo aticonfig --initial --adapter=all
Installation des APP SDK von AMD
Download des APP SDK von der folgenden URL:
Auspacken des APP SDK und Neustart des Computers
tar xvf AMD-APP-SDK-v2.8.1.0-lnx64.tgz
sudo ./Install-AMD-APP.sh
sudo reboot
Installation der minimalen X Server Pakete
sudo apt-get install xdm xorg

Authorization des xdm abschalten

sudo vi /etc/X11/xdm/xdm-config
die folgende Zeile
DisplayManager*authorize:       true
gegen diese ersetzen
DisplayManager*authorize:       false
Speichern und neu starten.
sudo reboot
cgminer kompilieren and testen
Installation von Git und Unzip
sudo apt-get install git unzip
Download von cgminer
git clone -b 3.7 https://github.com/ckolivas/cgminer
Achtung! cgminer 3.7.2 ist die letzte Version mit Unterstützung von GPU (siehe: https://bitcointalk.org/index.php?topic=28402.msg3538435#msg3538435).
Download entpacken und einbinden des AMD ADL SDK (für das überwachen des Temperatur und des Ventilators, usw)
unzip ADL_SDK_5.0.zip
cp include/* ./cgminer/ADL_SDK/
Installation einiger benötigter Pakete für die kompilierung des cgminer
sudo apt-get install build-essential autoconf libtool libcurl4-openssl-dev libncurses5-dev pkg-config libudev-dev
cgminer kompilieren vorbereiten
cd cgminer
./autogen.sh
./configure --enable-opencl --enable-scrypt

folgende Zeilen sollten nach dem confiugure auftauchen:
OpenCL……………: FOUND. GPU mining support enabled
scrypt……………: Enabled
ADL………………: SDK found, GPU monitoring support enabled

cgminer kompilieren

make
Testen ob der cgminer  läuft 
Es ist empfehlenswert ihn mit einigen Umgebungsvariablen zu starten. Am besten mit einem Start-Script wie dem folgenden.
#!/bin/bash
export DISPLAY=:0
export GPU_MAX_ALLOC_PERCENT=100
export GPU_USE_SYNC_OBJECTS=1
./cgminer -n

Windows Ereignis-ID 50: Time-Service Zeitdifferenz von mehr als 5000

Wenn ein Windows-Server eine Zeitdifferenz von mehr als 5000 auf 900 Sekunden feststellt, wird die Synchronisation der Systemzeit angehalten und der Server gibt selber keine Zeiten mehr raus. Dies kann z.B. durch eine schlechte Netzwerkanbindung oder eine defekte Hardwareuhr kommen. Um in diesem Fall die Synchronisation wieder zu aktivieren, gibt man auf der Kommandozeile den folgenden Befehl ein:

W32TM /resync

Ob die Zeit wieder synchronisiert wird kann man sich dann mit dem folgenden Befehl anschauen:

W32TM /query /status

(SP1)-Installationsfehler: 0x800F0A13 bei der Installation des SP1 für Windows 2008R2

Ich bin extra am Wochenende in die Firma gefahren, um eine Datensicherung eines Windows 2008R2 Servers zu machen und das ServicePack 1 zu installieren. Leider stieg die Installation gleich am Anfang mit folgender Meldung aus:

(SP1)-Installationsfehler: 0x800F0A13

Laut Microsoft Hilfe und Support kann der Fehler durch folgenden, vier Gründe verursacht werden, die bei mir aber nicht zutrafen:

  1. Während des Setup wird die Systempartition nicht automatisch eingebunden bzw. für Windows zugänglich gemacht.
  2. Die Festplatte, auf der sich die Systempartition befindet, wurde vor der Installation von SP1 entfernt.
  3. Windows wird in einem Storage Area Network (SAN) ausgeführt, und der Zugriff auf die Systempartition wurde deaktiviert.
  4. Ein Tool zur Datenträgerverwaltung eines anderen Softwarehersteller wurde zum Kopieren (oder Klonen) des Datenträgers oder der Partition verwendet, auf dem bzw. der SP1 installiert werden soll.

Nachdem ich Google befragt habe, bin ich aber auch auf einen Post im Technet-Blog von joscon gestoßen, der empfahl zuerst das Systemupdate-Vorbereitungstool auszuführen. Falls die Installation danach immer noch nicht funktioniert, gibt es dort auch noch einige andere Lösungsvorschläge. Jedoch keiner dieser Vorschläge hat geholfen.

Die Lösung brachte letztendlich ein Heise Artikel. Nachdem ich wie in den Artikel beschrieben die aktive Partition gesetzt hatte und den Server neu gebootet hatte, funktionierte die Installation des ServicePacks.

Update:
Bei einem anderen Windows 2008R2 Server lief die Installation erst, nachdem ich der vom System reservierten 100 MB Partition einen Laufwerksbuchstaben gegeben hatte. Dazu wurde im Technet Forum geraten.

Ubuntu: WLAN beim booten automatisch starten

Bei Ubuntu wird das WLAN-Interface normaler Weise über den Networkmanager gestartet. Dies bedeutet, dass man sich mit einem Benutzer an der grafischen Oberfläche anmelden muss, damit sich das WLAN aktiviert. Bei Servern und anderen Gräten ohne grafische Oberfläche möchte man aber oft sofort nach dem Booten ein funktionierendes WLAN. In diesem Fall sollte man wpa_supplicant installieren und konfigurieren. Eine Anleitung dazu findet man auf der Webseite wiki.ubuntuusers.de.

OMSA unter Ubuntu für den Dell PERC H700 einrichten

In den Dell PowerEdge Servern wird aktuell häufig der PERC H700 RAID-Controler verbaut. Als ich Heute bei einem solchen Server – der mit der aktuellen „Long Term Support“ Ubuntu-Version „10.04 LTS“ läuft – den OMSA (OpenManage Server Administrator) installierte, überraschte mich dieser gleich mit der Warnung: Controller 0 [PERC H700 Integrated]: Driver '00.00.04.01' is out of date.

Nach ein wenig Recherche im Internet zeigte sich, dass der Treiber 00.00.04.01 eigentlich o.k. ist. Da bei RedHat und SuSe aber inzwischen neuere Treiber verwendet werden, verlangt der OMSA hier den neuen.

Da mich die Warnung in der Überwachung stört, habe ich diese einfach abgeschaltet. Dazu ändert man einfach die Datei lsiver.cfg entsprechend ab. Wenn man das OMSA 6.4 Paket von Dell installiert hat (dieses finde man unter der URL: http://linux.dell.com/repo/community/deb/), liegt diese Datei in dem Verzeichnis /opt/dell/srvadmin/etc/srvadmin-storage/.

In der Datei lsiver.cfg gibt es einen Abschnitt der wie folgt beginnt:

ID=0x1F17
VENDORID=4
NAME=PERC H700 Integrated

In diesem Abschnitt steht etwas weiter unten die Zeile:

DEF-LX26-64=00.00.04.27

Wenn man hier die 27 in 01 ändert und alle OMSA Services (am besten den ganzen Server) neu startet ist der Alarm weg.

IBM: Firmware-Update für LSI 1064e SAS Controller zerstört Systemboard

Die aktuelle Firmware von IBM (Version 2.66) für den LSI 1064e SAS Controller hat mir letzte Woche ein Systemboard eines IBM HS21 XM Blade gekillt. Nach der aktualisierung konnte man nicht mehr von der SSD booten. IBM hat heute ein neues Systemboard und einen Techniker geschickt. Auch das neue Systemboard konnte nach dem einspielen der Firmware nicht mehr booten. Jetzt soll Morgen ein neues, drittes Systemboard kommen. Verteilt IBM hier gerade eine Firmware, die reihenweise Systemboards zerstört?

Installation einer Advantage Database unter Ubuntu 10.04

Bei der Installation einer Advantage Database unter einem Ubuntu 10.04 mit 64 Bit gibt es neben der normalen Installationsanleitung noch zwei weitere Punkte zu beachten:

  1. Bei einem Ubuntu mit 64 Bit müssen für die Installation auch die 32 Bit Bibliotheken installiert werden. Dies geschieht mit dem Befehlt
    apt-get install ia32-libs

    .

  2. Da Linux bei Dateinamen zwischen großen und kleinen Buchstaben unterscheidet, sollte man in der Datei
    /usr/local/advantage/ads.conf

    den Wert LOWERCASE_ALL_PATHS auf 1 setzen. Dies bringt dieAdvantage Database dazu nur kleine Buchstaben für Datei- und Verzeichnisnamen zu verwenden. Danach sollte man natürlich darauf achten, dass die Verzeichnisse und Dateien auf dem Server auch keine großen Buchstaben mehr enthalten. Einen Befehl für die Konvertierung der Datei- und Verzeichnisnamen findet man hier.