Grub bootet nicht - fail von recordfail?

10 March 2012

Ubuntu setzt den Grub / Grub2 Bootloader standardmäßig ein. Solange er funktioniert ist auch alles prima. Bei Desktop Rechnern gibt es sowieso kein Problem - hier kann man notfalls manuell eingreifen und im Boot Menü seine Lieblingsoption auswählen oder ganz von Hand booten.
Bei Servern sieht das schon etwas anders aus. Normalerweise sind diese nicht an eine Konsole angeschlossen, oder stehen sogar (sehr) weit weg.
Ein Feature von Grub ist, dass sich der Bootloader merken kann, ob ein Startvorgang erfolgreich war. Wenn der schief geht, wird beim nächsten Start nicht direkt gebootet, sondern das Grub Menü bleibt stehen, damit der Anwender eine andere Option auswählen kann. Das ist für einen Desktop Rechner sicherlich genau das gewünschte, und Ubuntu zielt primär auf Desktop User. Der Anwender kann jetzt eine Rettungs-Konfiguration auswählen, oder es einfach nochmal versuchen.
Wenn bei einem Server ein boot jedoch schief geht - z.B. weil genau da ein Reset/Stromausfall o.ä. stattfindet - dann steht der Server. Bis jemand etwas von Hand einstellt. Das kann dann eine längere Downtime bedeuten.
Ich kann damit besser leben wenn der Server im Falle eines Defekts endlos immer wieder Boot-Versuche unternimmt, als wenn er stehen bleibt weil einmal etwas blöd gelaufen ist. Das ist auch ganz einfach zu ändern:
Man öffne die Datei /etc/grub.d/20_header und ersetze folgenden Abschnitt

if [ "\${recordfail}" = 1 ]; then
  set timeout=-1
Durch diesen Abschnitt:
if [ "\${recordfail}" = 1 ]; then
  set timeout=30
Danach noch ein "update-grub" und in Zukunft wird im Falle eines Bootfehlers 30 Sekunden auf Eingaben gewartet und sonst ein neuer Boot-Versuch gestartet.

Stromverbrauch des Samsung Galaxy Nexus

3 March 2012

Man gewöhnt sich ja daran, dass man alle Nase lang das Handy tauschen muss. Sei es für ein neueres Betriebssystem oder ... nein. Eigentlich nur dafür. Die Bildschirmauflösung des Galaxy Nexus ist sicherlich nett, aber der primäre Grund das aktuellste zu kaufen ist für mich aktuelle Software. Und der wichtigste Grund eben kein neues zu kaufen ist die Akku-Laufzeit.
Nach einem Tag mittlerer Nutzung kann das gute direkt an die Ladestation. Neben technischen Durchbrüchen kann es aber auch helfen die Hintergrundprogramme etwas zu zügeln.
Bei mir hat es geholfen die Google-Plus Anwendung von der Synchronisation auszunehmen. Dazu kann man bei dem Handy unter "Synchronisierung" den jeweiligen Google Account anklicken und die Google Plus App von der Hintergrundsynchronisation ausnehmen. Subjektiv hat das rund 10% gebracht und seit dem bin ich mit dem Galaxy Nexus auch sehr zufrieden.
Dennoch darf es im nächsten Gerät wirklich etwas mehr Akkupower sein.

Ubuntu VLC: Echo, Kratzen und Rauschen

3 March 2012

Seit gewisser Zeit - ich weiss nicht wann genau - habe ich Probleme mit dem Sound von VLC: Es rauscht, knistert und es klingt als würde die Audio Spur doppelt wiedergegeben.

Totem und andere Programme machen dabei keine Probleme, lediglich VLC. Der Rechner ist ein 6 Kern AMD mit Ubuntu 11.10 und VLC 1.1.12 aus dem Ubuntu Repository. Auch verschiedene Einstellungen bei den VLC Audio Codecs und Wiedergabe Devices (Alsa, Pulse-Audio, OSS) haben dabei nichts geändert.

