btrfs kernel panic

Ich habe mein Netbook mit btrfs als Dateisystem für / und /home aufgesetzt. Dies geschah in dem Wissen, dass fsck.btrfs noch nicht immer funktioniert.
Nun wollte das Ding nicht mehr booten und zeigte nur eine kernel-panic und die dazugehörigen Meldungen an.
Nach etwas Spaß mit Suchmaschinen und einigem Lesen fand ich diesen Eintrag im openSUSE-Forum.

Nachdem ich also von meinem USB Stick openSUSE 12.1 KDE gebootet hatte, besorgte ich mir mittels

su -c 'zypper in git'
git clone git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git 

die aktuellen Quellen der btrfs-progs.
Um diese zu kompilieren müssen mindestens folgende Pakte installiert werden:
libuuid-devel, libattr-devel, gcc, make, zlib-devel
Nun kann mittels

make
make btrfs-zero-log

das benötigte Tool erstellen.
Nur noch mit

btrfs-zero-log /dev/sdXY

ausführen (wobei X und Y entsprechend ersetzt werden müssen) und neu booten.
So ließ sich mein Netbook wieder booten. Allerdings könnte da immer noch ein Problem sein. Ich werde es im Auge behalten.

openSUSE 12.1

Seit einiger Zeit ist openSUSE 12.1 nun verfügbar. Ich habe mir die KDE-Live-CD auf mein Netbook gespielt und bin begeistert.

Die Installation war wie immer problemlos. Der Installer kann wahlweise aus der KDE Umgebung der Live-CD oder direkt aus dem Boot-Menü der CD. Die enthaltenen Pakete sind natürlich auf einem aktuellen Stand, die für mich interessantesten Neuerungen sind aber zum einen der Umstieg von SystemV init zu systemd, was die Bootzeit leicht positiv beeinflusst, aber auch noch weitere Vorteile, wie etwa das starten eines Dienstes, wenn dieser benötigt wird. Zum anderen kann man nun fast guten Gewissens BtrFS benutzen. Die Snapshot funktion desselben kann von dem Paketmanagement genutzt werden, um vor und nach dem Einspielen von Paketen einen Snapshot des Dateisystems zu machen. Diesen kann man im Falle eines Problems nutzen, um das System schnell wieder in einen funktionsfähigen Zustand zu bringen. Allerdings ist der Filesystemcheck nicht komplett fertig, sodass es in ungünstigen Fällen zu einem korrupten Dateisystem kommen kann, welches nicht mittels fsck gerettet werden kann.

Nachdem ich auf dem Netbook nun viele Distributionen getestet habe, werde ich wohl doch wieder bei openSUSE hängen bleiben. Chakra war eigentlich sehr schön, aber der Paketmanager hat noch einige Kanten und komplett ohne GTK ist zwar eine nette Idee, hat aber zur Folge, dass man zwei Systeme zum Aktualisieren von Paketen bedienen muss, da Chakra zum Beispiel Firefox als Paket anbietet, welches ein Dateisystem mit allen Abhängigkeiten beinhaltet. Diese Pakete werden nicht über pacman aktualisiert sondern über einen Bundlemanager.

Vor Chakra hatte ich Arch installiert, auf dem auch Chakra aufbaut. Daher benutzt es den selben Paketmanager, der, wie gesagt, noch Kanten hat. Im großen und Ganzen ist Arch aber wirklich zu empfehlen.

Kubuntu war nur sehr kurz auf der Platte, da es insgesamt zu unrund lief.

Falls ich noch mal wieder eine andere Distribution haben wollen sollte, werde ich wohl mal Fedora und Debian Testing oder sid in Betracht ziehen.

Grub mit openSUSE DVD reparieren

Dies ist zwar eigentlich nur ein Backup für mich, um beim nächsten Mal nicht suchen zu müssen, aber vielleicht hilft es ja auch noch jemandem.

