Monthly Archive for November, 2007

“UnauthorizedAccessException” in your ASP.NET application

If you get an “UnauthorizedAccessException” or when all else fails try the following on the windows command line:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -i

It really performs miracles :)

VMware Server auf Ubuntu 6.06 AMD64

Bekannterweise macht das Installationsskript des VMware Servers ein paar Probleme falls irgendwelche Bibliotheken nicht installiert sind. Oder besser gesagt, es bricht (meistens) ohne Fehlermeldung einfach ab! :(

Genau dieses Problem hatte ich letztens bei der Installation des VMware Servers auf einem 64 “bittigem” Ubuntu 6.06. Nach einer fast endlosen Suche im Web habe ich doch noch die Lösung gefunden: Es fehlte das Paket “ia32-libs”, das einfach mit APT nachinstalliert werden muss:

apt-get install ia32-libs

Ubuntu-Kernel auf 1&1 Root-Server L64 neu kompilieren

Seit September habe ich nun einen eigenen Root-Server bei 1&1. Obwohl es auf der Produktübersicht nicht dargestellt wird, bietet 1&1 doch verschiedene vorinstallierte Server-Betriebssysteme (Images) zur Auswahl:

  • SuSE 10.1 (mit oder ohne Plesk) – 32 oder 64 bit
  • SuSE 9.3 (nur mit Plesk) – 32 oder 64 bit
  • Fedora Core 6 – 32 oder 64 bit
  • Ubuntu 6.06 – 32 oder 64 bit
  • Debian 3.1 stable/sarge – 32 oder 64 bit

Nach langem Ausprobieren habe ich mich letztendlich für eine 64 “bittige” Ubuntu-Installation entschieden. (Mit ist im Übrigen aufgefallen, dass die 32 bit-Images auf einem 64 bit-System nicht funktionieren und hoffe, dass das Problem bei 1&1 bereits bekannt ist.) Das Ubuntu-Minimal-Image ist wirklich ideal, wenn man den Server “per Hand”, also ohne Plesk-Gedöns o.ä., konfigurieren möchte.

Allerdings gibt es dabei einen kleinen Wermutstropfen: die Jungs und Mädels von 1&1 haben zwar einerseits eine halbwegs aktuelle Kernel-Version (bei mir 2.6.16.53) in das Image integriert, nur leider haben sie erstens den Kernel mit dem veralteten GCC 3.x übersetzt und zweitens die Kernel-Sourcen nicht mitgeliefert. Das ist sehr, sehr unangenehm genau dann wenn man zusätzliche Kernel-Module übersetzen und einbinden möchte. (Das ist zum Beispiel dann der Fall, wenn ein VMware-Server installiert wird.)

Ist aber kein Problem, man kompiliert und installiert den vorhandenen Kernel, mit der identischen Konfiguration, einfach neu! Zuerst ist es allerdings sinnvoll, die Paketliste (apt-get update) und die Pakete an sich (apt-get upgrade) zu aktualisieren. Anschließend sollte noch das benötigte Handwerkszeug (apt-get install) installiert werden.

apt-get update
apt-get upgrade
apt-get install build-essential kernel-package

Okay, dann ist es auch schon an der Zeit, die Kernel-Quellen von kernel.org herunterzuladen (wget) und im Verzeichnis /usr/src zu entpacken (bunzip2). Optional sollte noch der symbolischen Link (ln) “linux”, der immer auf die Quellen der gerade installierte Kernel-Version zeigt, in diesem Verzeichnis angelegt werden.

cd /usr/src
wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.53.tar.bz2
bunzip2 < linux-2.6.16.53.tar.bz2 | tar xvf -
ln -s linux-2.6.16.53 linux

Und nun wird es ernst: In das Quellen-Verzeichnis (linux) wird zunächst die bestehende Konfigurationsdatei hineinkopiert (cp), d.h. die alte Konfigurationsdatei ist auch gleichzeitig die neue, da ja der Kernel mit der identischen Version lediglich neu kompiliert wird. Anschließend wird der Übersetzungsprozess ausgeführt (make). (Mit dem Parameter --revision kann ein eineindeutiger Revisionsname festgelegt werden.)

cd linux
cp /boot/config-2.6.16.53-070731a .config
make oldconfig
make-kpkg --initrd --revision v1 binary

Das wäre geschaft! Jetzt muss nur noch der Debian Paket Manager (dpkg) angeworfen werden, um das neu erstellte Kernel-Image zu installieren. Noch kurz dem Boot-Manager LILO (lilo) Bescheid geben, dass es einen neuen Kernel gibt und abschließend mit reboot das komplette System neustarten.

cd ..
dpkg -i kernel-image-2.6.16.53_v1_amd64.deb
lilo
reboot

Sollte der Neustart nicht funktioniert haben, kann man sich mit der Remote-Console genau anschauen, wo es hängt. Alternativ vielleicht das ganze System mittels Server-Initialisierung neuinstallieren und einen neuen Versuch wagen! :)