Abhilfe konnte ich jedoch zum Glück auch finden:  Ich habe "pavucontrol" installiert und dann das vorhandene HDMI Wiedergabe Gerät deaktiviert und den Stereo-Ausgang umkonfiguriert (kein demux mehr). Siehe da, alles ist prima! sudo apt-get install pavucontrol Danach starten und Konfiguration anpassen.

Google Plus Kontakte im Google Talk

19 February 2012

Seit einiger Zeit haben sich bei mir merkwürdige Kontakte im Google Talk breit gemacht. Ich kannte die Personen zwar, doch konnte ich mich kein Stück erinnern, dass ich diese im Google Talk hinzugefügt hätte. Besonders auf dem Handy nervt das, möchte ich besonders da nur die wichtigsten Kontakte haben.

Nach einigem überlegen wurde mir dann klar: Das sind Google Plus Kontakte! Offenbar wurden alle hinzugefügten Kontakte magisch in mein Google Talk eingebunden. Doch wie schaltet man das aus? Ich habe keine Option gefunden. Weder im Google Plus auf dem Android Handy, noch im Google Talk.

Auch wenn ich per Browser - vom Handy aus - auf die Google Plus Seite gegangen bin, konnte ich keine passende Einstellung finden. (Ich dachte erst noch, dass es an der mobilen Version von Google Plus liegen könnte. Also fix im Handy auf "request desktop version" geklickt. Interessiert sich Google nur  nicht für. Wieso auch, sind ja beides auch nur Google Produkte, da kann man ja nicht erwarten, dass die zusammenarbeiten... bei Google muss man am Ende der Seite den "show desktop version" Link(!) benutzen.)

Jedenfalls habe ich dann im Browser nach einigem Suchen endlich die richtige Option gefunden. Es handelt sich um die "Datenschutzeinstellungen" für den Chat. Sehr logisch. Da kann man dann auf "benutzerdefiniert" klicken und sich aussuchen welche Kreise man gerne im Google Chat eingebaut haben möchte. Keine geht dann sogar auch. Naja dann lass ich das mal als halben fail durchgehen.

Hier noch die bebilderte Anleitung für Leidens-genossen:

In den Datenschutzeinstellungen kann man konfigurieren welche Google Plus Kontakte im Google Talk angezeigt werden sollen:

Ich streite nicht ab, dass es eine Geschmackssache ist, eine einfache Möglichkeit das einzustellen hätte ich mir jedoch gewünscht - vor allem vom mobilen Gerät aus.

Microsoft: Abmeldung nicht vorgesehen - fail

5 February 2012

Ich hatte mich bei Microsoft angemeldet. Für irgendwas. Newsletter inklusive - zumindest meint Microsoft das. Irgendwann wurde es mir dann zu bunt. Ich wollte mich wieder bei Microsoft abmelden.

Der Abmelden-Link führt erst mal zu einer Seite, auf der ich mich anmelden muss. Ich hasse das.

Leider war Microsoft der Meinung ich würde mein Passwort falsch eingeben. Also gut, dann lasse ich mir eben ein neues Passwort zusenden. Dachte ich, Microsoft ist nun der Meinung der Benutzername sei nicht bekannt.
Das mag auch stimmen, ich bin mir nicht einmal sicher, dass ich je einen Benutzernamen angegeben habe.

Also muss ich mir den Benutzernamen noch zusenden lassen. (Yak shaving anyone?) Da ist dann aber endgültig Schicht im Schacht:

Netbeans 7.1, JSLint und jQuery: $ used before defined

27 December 2011

Seit Netbeans 7.1 ist JSLint als Plugin verfügbar. Mit JSLint wird JavaScript auf (mögliche) Fehler untersucht und diese als Warnungen im Editor angezeigt. (Aufruf mit Rechtsklick innerhalb einer JavaScript Datei und dann "JSLint" klicken)

