Archiv mit gpg verschlüsseln und mit lzma komprimieren

Geschrieben von everflux am August 21st, 2011

Ich verwende zur Datensicherung ein selbst gebautes Script und brenne die Daten danach auf Bluray Medien zur externen Hinterlegung.
Bisher habe ich dazu in etwa folgenden Aufruf verwendet:

tar -v --label="tkruse-home" -l -c -p --totals --ignore-failed-read ... | gpg --compress-algo bzip2 --cipher-algo AES256 -z 9 -c

Nun komprimiert bzip2 ja nicht besonders gut im Verhältnis zum dafür erforderlichen Aufwand (und die Dekomprimierung ist langsam). Leider unterstützt GPG von Haus aus lediglich bzip2 und zlib, nicht den von mir favorisierten lzma Algorithmus. (Der kommt bei 7zip auch zum Einsatz und sorgt für die gute Kompressionsrate.)
Jedoch ist bei modernen Linux Distributionen wie Debian und dem darauf basierenden Ubuntu auch das Kommandozeilentool „lzma“ verfügbar. Dies kann in guter alter Unix Manier als Filter eingesetzt werden, lediglich gpg muss dann noch beigebracht werden, keine eigene Komprimierung einzusetzen. Dies geschieht wenn man als „Algorithmus“ einen der Werte „none“ oder „uncompressed“ verwendet.
Der Aufruf sieht dann so aus:

tar -v --label="tkruse-home" -l -c -p --totals --ignore-failed-read ... | lzma -c -z -9 | gpg --compress-algo none --cipher-algo AES256 -c

Leider unterstützt das lzma Tool derzeit (2011) noch kein multithreading (im Gegensatz zu 7zip), so dass keine Parallelität auf multi-core Maschinen ausgenutzt werden kann.

Im Gegensatz zu anderen Backup Lösungen hat meine Lösung den Nachteil kein inkrementelles Backup zu unterstützen, die Backup Datei hat keine Redundanz gegen defekte Blöcke und als Ausgabe kommt lediglich eine große Datei heraus, die anschließend gesichert werden muss. Für mich reicht das – für einen normalen Anwender ist es vermutlich nicht das Mittel der Wahl.

Subversion diff grafisch anzeigen: meld

Geschrieben von everflux am Juli 26th, 2011

Änderungen an LaTeX Dokumenten lassen sich sehr komfortabel ansehen, wenn die Dokumente in einem Versionskontrollsystem wie Subversion verwaltet werden.

Subversion hat dazu das „diff“ Kommando, jedoch gibt dies lediglich Änderungen auf der Kommandozeile aus. Schöner wäre ja eine grafische Übersicht. Dazu kann man Subversion per „–diff-cmd“ auch ein Programm angeben, dass die Ausgabe aufbereiten bzw. anzeigen soll. Leider funktioniert das mit meinem lieblings-Diff-Viewer, „meld“ nicht wie erwartet.

Meld selber kann jedoch direkt aufgerufen werden und kuemmert sich dann darum, ein Diff zu erstellen und dies auch anzuzeigen. Dazu gibt man lediglich im Working-Directory

meld .

ein. Der Punkt ist wichtig, damit wird ab dem aktuellen Verzeichnis nach Änderungen gesucht. Nun sieht man die Dateien, die geändert sind, und kann diese in meld anklicken. Ubuntu und Debian User können meld bei Bedarf per sudo apt-get install meld installieren, sollte dies noch nicht geschehen sein.

OpenJDK – Java 7 – mit Ubuntu kompilieren

Geschrieben von everflux am Juli 24th, 2011

Ich habe ein merkwuerdiges SSL Problem mit Java 7 (Build 147, dem Release Candidate) im Zusammenhang mit Online-Banking und Jameica/Hibiskus:

Caused by: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
 at sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(SSLContextImpl.java:873)
 at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:804)
 at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1319)
 ... 19 more