Mein Rechner hat in letzter Zeit viele Probleme gemacht. Mittlerweile bin ich mir relativ sicher, dass es an der alten Audigy2 Soundkarte lag, aber Hard Freezes sind kein Spaß und die Ursachenforschung ist anstrengend und auch die Konsequenzen manchmal etwas nervig (mysql verträgt Abstürze manchmal gar nicht gut, aber dazu später mehr.). Das Problem, dem ich mich in diesem Eintrag widmen will ist die Wiederherstellung von grub mit Hilfe der openSUSE DVD (11.4 in meinem Fall, sollte aber mit jeder Linux LiveCD funktionieren)

Als erstes sollte man das LiveSystem booten, wenn man die openSUSE DVD nutzt, so bootet man das Rettungssystem. Wenn das geschen ist, meldet man sich als root an. Normalerweise geschieht dies einfach durch die Eingabe von „root“. Falls ein Passwort gebraucht wird, so erfährt man dieses von der Homepage der genutzten LiveCD. Sodann muss man herausfinden welches Laufwerk die root („/“) Partition enthält und, falls man eine seperate /boot Partition nutzt muss man auch dieses Laufwerk kennen. In meinem Fall waren es /dev/sdb3 für / und /dev/sda1 für /boot.

Sodann mountet man die root Partition nach /mnt, bindet in diese /dev und/proc ein, wechselt das root Verzeichnis nach /mnt und mountet dort /sys und eventuell /boot. Dies geschieht mit folgenden Befehlen:

mount /dev/sdXY /mnt
mount -o bind /dev/ /mnt/dev/
mount -o bind /proc/ /mnt/proc/
chroot /mnt/ /bin/bash
mount /sys
mount /dev/sdXY /boot

Bei /dev/sdXY müssen natürlich noch XY durch die tatsächlichen Werte ersetzt werden.

Danach kann man mit „yast2 bootloader“ den Bootloader konfigurieren. Am besten läßt man sich von yast eine neue Konfiguration vorschlagen (Alt+e, Alt+p) und bestätigt diese (Alt+o).

Die Kommandos sind schamlos von niczsoft.com/ abgeschrieben

KDE SC 4.5.2

Hier nun endlich wieder ein Screenshot von KDE

KDE 4.5.2

So sieht das im Moment bei mir auf dem Desktop aus. Besonders schön finde ich die transparenten Fensterdekorationen. Leider ist der Blur Effekt noch nicht komplett optimiert und auch das Transparente Oxygen theme ist noch im alpha oder beta Stadium, so dass dieser Eyecandy noch recht viel Leistung schluckt. Ansonsten ist KDE 4.5.2 wie es sein sollte, vielleicht mit Ausnahme der fehlenden PIM Suite, denn diese wird gerade auf Akonadi umgestellt. Ich nutze schon die beta Version, doch diese hat noch ein paar kleine Probleme… Alles andere ist sehr schön. Die Desktopsuche und das Nepomuk Geschleuder (Semantischer Desktop) funktionieren mittlerweile sehr gut.

KDE und die Einfachheit des Seins

Da ich in letzter Zeit einige Leute mit ihren Windows-Kisten gesehen habe, die versuchten auf einen sftp Server (file transfer over ssh) zuzugreifen, ist mir verstärkt aufgefallen, wie schön es ist, dass KDE über kio-slaves auf viele verschiedene Protokolle zugreifen kann!

So kann man in jedem Dateimanager auf sftp zugreifen und jedes Programm kann dort gespeicherte Dateien direkt öffnen.

Und wenn einem das noch nicht reicht, weil man zum Beispiel mittels rsync Verzeichnisse synchronisieren möchte, bietet Gnu/Linux ja auch noch die Möglichkeit, sftp wie eine Partition zu mounten.

Festplatten und Partitionierung