Jedoch gibt es dabei auch falsche Warnmeldungen wenn JsLint nicht richtig konfiguriert ist. So warnt mich Netbeans 7.1 dann bei einer JavaScript Datei, als externe Ressource zusammen mit jQuery in eine Webseite eingebunden ist:

"$ was used before it was defined"

Dies lässt sich beheben, indem man die JSLint Konfiguration (Tools->Options->Misc->JSLint) aufruft und dort unter "predefined" das "$" deklariert. Leider wurde diese Einstellung bei mir  nicht korrekt gespeichert und hatte auch keine Auswirkungen auf das Verhalten von JSLint. Ich nehme an, dass der Fehler mit einem Update des Plugins behoben wird.

Die Sache mit dem Benutzernamen

26 December 2011

Die Lufthansa bietet zukünftig nur noch die Online Abrechnung für Kreditkarten an. Dazu ist eine Anmeldung auf www.miles-and-more.kartenabrechnung.de erforderlich. Wie so oft ist hier auch die Angabe eines Benutzernamens erforderlich. Den kann man sich ausdenken - und dabei wird auch darauf hingewiesen, dass man sich diesen "zur Sicherheit" mit Zahlen anreichern sollte.
Auch habe ich es schon erlebt, dass die korrekte Gross-/Kleinschreibung bei Benutzernamen relevant ist - hier zum Glück nicht. Sonderzeichen, Umlaute und Leerzeichen sind nicht erlaubt. Manche Dienste geben sogar den Benutzernamen fest vor.

Ich frage mich da immer: Muss das so? Wenn ich einen so komplizierten Benutzernamen wählen soll/muss, was wird dadurch wirklich sicherer? Außer natürlich dass ich den Namen sicher bald vergesse oder mir irgendwo aufschreiben muss.

Eine sehr einfache Alternative wäre die E-Mail Adresse eines User als Benutzernamen zu wählen. Und was ist, wenn die sich mal ändert? Dann kann man die ändern und loggt sich zukünftig mit der neuen ein. Oder mit allen, die man registriert hat.  und was ist, wenn der Benutzername öffentlich angezeigt wird, z.B. in Foren oder Communities? Dann ergänzt man einfach ein zusätzliches Attribut, den öffentlich angezeigten Namen.

Hab ich was übersehen, oder ist die Lösung einfach zu praxistauglich, als dass man damit als Anbieter/Dienstleister Geld verdienen könnte?

Virtualisierung: I/O Last senken mit KVM/libvirt

11 December 2011

Das Thema Virtualisierung geht einher mit neuen Anforderungen an die Ressourcen des Host Systems. Da zwar die CPU Leistung kontinuierlich zunimmt (Anzahl Kerne, Leistung/Stromverbrauch) und auch RAM Speicher immer günstiger wird, jedoch die Leistung der Festplatten nicht zunimmt, ergeben sich neue Probleme: Selbst mit schnell drehenden Platten und RAID Verbund wirkt sich die erhöhte Last durch mehrere virtualisierte Maschinen auf einem "Blech" deutlich aus, da die Leistung - gemessen an der Anzahl der I/O Operationen pro Zeiteinheit - nicht mit gewachsen ist. Durch mehrere virtualisierte Systeme verändert sich auch das Zugriffsprofil: Selbst lineares Lesen jedes einzelnen Systems für sich sieht für die Festplatten eher wie ein Zufallsmuster aus, da mehrere Systeme parallel arbeiten. Ein Weg zur Erhöhung der I/O Operationen pro Sekunde ist starkes Caching oder Einsatz von SSD Festplatten (die wieder eigene Probleme haben).

Für den Einsatz unter Linux hat sich KVM als Standard für Virtualisierung durchgesetzt, ergänzt um Abstraktionsschichten wie libvirt. Vor allem bei den derzeit angebotenen dedicated Servern lohnt sich die Nutzung als Virtualisierungshost, da dies die Management-Möglichkeiten deutlich verbessert werden und die Flexibilität erhöht wird. Bei dieser Konstellation wird in der Regel die lokale Platte/Platten als Storage verwendet, mit den oben angeführten Einschränkungen. Was noch dazu kommt: Virtualisiert man die Festplatten "direkt", stellt diese also als IDE oder SCSI Device zur Verfügung, kommt deutlicher Overhead dazu. Der lässt sich nicht vermeiden, wenn man Windows oder ein Betriebssystem virtualisiert, das keine Paravirtualisierung unterstützt.