Schaut man sich dazu den Source Code an, sieht man schnell, dass leider die verursachende Exception verschluckt wird. (Das kommt davon, wenn Committer und Reviewer identisch sind…)
Meine Idee war also, OpenJDK selber zu bauen und da ggf. besseres Logging einzubauen. Die im Internet veröffentlichten Anleitungen sind alle ein paar Jahre alt und nicht mehr ganz korrekt, daher hier meine Ergebnisse zum Nachmachen.
Ich habe Ubuntu als System verwendet, dort ist eine Übersetzung von OpenJDK / Java 7 sehr einfach.
OpenJDK wird mittels Mercurial verwaltet, zur Hierarchiebildung wird die Mercurial Forest extension benötigt (und Mercurial). Ist das „mercurial“ Paket bereits installiert so kann man die Forest extension einfach herunterladen:

hg clone http://bitbucket.org/pmezard/hgforest-crew hgforest

Diese muss nun in die .hgrc eingetragen werden: (das „….“ durch den Pfad zum Download ersetzen)

[extensions]
forest=......hgforest/forest.py
fetch=

Danach installiert man die Build Abhängigkeiten:

sudo apt-get install build-essential gawk libasound2-dev libfreetype6-dev libcups2-dev libxt-dev libx11-dev libxtst-dev libxrender-dev

Und checkt per mercurial-forest die Sourcen fuer OpenJDK aus:

hg fclone http://hg.openjdk.java.net/jdk7/jdk7 jdk7

Da beim späteren Build noch Java Abhängigkeiten heruntergeladen werden müssen, hab ich noch folgendens in die Ant Konfiguration eingesetzt: ~/.antrc

ANT_OPTS=”$ANT_OPTS -Dallow.downloads=true”

Für den build benötigt man ein existierendes Java, und setzt folgenden Umgebungsvariablen:

export ALT_BOOTDIR=/usr/lib/jvm/java-6-sun
unset JAVA_HOME
export LANG="C"
make sanity

Da sollten keine Fehler zu sehen sein und gibt dann den „make“ Befehl (dauert bei mir rund 40 Minuten):

make

Und kann es dann aus dem aktuellen Verzeichnis testen ob „java“ vorhanden ist:

build/linux-amd64/bin/java -version

Bei mir sieht das dann folgendermassen aus:

openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-tkruse-b00)
OpenJDK 64-Bit Server VM (build 21.0-b17, mixed mode)

Fertig.
(Ja man benötigt wirklich keine „binary plugs“ o.a“. mehr!)

Update: Für Ubuntu 12.04 benötigt man folgende Pakete:

libcups2-dev, libfreetype6-dev, liboss4-salsa-dev

Und muss (Stand Mai 2012) auch wegen der neueren Kernelversion als die bei OpenJDK bekannten eine Environment Variable setzen:
export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

Ubuntu: PDF Annotationen

Geschrieben von everflux am Mai 30th, 2011

Kollaboration im „papierlosen Büro“ ist eine kleine Herausforderung für sich – zumindest wenn man ein gemeinsam zu bearbeitendes Dokument nicht ausdrucken, mit Notizen versehen und dann wieder zum Versand einscannen möchte. (Das wäre ja auch nicht papierlos)

Das häufigste anzutreffende Dokumentformat ist „PDF“ – ich habe mich also damit beschäftigt, welche Optionen es gibt, um ein PDF Dokument mit Anmerkungen und Notizen zu versehen. Seit Ubuntu  Nutty 11.04 ist die poppler Version, die evince zum PDF Zugriff verwendet, aktuell genug, um auch Anmerkungen zu unterstützen. Eine Alternative ist „xournal“ ein Tool für Notizen und Skizzen, das auch PDFs lesen und exportieren kann.

Die beiden Programme unterscheiden sich im Ansatz wesentlich: Während Evince auf Standard-Annotationen setzt, nutzt Xournal ein PDF als „Malunterlage“. Das hat den Vorteil, dass wesentlich flexiblere Moeglichkeiten existieren, um Anmerkungen zu machen: Kleine Skizzen wie Pfeile, Linien und geometrische Formen sagen manchmal mehr als tausend Worte.