Man liest des öfteren in IRC Chats, dass einige Hilfesuchende nicht wissen, was Partitionen sind. Das größte Problem scheinen die „Laufwerke“ in Microsoftbetriebssystemen zu sein. Dort wird jeder Partition, jedem externen Laufwerk und auch „Netzlaufwerken“ ein Buchstabe zugeordnet. Die Systempartition von Windows (und auch DOS) heißt normalerweise C:. Das liegt daran, dass A: und B: für Diskettenlaufwerke reserviert waren.

Diese Einteilung ist allerdings etwas irreführend, denn es handelt sich nicht zwingend um ganze Festplatten. Eine solche kann nämlich in Partitionen aufgeteilt sein. Vor allem bei modernen Festplatten macht es Sinn, mehrere Partitionen auf einer Platte einzurichten, um besser die Übersicht zu behalten, aber auch um z.B. Defragmentationen besser planen zu können.

In unixoiden Betriebssystemen wird die Festplatte meist in mindestens drei oder mehr Partitionen aufgeteilt, nämlich eine root Partition, welche das System, alle Programme und das Wurzeldateisystem enthält. In dieses werden die anderen Partitionen „gemountet“, also eingehängt. Diese root Partition ist eigentlich ausreichend, doch erstellt man für Desktoprechner meistens noch mindestens eine /home Partition, die alles unterhalb des Verzeichnisses „/home“ beinhaltet, damit man bei Neuinstallationen die Benutzereinstellungen behalten kann und nur die root Partition formatieren muss. Bei Servern nutzen viele noch eine eigene Partition für /var, wo z.B. Emails, Druckerwarteschlangen und andere Dinge die sich schnell ändern, wie logs gespeichert werden. Zusätzlich gibt es noch eine sog. Swap Partition, die die gleiche Aufgabe erfüllt wie die Auslagerungsdatei in Windows.

Bis auf Swap Partitionen werden alle Partitionen in des Wurzeldateisystem eingebunden, sind also Unterverzeichnisse. Dies ist in Windows auch möglich, wird aber selten genutzt.

Es gibt zwei Arten von Partitionen: Primäre und Erweiterte. Pro Festplatte kann es maximal vier Partitionen geben. Um mehr zu erhalten, muss man eine dieser vier als erweiterte Partition erstellen und kann dann in dieser beliebig viele „logische Partitionen“ erstellen. Diese Begrenzung liegt daran, dass die Partitionstabelle nur eine feste größe am Anfang der Festplatte zur Verfügung hat. In dieser Tabelle werde Partitionsart und der Anfangs- und Endpunkt festgehalten.

Jede Partition kann wiederum mit einem Dateisystem formatiert werden. Windows nutzt heutzutage meist NTFS, versteht aber auch das ältere und nicht mehr zu empfehlende FAT32. GNU/Linux kann NTFS und FAT32 zwar lesen und beschreiben, doch fehlen einige wichtige Funktionen wie Benutzerrechte und NTFS ist proprietär und somit nicht vollständig bekannt, weshalb GNU/Linux z.B. korrupte NTFS Partitionen nicht säubern kann. Das verbreitetste Dateisystem in GNU/Linux ist wohl ext4 und dessen Vorgänger ext3. Beide sind sog. „Journaling Filesystems“, wie NTFS. Desweiteren kann man aber auch eine Reihe weiterer Dateisysteme nutzen, die je nach Gebrauch Vor- und Nachteile bringen.

Partitionen sind also nur Teile einer Platte, wenn auch eine Platte nur eine Partition beinhalten kann. Natürlich kann man auch USB Sticks in mehrere Partitionen unterteilen. Leider kann Windows dann nur die Erste lesen, und auch nur wenn es sich um eine mit NTFS oder FAT32 formatierte Partition handelt.

Software Updates

Firefox 3.6 wurde gestern veröffentlicht. Er startet nun schneller und kann das aussehen mit sogenannten Personas ändern. Diese legen im Grunde nur ein Bild über das Grau der Bedienelemente, sieht aber trotzdem schick aus.