Paravirtualisierung liegt dann vor, wenn das virtualisierte System etwas davon weiß, in welcher Umgebung es läuft, und entsprechend kooperativ ist. Mit Linux ist das kein Problem, unter anderem durch die Vorarbeiten die fuer die Xen Virtualisierung erfolgt ist. Daher sollte man nicht als "ide" sondern "virtio" als Schnittstelle für Gäste verwenden, die das unterstützen, um geringere Last und höhere Performance zu erzielen.

Ubuntu Lucid LTS Server auf Oneiric Updaten

10 December 2011

Manchmal möchte man gerne ein Update von einer LTS Version auf eine nicht-LTS Version machen, z.B. um  neuere Pakete nutzen zu können. Der "übliche" Weg dazu, den man in vielen Blogs und Foren findet, ist "sudo do-release-update -d", welches auf die aktuellste Developer ("d") Version aktualisiert.
Das ist solange kein Problem, wie keine "echte" Entwicklerversion bereitsteht, dann sind Entwicklerversion und letzte Release-Version nämlich identisch und man erhält das gewünschte Ergebnis. Möchte man aber derzeit beispielsweise von Ubuntu Lucid auf Oneiric umstellen, und wählt das development Update an, so wird in der Tat auf die Entwickler Version Precise Pangolin aktualisiert. Höchstwahrscheinlich auf einem Server nichts, was man nur für aktuellere Pakete tun möchte.

Die Alternative: In /etc/update-manager/release-upgrades aendert man die Zeile Prompt=lts auf Prompt=normal und startet anschließend ganz normal "sudo do-release-upgrade". Der Upgrade Prozess von Lucid auf Oneiric verlaeuft dann ueber die Zwischenschritte "Update auf Maverick" und "Update auf Natty".

Confluence 4 mit JDK 7

23 October 2011

Atlassian ist mit Confluence der Marktführer was Enterprise-Wiki-Software angeht. Bisher wird jedoch lediglich Java 6 offiziell supported, was schade ist, denn mit Java 7 hat die JVM eine Menge Updates bekommen und benötigt erheblich weniger Speicher im Betrieb und Last und auch im Bereitschaftszustand.
Mit dem offiziellen Release von Confluence 4 und Java 7 ist es nunmehr auch an der Zeit beides zu vereinigen. Leider lief das ganze nicht so ganz problemlos, nach dem Umstellen des JDK gab es eine Menge Fehlermeldungen im Confluence Logfile und auch die Darstellung war offensichtlich defekt.
Die Loesung sah schliesslich so aus:

  • Zum einen der OSGi Laufzeitumgebung von Confluence mitteilen, welche Klassen ueber den Tomcat Classloader geladen werden sollen -Datlassian.org.osgi.framework.bootdelegation=META-INF.services,com.yourkit,com.yourkit.*,com.jprofiler,com.jprofiler.*,org.apache.xerces,org.apache.xerces.*,org.apache.xalan,org.apache.xalan.*,sun.*,com.sun.jndi.,com.icl.saxon,com.icl.saxon.*,javax.servlet,javax.servlet.*,com.sun.xml.bind.*
  • Zum anderen einmal im Confluence Homeverzeichnis den OSGi Cache leeren cd $confluence-home/plugins-osgi-cache rm -r *

Beim nächsten Start funktioniert Confluence sogar mit dem aktuellen Tomcat 7 - verbraucht weniger RAM und ist subjektiv auch noch schneller.

Ubuntu HDMI (kein) Sound

14 October 2011