Xournal versucht dabei den Anwender zu unterstützen: Aus einem ei-förmigen Gebilde erkennt Xournal einen schönen Kreis. Auch Dreiecke sind so möglich und sehen ästhetisch aus. Verschiedene Farben, Freitext und der obligatorische Textmarker ergänzen das Paket. Xournal eignet sich damit nicht nur zur Anreicherung von PDF Dokumenten, sondern tatsächlich auch als einfache Notiz und Skizzen Applikation.

Der Ansatz von Evince hingegen auf den PDF Standard zu setzen hat den Vorteil, dass die Anmerkungen strukturiert erfasst werden: In einer Übersicht kann man sich durch alle Anmerkungen durchklicken, sieht wer diese wann erstellt hat, und kann eigene hinzufügen. Das ist besonders dann sinnvoll, wenn mehrere Personen an einem Dokument mitwirken.

Leider unterstützt Evince derzeit lediglich Textanmerkungen – ein Textmarker fehlt. Ein weiterer Vorteil: Anmerkungen können nachträglich geändert werden – prinzipiell auch mit anderen Programmen wie dem Adobe Acrobat.

Für welche Anwendung man sich entscheidet hängt somit stark von den Anforderungen ab, und wie man die Software einsetzen möchte: In einem kommerziellen Umfeld haben sich PDF Annotationen etabliert, und man wird sich über die Möglichkeit diese endlich unter Linux ohne Acrobat einsetzen zu können freuen. Reichhaltigere Anmerkungen lassen sich mit Xournal erstellen, diese sind jedoch – einmal als PDF exportiert – im Dokument eingebettet.

Weiterlesen »

Ubuntu Natty: Busybox v1.17.1

Geschrieben von everflux am Mai 5th, 2011

Eine frische Ubuntu 11.04 Natty Installation schlug bei mir stets fehl: es kam statt des gewohnten Ubuntu Systems lediglich ein „Busybox v1.17.1“ Prompt.

Ich hatte das Ubuntu System dabei über den „Alternate Installer“ installiert, LVM crypt fuer full disc encryption und btrfs als Dateisystem. Nichts besonderes, und es hatte bisher mit Karmic und Jaunty immer prima geklappt. So ganz genau weiss ich auch nicht, woran es liegt, jedenfalls wird die Grub Konfiguration nicht korrekt erzeugt, und dadurch kann das System nicht korrekt hochfahren.

Man kann die Grub Flags manuell editieren und in meinem Fall fehlt dabei:

rootflags=subvol=@

Hat man dies editiert, kann man mit Strg-X booten. Ein „update-grub“ alleine hat entgegen anderer Aussagen in den zugehoerigen Bugs im Canonical Bugtracker nicht geholfen.

Ich habe dann das Paket grub2 aktualisiert und nochmals „update-grub“ gemacht. Das hat jedoch auch nicht geholfen.

Schliesslich habe ich die /etc/default/grub Konfigurationsdatei editiert und da bei GRUB_CMDLINE_LINUX_DEFAULT noch „rootflags=subvol=@“ eingetragen und „update-grub“ aufgerufen.

Danach funktionierte alles wie es sollte. puh.

Ubuntu Natty: Scrollbars in Gnome Classic

Geschrieben von everflux am April 30th, 2011

Nach langem Zögern habe ich mich entschlossen Ubuntu Natty 11.04 zu testen. Am neuen Ubuntu hat mich vor allem gestört, dass jemand meint, mir vorschreiben zu müssen, was für mich das beste ist: Eine Umstellung bei der Benutzeroberfläche.

Wenn ich einen Mac möchte, kaufe ich mir einen – und keine schlechte Kopie. Innovation hin oder her, wenn es in Ubuntu 11.10 kein benutzbares Gnome mehr gibt, fliegt Ubuntu von den Desktops für die ich direkt oder indirekt verantwortlich bin. Mint, Fedora oder zurück zum guten alten Debian sind durchaus Optionen.