Doch schon lese ich wieder einen dieser unsäglichen „Linux ist noch nicht für den Massenmarkt“-Artikel. Im Grunde geht es um das updaten von Software. Der Autor des Artikels ist der Meinung, dass es doch viel einfacher sei, den Installer von der Mozilla-Webseite herunterzuladen und mittels einiger clicks Firefox neu zu installieren. Das funktioniert unter Gnu/Linux tatsächlich nicht, doch geht es ja dank Software Management auch viel einfacher. Wenn man weiß, dass man einen möglichst aktuellen Firefox nutzen möchte, so kann man in jeder mir bekannten Gnu/Linux Distribution entweder ein zusätzliches Repository (für openSUSE wäre das für Firefox dieses) nutzen oder dem Software Management mitteilen, dass man bestimmte Pakete erhalten möchte, sobald sie verfügbar sind (z.B. bei gentoo). Man kann natürlich auch das auf der Mozilla Seite angebotene Archiv herunterladen, entpacken und Firefox so starten, was natürlich keine Systemweite Installation ist, zum antesten aber ausreicht.

Viele Gnu/Linux Distributionen veröffentlichen in ihren normalen Updates nur Sicherheitsrelevante Patches, bieten aber fast immer, wie gesagt, für fast alles Repositories an, die wenigstens die letzte stabile Version eines Programms oder einer Programmgruppe enthält. Meistens gibt es sogar Repositories mit Beta Versionen oder sogar Snapshots des Entwicklungszweiges.

Der große Vorteil dieser Repositories ist, dass man Programme, die man einmal so installiert hat, automatisch auf dem neuesten Stand hat. Somit war mein Update auf Firefox 3.6 auch sehr einfach und schnell. einmal „zypper up“ gestartet und schon fertig.

Ich ärgere mich vor allem über den oben genannten Artikel, weil ich gestern endlich Windows 7 installiert habe. Ich benutze Windows zwar nur zum spielen, aber trotzdem braucht man ja einige Programme, wie z.B. einen vernünftigen Dateimanager, einen Instant Messenger und vor allem Patches für die (neu zu installierenden) Spiele. Das dauerte alles ewig lange und vor allem fiel mir auf, dass in meiner vorherigen Vista-Installation einige Programme doch arg alt waren.

Mittlerweile haben zwar viele Programme eigene Updatemechanismen, aber diese belegen dann auch Ressourcen. so ärgere ich mich jedesmal über Apples Updater, der mit iTunes installiert wird (ja, ich benutze einen iPod, allerdings noch einen aus der 5. Generation, so dass ich den normalerweise per amarok unter openSUSE betanke). Dieser Updater läuft dauernd im Hintergrund und überprüft, ob es Updates zu installierter Apple-Software gibt. Das wäre ja auch ganz nett, wenn man denn mehr von Apple benutzte, aber nur für iTunes finde ich das doch übertrieben. Auch Adobe nutzt ein ähnliches Modell. Sun für Java auch. Da ich den Flashplayer und Java nutze sind also gleich zwei weitere Updater im Hintergrund aktiv.

Ich fände es sehr nett, wenn all diese Dienste wenigstens etwas zentralisiert würden.

Bei den meisten Gnu/Linux Distributionen ist dies schon der Fall! (Ich schreibe hier nicht von „allen“ Distributionen, weil ich nicht alle kenne)

GNU/Linux und das Installieren von Software