Seit meinem neuen Computer (und Ubuntu Oneric) ist mein zweiter Monitor per HDMI Kabel angeschlossen. Das Problem: Per HDMI ist neben Bild- auch ein Tonausgabegerät und wird als Default Device verwendet. Damit ist dann teilweise nichts zu hören - offenbar ist das jedoch Anwendungsabhängig.

Als Lösung habe ich mir pragmatisch ein virtuelles pulseaudio device eingerichtet, dass auf alle Geräte den Sound dann ausgibt. Dazu installiert man sich das Paket "paprefs"

sudo apt-get install paprefs

und starte diese ("paprefs"). Auf dem Reiter "simultaneous output" (im englischen) kann dann ein virtuelles Gerät aktiviert werden, dass die Ausgabe auf alle Geräte weiterleitet.

Ubuntu Oneiric: Netbeans Master-Passwort / Keyring Integration

14 October 2011

Schon in frühen Beta Versionen von Ubuntu 11.04 / Oneiric hat Netbeans mich ständig nach einem "Master Password" gefragt, mit dem gespeicherte Passwörter von Netbeans gegen unbefugten Zugriff verschlüsselt werden.

Das ist nervig, denn bisher ging es auch ohne - dabei nutzt Netbeans die von modernen Betriebssystemen bereitgestellte native Infrastruktur um Passwörter zu speichern. (z.B. Keychain auf dem Mac, Gnome-Keyring o.ä.) Normalerweise funktioniert das auch - aber seit Gnome 3 hat sich da offenbar etwas geändert.

Debuggen kann man die Netbeans Keyring Integration indem man folgende Option in der etc/netbeans.conf zu den netbeans_default_options ergaenzt: -J-Dorg.netbeans.modules.keyring.level=0

Anschließend sieht man in ~/.netbeans/7.0/var/log/messages FINE [org.netbeans.modules.keyring.kde.KWalletProvider]: application exit with code 2 for commandString: [qdbus, org.kde.kwalletd, /modules/kwalletd, org.kde.KWallet.isEnabled]; errVal: Service 'org.kde.kwalletd' does not exist.
FINE [org.netbeans.modules.keyring.gnome.GnomeProvider]
java.lang.UnsatisfiedLinkError: Unable to load library 'gnome-keyring': libgnome-keyring.so: cannot open shared object file: No such file or directory
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:163)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:236)
at com.sun.jna.Library$Handler.<init>(Library.java:140)
at com.sun.jna.Native.loadLibrary(Native.java:379)
at org.netbeans.modules.keyring.gnome.GnomeKeyringLibrary.<clinit>(GnomeKeyringLibrary.java:62)
[catch] at org.netbeans.modules.keyring.gnome.GnomeProvider.enabled(GnomeProvider.java:88)
at org.netbeans.api.keyring.Keyring.provider(Keyring.java:72)
at org.netbeans.api.keyring.Keyring.save(Keyring.java:109)
at org.netbeans.modules.j2ee.deployment.impl.ServerRegistry$5.run(ServerRegistry.java:731)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1424)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1968)
Nachdem ich sichergestellt habe, dass die Library installiert ist: sudo apt-get install libgnome-keyring0
Reading package lists... Done
Building dependency tree
Reading state information... Done
libgnome-keyring0 is already the newest version.
bleibt die Frage: Wieso findet Netbeans die gesuchte Library nicht? Die Lösung: Die Gnome Keyring Library ist nur noch mit einem anderen Dateinamen verfügbar, mit angehängter "0". Das gab es zwar früher schon immer, dass die Libraries ohne Versionsnummer (oder was das ist) lediglich ein Symlink auf die "echte" Library waren, aber immerhin gab es die. (Da gibt es bestimmt einen guten Grund und viel Logik für, dass das abgeschafft wurde - mir erschließt sich das jedoch nicht.)
Der simple Work-Around ist daher: sudo ln -s /usr/lib/libgnome-keyring.so.0 /usr/lib/libgnome-keyring.so und danach funktioniert Netbeans wieder tadellos. Also gab es offenbar keine inkompatiblen API Änderungen, sondern "lediglich" eine Änderung des Library-Namens. Ob das ein Ubuntu/Debian Paketierungsproblem ist, oder ab Gnome 3 einfach die neue Marschrichtung, kann ich nicht sagen.