Keine Option ist in meinen Augen „Ubuntu classic“ dass eben nicht „klassisch“ ist. Ich betreue einige Anwender, die sich mühsam an einen Computer gewöhnt haben, und keine Zwangsbeglückung möchten (oder sich einfach nicht mehr umstellen können): Selbst in Ubuntu classic sind die Scrollbars geändert und für Computer-Anfänger massiv unintuitiv. Und dazu noch inkonsistent: In Chromium und Firefox werden nicht die „Overlay Scrollbars“ verwendet, weil es da zu Problemen kommt. Das bedeutet, dass das Benutzerinterface mal so und mal so aussieht. Das soll man dann erstmal plausibel erklären können.

Um die alten Laufleisten wieder herzustellen, verwendet man die folgenden Kommandos in einer Shell (einzeln ausführen):

sudo apt-get remove overlay-scrollbar
sudo bash
echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80-disableoverlayscrollbars

Firefox 4 als Ubuntu Paket installieren

Geschrieben von everflux am März 23rd, 2011

Firefox 4 ist seit gestern offiziell veröffentlicht worden – auch fuer Linux bzw. Ubuntu. Firefox 4 ist wesentlich schneller als der alte Firefox und verfügt über HTML5 Kompatibilität sowie ein aufgeräumteres Userinterface.

Wer ein Debian basiertes Linux System, wie z.B. Ubuntu, hat, sollte nach Möglichkeit Software über Pakete installieren. Zum Glück gibts es für Ubuntu ein eigenes PPA in dem stabile Versionen von Mozilla nach Veröffentlichung  bereitgestellt werden. Das spart einiges an Arbeit und bietet gegenüber dem Mozilla-Daily PPA den Vorteil, wirklich eine stabile Version zu nutzen.

Wer also unter Ubuntu Firefox 4 schon jetzt nutzen möchte, bevor dieser in den normalen Paketquellen bereitgestellt wird (falls das überhaupt geschieht und nicht erst im nächsten Ubuntu Release), der kann folgendes in eine Kommandozeile eintippen:

sudo add-apt-repository ppa:mozillateam/firefox-stable
sudo apt-get update
sudo apt-get upgrade

Viel Spaß mit Firefox 4 unter Ubuntu!

Weitere Neuerungen in Firefox 4:

  • Firefox Sync bietet die Synchronisierung von Bookmarks und Einstellungen über mehrere Rechner
  • Von der neuen – stark beschleunigten – JavaScript Engine profitiert das gesamte Userinterface, nicht nur Webseiten
  • Firefox 4 ist mit vielen Erweiterungen nicht kompatibel (ok, das ist nichts neues nach einem Firefox Update)
  • „do not track“ Einstellung für verbesserte Privatssphäre
  • Mein derzeitiger Favorit: App Tabs, mittels Rechtsklick auf ein Tab kann dieser als „permanent“ gespeichert werden – praktsch für Twitter, Facebook und co

Wer ein wenig schauen möchte, wo Firefox eingesetzt wird: http://glow.mozilla.org/

Pidgin, Ubuntu und Bonjour: Probleme mit ipv6

Geschrieben von everflux am März 9th, 2011

Pidgin ist mein bevorzugter IM Client – auch unter Ubuntu Linux. Seit geraumer Zeit jedoch ärgerte mich Pidgin, es gab Probleme mit der Bonjour Kommunikation. Pidgin meldete
Unable to send the message, the conversation couldn't be started.
obwohl mein Gesprächspartner aufgeführt war. Die Umstände waren etwas schwer zu reproduzieren – mit einigen Rechnern funktionierte es, mit anderen nicht. Und genau das half mir auch eine „Lösung“ zu finden: Wurde die Kommunikation von einem Rechner aus initiiert, bei dem ipv6 deaktiviert war, funktionierte das ganze. Sonst nicht.

Unter der Haube kommt „avahi“ zum Einsatz – übrigens auch wenn es um remote Desktop Verbindungen geht. Hier hatte ich nämlich vergleichbare Probleme. Um das Bonjour und Remote-Desktop Problem zu loesen habe ich in der /etc/avahi/avahi-daemon.conf die Einstellung
use-ipv6=yes
auf
use-ipv6=no
geändert. Danach noch schnell den Avahi Dienst neu starten, und die  Probleme sind behoben. Pidgin selber wird in der nächsten Version auch einen Bugfix für dies Problem beinhalten, solange wollte ich aber nicht warten.