Es fällt mir immer öfter auf, dass offensichtlich viele Windows zu Linux Umsteiger versuchen, Software genau so zu installieren, wie sie es schon unter Windows gelernt haben: Browser öffnen, Software suchen und den Downloadlink drücken; danach doppelt auf die heruntergeladene Datei klicken. Mit etwas Glück ist es immerhin keine .exe oder .msi Datei. Wenn man dann im openSUSE IRC channel (#suse auf irc.freenode.net) darauf hinweist, dass das heruntergeladene Programm so nicht funktionieren wird, sieht man sich nicht selten mit Unverständnis konfrontiert.

Doch ist meiner Meinung nach gerade das Softwaremanagement eine der großen Stärken von GNU/Linux. Man muss eben nicht selber das gesamte Internet durchsuchen und in regelmäßigen Abständen sicherstellen, dass die Programme wenigstens auf einem halbwegs aktuellen Stand sind. Eine kurze Suche mit YaST oder zypper, oder welches System die genutzte Distribution auch verwendet, und das gesuchte Programm ist mit einem Häkchen installiert.

Das ist natürlich nur dann der Fall, wenn das gesuchte Programm im Hauptrepository zu finden ist. In dem Fall reicht es sogar, nur zu Wissen, was man eigentlich will, um mit geeigneten Stichwörtern sogar die Beschreibungen der im Repository befindlichen Programme zu durchsuchen.

Etwas schwieriger wird es, wenn nichts im Hauptrepository den Anforderungen entspricht. Wenn man nun weiß, wie das gesuchte Stück Software heißt, kann man auf opensuse.org fündig werden. Diese Suchmaschine durchsucht allerdings nur den Open Build Service und die Repositories der gewählten Version. Um auch das (großartige) Packman Repository und andere zu durchsuchen, sollte man packages.opensuse-community.org ausprobieren. Für diejenigen, die gerne mit der Shell arbeiten, empfehle ich das kleine Programm „webpin“, welches im Open Build Service zu finden ist.

Was aber macht man, wenn man das entsprechende Programm gefunden hat? Einfach auf „Download“ drücken ist auch hier wenig ziel-führend. Am Besten ist es wohl, das Repository in das Softwaremanagement einzupflegen. Mittels „zypper ar <url> <alias>“ ist das recht einfach. In YaST gibt es auch eine grafische Oberfläche. Danach sollte das gesuchte Programm mittels YaST oder zypper zu finden und zu installieren sein.

Und was, wenn das installierte Programm nicht gefällt und das, was man jahrelang unter Windows verwendet hat viel besser ist?

  1. Hat man sich damit ja auch schon eingearbeitet
  2. Sind einige FOSS-Programme deutlich anders zu bedienen als Kommerzielle
  3. Bedeutet eine andere Oberfläche nicht zwingend, dass eine besser ist

Gerade wenn es um GIMP geht, meckern viele Umsteiger gleich, denn es sieht ja deutlich anders aus als Photoshop, und das kann ja nur schlecht sein. Allerdings gibt es unter GNU/Linux ja virtuelle Arbeitsflächen, wovon man ja eine ausschließlich für GIMP nutzen kann. So finde ich es sogar sehr nützlich, dass ich die einzelnen Fenster einzeln minimieren und platzieren kann und ab 2.8 soll es ja nun auch eine Photoshop-ähnliche Oberfläche geben. Auch sollte der Funktionsumfang für die Meisten locker ausreichen. So viele professionelle Designer, wie sich im IRC oder in Foren über Gimp beschweren, die auch noch auf Linux umsteigen wollen, kann es gar nicht geben.

Aber ich habe auch schon von vielen gehört, dass sie unbedingt einen bestimmten Instantmessenger bräuchten oder einen bestimmten IRC-Client oder einen bestimmten Mediaplayer oder etwas ähnlich banales oder alles auf einmal. Und diese benötigten Dinge gibt es dann eben nur für Windows. Da frage ich mich meist zuerst, warum derjenige denn nun auf GNU/Linux umsteigen will, wenn er doch nur Windowsprogramme nutzen will. Dann kommt meist sofort die Frage, wie wine denn funktioniere. Es ist ja ganz nett, dass einige Windowsprogramme mit wine tatsächlich funktionieren, aber sollte man wine nutzen, wenn es genug native Alternativen gibt, wie bei obigen Beispielen? Ich befürchte, dass das eher Probleme mit sich bringt, zumal solche Anwendungen nicht von dem Softwaremanagement profitieren und man sich doch wieder selber um neue Versionen für jedes so installierte Programm kümmern muss.

Fazit: Warum sollte man alle Vorteile von GNU/Linux opfern, nur um bestimmte (Windows)Programme weiter zu nutzen? Dann kann man gleich bei Windows bleiben. Ein Wechsel des Betriebssystems beinhaltet eben auch, dass man neue Programme lernen muss.

IMAP Adressbuch und Kalender in Kontact

Ich habe gerade herausgefunden, dass man auf einem IMAP-Server Adressbücher und Kalender speichern kann. Unter KDE 4 kann man diese dann direkt einbinden. Somit kann man überall die gleichen Daten nutzen. Um das einzurichten reicht es, in den Einstellungen von kmail unter Diverses/Arbeitsgruppen die „Funktionen für IMAP-Ressourcen aktivieren“. Alles andere kann man in den Standardeinstellungen belassen.
Nun muss man im Adressbuch eine neue IMAP-Ressource anlegen und die vorhandenen Einträge auf diese kopieren (alles auswählen und rechtsclick->kopieren nach).
Kalender sind etwas komplizierter. Hier muss man den vorhandenen Kalender in eine iCal Datei exportieren, eine neue IMAP-Ressource anlegen, diese als Standard auswählen und dann die iCal Datei in diese importieren.
Das ist doch mal eine sehr schöne Sache!

(Diese Anleitung gilt für Installationen ohne akonadi)

Neuinstallation und Scripte

Leider musste ich das Serendipity neu installieren und alle alten Einträge löschen. Aber so viele waren es ja nicht.

Hier nun also die beiden Transcoder-Scripte (tags werden beibehalten):


1.: (flac->mp3)

#! /bin/bash
  for i in *.flac; do
  title=$(metaflac --show-tag=title "$i"|sed s/"TITLE="//)
  artist=$(metaflac --show-tag=artist "$i"|sed s/"ARTIST="//)
  album=$(metaflac --show-tag=album "$i"|sed s/"ALBUM="//)
  year=$(metaflac --show-tag=date "$i"|sed s/"DATE="//)
  genre=$(metaflac --show-tag=genre "$i"|sed s/"GENRE="//)
  track=$(metaflac --show-tag=tracknumber "$i"|sed s/"TRACKNUMBER="//)
  flac -d -o tmp.wav "$i"
  lame --preset fast standard -h --add-id3v2 --tt "$title" --ta "$artist" --tl "$album" --ty "$year" --tn "$track" --tg "$genre" tmp.wav $(basename "$i" .flac).mp3
  rm tmp.wav
  done
  exit 0

2.: (ape->mp3)

#! /bin/bash
  for i in *.ape; do
  album=$(apetag -i "$i" | grep -i album | sed s/"Album\" "// | sed s/"\""//g);
  artist=$(apetag -i "$i" | grep -i artist | sed s/"Artist\" "// | sed s/"\""//g);
  genre=$(apetag -i "$i" | grep -i genre | sed s/"Genre\" "// | sed s/"\""//g);
  title=$(apetag -i "$i" | grep -i title | sed s/"Title\" "// | sed s/"\""//g);
  track=$(apetag -i "$i" | grep -i track | sed s/"Track\" "// | sed s/"\""//g);
  year=$(apetag -i "$i" | grep -i year | sed s/"Year\" "// | sed s/"\""//g);
  ffmpeg -i "$i" -f wav tmp.wav
  lame --preset fast standard -h --add-id3v2 --ta "$artist" --tt "$title" --tl "$album" --tg "$genre" --tn "$track" --ty "$year" tmp.wav "$(basename "$i" .ape)".mp3
  rm tmp.wav
  done
  exit 0