Update: Ich hab dazu ein Bug im Netbeans Issuetracker aufgemacht. Wer voten möchte - gerne: http://netbeans.org/bugzilla/show_bug.cgi?id=203735

Oneiric update auf VM Gast bricht ab

14 October 2011

Wer einen KVM/VM Gastsystem dass mit "vmbuilder" erstellt wurde auf Ubuntu Oneiric updaten möchte wird möglicherweise diese unschöne Überraschung erleben:

A fatal error occurred

Please report this as a bug and include the files
/var/log/dist-upgrade/main.log and /var/log/dist-upgrade/apt.log in
your report. The upgrade has aborted.

Ein Blick in die genannten Logdateien hilft weiter: 2011-10-14 08:39:47,147 DEBUG creating statefile: '/var/log/dist-upgrade/apt-clone_system_state.tar.gz'
2011-10-14 08:39:56,877 DEBUG lspci failed: [Errno 2] No such file or directory
2011-10-14 08:39:56,920 DEBUG lsb-release: 'natty'
2011-10-14 08:40:00,162 ERROR not handled exception:
Traceback (most recent call last):
Da schlägt der Aufruf von "lspci" fehl. Das Paket ist in dem per vmbuilder unter lucid erstellten System nicht installiert, und wurde auch bei den nachfolgenden Updates nicht als Dependency deklariert und somit nicht installiert.
Installiert man das Paket kurzerhand selbst sudo apt-get install pciutils funktioniert danach das Update auf den ersten Blick auch fehlerfrei.

Firefox/Chrome, Office: Paste plain text (ohne Formatierung)

13 October 2011

Inzwischen sind wysiswg-Editoren wie TinyMCE oder der (seit Version 4 obligatorische) Rich Text Editor im Confluence Wiki on vogue.

Manchmal möchte man sich jedoch nur Inhalte ohne Formatierungen von einer anderen Webseite/Wikiseite oder einem Dokument übernehmen. Bisher war meine "Lösung" dazu, den Text in gedit oder einem anderen reinen Texteditor einzufügen und dann wieder dort heraus zu kopieren. Etwas umständlich - da gibt es aber eine Lösung für:

In Google Chrome,  Chromium, Firefox und OpenOffice/LibreOffice gibt es dafuer ein Shortcut: Mittels STRG-SHIFT-V (bzwl. ctrl-shift-v) wird ohne Formatierung eingefuegt.

Lediglich AdblockPlus User und Confluence User haben ein Problem: Genau das Kürzel wird bereits verwendet. In Adblock Plus kann dies nicht über die GUI deaktiviert werden, sondern muss über "about:config" fuer den Schlüssel "extensions.adblockplus.sidebar_key" umgestellt werden. Nach einem Neustart von Firefox funktioniert es dann wie gewünscht.

Ubuntu Oneiric: Latex Papierformat

7 October 2011

In Ubuntu Oneiric hat sich ein Patch eingefunden, der dafuer sorgen soll, dass das Papierformat nicht zu A4 im Default wird. Das sorgte bei mir dafuer, dass auch Dinge, die eigentlich A4 werden sollten im US-Letter Format als PDF generiert wurden.

Die Loesung dafuer sieht so aus, dass man entweder mit den Kommandos \pdfpageheight und \pdfpagewidth das Ausgabeformat korrekt setzt, oder ein Package verwendet, dass sich bereits darum kuemmert. Das ist Beispielsweise das "geometry" Paket: \usepackage{geometry}

Wenn man eigene Vorlagen verwendet, kann man das Geometrie Paket so einbinden: \RequirePackage{geometry}


/
Copyright © 2007, 2008 everflux. Alle Rechte vorbehalten. All rights reserved.