WLAN deauthenticating / denied association (code=17)

Geschrieben von everflux am März 5th, 2011

Lange Suche, kleine Ursache: Wenn man sich mit einem Linux Rechner nicht mit einem Linksys / Cisco WLAN Router verbinden kann, und dabei Meldungen wie z.B.


NetworkManager[1036]: (wlan0): supplicant connection state: associating -> disconnected
NetworkManager[1036]: (wlan0): supplicant connection state: disconnected -> scanning
wpa_supplicant[1234]: Trying to associate with 00:14:bf:29:c4:23 (SSID='sforce-wpa' freq=2447 MHz)
NetworkManager[1036]: (wlan0): supplicant connection state: scanning -> associating
kernel: [ 417.694909] wlan0: authenticate with 00:14:bf:29:c4:23 (try 1)
kernel: [ 417.696781] wlan0: authenticated
kernel: [ 417.697518] wlan0: associate with 00:14:bf:29:c4:23 (try 1)
kernel: [ 417.700259] wlan0: RX AssocResp from 00:14:bf:29:c4:23 (capab=0x431 status=17 aid=0)
kernel: [ 417.700267] wlan0: 00:14:bf:29:c4:23 denied association (code=17)
kernel: [ 417.700297] wlan0: deauthenticating from 00:14:bf:29:c4:23 by local choice (reason=3)

auftauchen, dann handelt es sich um folgende Phänomen: Der Router ist der Meinung, dass er voll ist, und bittet den Client, sich mit einem anderen WLAN Access Point zu verbinden.

Windows Rechner ignorieren das, und verbinden sich dennoch mit dem Access Point, während Linux – in diesem Fall ein mit Ubuntu Maverick ausgestatteter Thinkpad – der Bitte Folge leistet. Er bricht den Verbindungsaufbau mit dem Router bzw. WLAN Access Point ab.

Leider ist davon in der GUI von Ubuntu (Network Manager) nichts zu sehen, sondern es dauert einfach sehr lange, bis erneut der Dialog zur Eingabe des WLAN Passwort auftaucht. Ein Blick in „dmesg“ oder die Protokolldateien offenbart dann das Problem.

In meinem Fall ist der Router ein Linksys WRT mit Tomato Firmware – hier habe ich dann einfach die Anzahl der erlaubten Clients erhöht.

Datenrettung mit Ubuntu

Geschrieben von everflux am Februar 10th, 2011

So einfach kann Datenrettung sein: Meine Mutter hat auf einer Digitalkamera Bilder gehabt, die ihr sehr am Herzen liegen. Leider wurden die Fotos von der Digicam irgendwie gelöscht – und der Frust sehr groß.

Ich hab mir die Speicherkarte der Kamera geschnappt, diese mit einem USB Kartenleser an einen Ubuntu Rechner gehängt, und mittels „dd“ ein Abbild der Karte gemacht:

dd if=/dev/sdc of=~/Desktop/rettung.img bs=8192

Das ganze dauerte eine Weile, da es sich um eine 32 Gigabyte Speicherkarte handelte. Nun konnte ich gefahrlos auf dem Abbild arbeiten – soweit mir bekannt löschen Kameras die Fotos nicht sofort, sondern geben, wie bei Dateisystem im Computer, den Speicher lediglich zur Wiederverwendung frei. Somit sah ich gute Chancen auf einer erfolgreiche Datenrettung mit Bordmitteln.

Nachdem das Abbild erstellt war, habe ich mit dem Programm „photorec“ das Abbild durchsuchen lassen (ggf. das Paket testdisk installieren, wenn photorec noch nicht verhanden ist):

photorec rettung.img

Nach einer geraumen Weile fanden sich dann die geretteten Bilder in dem von mir angegebenen Ordner. Ich liebe es, wenn ein Plan funktioniert.


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