Schlagwort: ubuntu server

imapfilter selber kompilieren

Vor einiger Zeit habe ich in einem Artikel erklärt, wie ich meine E-Mails automatisch vorsortiere.
Nach einer Betriebssystem Aktualisierung funktionierte das Mail sortieren mit imapfilter nicht mehr.

Durch ein Paket Update des Betriebssystems wurden anscheinend einige Bibliotheken aktualisiert, welche vom Programm imapfilter verwendet wurden.

Das Ausgeben der Programmschritte förderte folgende Fehlermeldung zutage.

imapfilter: timeout period expired while waiting to read data

Nach einer kurzen Google Rechere fand ich einen Launchpad Bugreport mit Link zur Ursache des Problems.

Folgender Diff-Auszug zeigt die kleine Änderung, welche das Benützen des Programms verunmöglichte.

} else

return -1;

– return response_authenticate(ssn, t, NULL);

+ return response_generic(ssn, t);

}

#endif /* NO_CRAMMD5 */

Da für Ubuntu 10.04 kein aktualisiertes Paket angeboten wird und von imapfilter bereits eine neuere Version vorliegt, habe ich mich entschieden das Programm selbst zu kompilieren.

Die aktuellste Version von imapfilter ist auf github zu finden und kann direkt aus dem Repository gecloned und kompiliert werden.

Mit dem Befehl

git clone https://github.com/lefcha/imapfilter.git

wird das ganze Repository auf den Rechner geladen.

Hat man git nicht installiert oder möchte es nicht verwenden ist es möglich die aktuellen Dateien als .zip von der github Seite zu laden und zu entpacken.

Um imapfilter unter Ubuntu Server 10.04 zu kompilieren müssen folgende Bibliotheken zuerst installiert werden, da ein Kompilieren sonst unmöglich ist.

liblua5.1-0-dev
libssl-dev
libpcre3-dev

Laut README wechselt man nun ins zuvor heruntergeladene Verzeichnis imapfilter und führt den Befehl make aus.
Dies funktioniert unter der gegebenen Ubuntu Version aber nicht richtig, da die lua Bibliotheken an einer andern Stelle zu finden sind als gewöhnlich.
Mit einer kleinen Modifikation gelingt das Kompilieren dann trotzdem, man muss lediglich folgenden Befehl ausführen:

make INCDIRS=-I/usr/include/lua5.1 LIBLUA=-llua5.1

Das Programm sollte nun kompilieren und kann anschliessend mit sudo make install ins Verzeichnis /usr/local/bin/ installiert werden.

Nun funktioniert das E-Mail sortieren wieder fehlerfrei. Allerdings muss beachtet werden das zukünftige Sicherheitsaktualisierungen von imapfilter nicht wie üblich über den Paketmanager eingespielt werden können, sondern durch das Kompilieren des neuen Source Codes installiert werden müssen.

SoftwareRAID unter Ubuntu 10.04 SE

Diese Tage wollte ich unseren Familien Fileserver vom langsam ein bisschen angestaubten Kubuntu 8.04 LTS auf die neuste Long Term Support Version Ubuntu 10.04 Server upgraden. In der Hoffnung das ganze sei innerhalb einer Stunde erledigt, startete ich das Unterfangen, doch leider rechnete ich nicht mit Komplikationen beim Installieren des SoftwareRAID.

Bisher war die Festplatten Konfiguration wie folgt:
2 x 400 GB Samsung SATA II Disks.
Software RAID 1 (Mirror) unter Kubuntu 8.04
3 Partitionen:

  • System Partition 15 GB: Mountpoint /
  • Swap Partition 2 GB
  • Daten Partition ~ 383GB: Mountpoint /srv

Der Plan war die bestehende RAID Konfiguration zu übernehmen und nur die System Partition zu formatieren und das neue Betriebssystem zu installieren.

Doch weit gefehlt, die Installationsroutine von Ubuntu 10.04 SE lief zwar wie gewünscht durch, doch nach dem Neustart hatte man bereits die erste Fehlermeldung betreffend des RAIDs. Trotzdem lies sich das System booten und ich entschloss mich zu einem Systemupdate, von welchem ich eine Verbesserung des Zustandes erhoffte.
Diese Entscheidung allerdings war fatal, nach dem obligaten Neustarten beim Updaten von Kernelpakete, bootete das System nicht mehr.

Nach einigen weiteren misslungenen Installationsversuchen, entschied ich mich eine zusätzliche Festplatte für das Betriebssystem einzubauen und in Zukunft nur noch die Datenfestplatten im SoftwareRAID-Verbund zu betreiben.
Nach der Neuinstallation auf die Systemfestplatte sollten die Datenfestplatten neu partitioniert werden, zu einem SoftwareRAID verbund zusammengefügt werden und anschliessend das zuvor gemachte Backup zurück gespielt werden.

Nach dem ich endlich ein lauffähiges, mit allen Sicherheitsupdates versehenes System aufgesetzt hatte, konnte ich mich an die Neu-Konfiguration der Datenfestplatten machen.

Dazu bin ich nach dem ubuntuuser Wikiartikel über Software-RAID vorgegangen.

Allerdings erhielte ich beim erstellen des RAID Arrays immer folgenden Fehler, den ich mir nicht erklären konnte.

user@server:/$ sudo mdadm –create –verbose /dev/md0 –auto=yes –level=1 –raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm: Cannot open /dev/sdb1: Device or resource busy
mdadm: Cannot open /dev/sdc1: Device or resource busy
mdadm: create aborted

Obwohl die Partitionen nicht gemounted waren und problemlos unter sudo fdisk -l angezeigt wurden, konnte nicht darauf zugegriffen werden.

Ein cat /proc/partitions lieferte dann des Rätsels Lösung.
Zusätzlich zu den in fdisk sichtbaren Partitionen wurden zwei Partitionen: dm-0 und dm-1 angezeigt.

Nach einigen Recherchen fand ich heraus, dass der Device-Mapper für diese Partitionen / Geräte verantwortlich war.
Aus einem unerfindlichen Grund erkannte der RAID-Device-Mapper, den per Jumper deaktivierten onBoard fake-RAID Controller und erstellte ein RAID-Array-Set, welches die beiden Festplatten blockierte.

Durch das deinstallieren des Paketes dmraid via

sudo apt-get remove dmraid

und anschliessendem Neustarten des Systems, wurden die Devices nun endlich freigegeben und der SoftwareRAID konnte korrekt installiert werden.