Dienstag, 17. Februar 2009

NSLU2: Upgrade von Debian Etch (4.0) auf Lenny (5.0)

Wahnsinn ist kein guter Berater. Erst recht nicht, wenn man so wahnsinnig ist wie ich und einfach ein neues Debian-Major Release auf eine eigentlich funktionierende NSLU2 installiert.
Deswegen zuerst der Disclaimer :-)

Never touch a running system!
Never touch a running system!
Never touch a running system!
So kurz nach Erscheinen sollte man übrigens nie ein Upgrade machen. Und ganz ohne Komplettbackup erst recht nicht.
Ich habe es trotzdem getan. Ich habe die noch frische Debian-Version 5.0, Codename: Lenny, auf die Slug gepackt.
Hier mein Bericht!

Zuerst der Beweis, das ich bisher die Version 4.0 (Debian Etch) auf dem System habe:
//NSLU2~# cat /etc/debian_version
4.0
Um das Upgrade zu ermöglichen, muss man dem Paketmanager die neuen Quellen mitteilen, als nächstes also die neue /etc/apt/sources.list:
//NSLU2~# cat /etc/apt/sources.list
deb http://ftp.de.debian.org/debian/ lenny main
deb-src http://ftp.de.debian.org/debian/ lenny main
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
Nach einem
//NSLU2~# aptitude update
sind die Paketquellen auf dem aktuellen Stand, nämlich Debian 5.0 – Lenny! Eventuell gibt es eine Fehlermeldung, zum Beispiel folgende ;-)
W: There is no public key available for the following key IDs: 
4D270D06F42584E6
W: Probieren Sie »apt-get update«, um diese Probleme zu korrigieren.
Der Hinweis mit apt-get update ist nett gemeint vom Lenny, aber er hilft natürlich nicht. Hier fehlt ganz einfach das aktuelle Schlüsselpaket und am besten gleich eine neue aptitude-Version. Also holen wir uns beides bevor wir weitermachen:
//NSLU2~# aptitude install debian-archive-keyring
...
//NSLU2~# aptitude install aptitude
So, jetzt kann der eigentliche Spaß losgehen.
//NSLU2~# aptitude dist-upgrade
Das kann und wird eine Weile dauern, bei mir waren über 240 MB an neuen Dateien zu laden, eh' die dann alle entpackt und installiert sind, ist schnell mal eine Stunde oder mehr weg. Zwischendurch kommen relativ viele Rückfragen, ob Konfigurationsdateien überschrieben werden sollen oder nicht. Da ist jeweils eine Fallentscheidung zu treffen, insgesamt sollte man die Ausgaben beim Upgrade gut im Auge behalten, sie geben Hinweise, wo spätere Probleme herkommen könnten.
Am Ende der Prozedur wird der neue Kernel geflasht, dann könnte man neu booten. Ich habe aber vorher noch ein paar Autostartskripte auskonfiguriert, so wollte Lenny nach dem Upgrade unbedingt X11-common starten, das ist keine so gute Idee auf der Slug.
Zum Konfigurieren kann man übrigens das Tool “rcconf” benutzten, wenn’s nicht schon drauf ist, einfach schnell mit “aptitude” installieren.
Ein “reboot” wird dann zeigen, ob die NSLU2 das Procedere überlebt hat.
Nach Minuten des Wartens hat eure NSLU2 hoffentlich neu gebootet. Nicht gleich in Panik verfallen, wenn der Reboot nach 2 oder 3 Minuten noch nicht abgeschlossen ist: Falls ihr vorher schon sehr lange nicht neu gestartet habt, dann schlägt eventuell der Filesystem Check (fsck) zu – und das kann dauern: bei mir bis zu einer Stunde. Falls die Slug nach 1h immer noch nicht reagiert, dann ist jetzt der richtige Zeitpunkt für den nächsten Schritt: PANIK!!!

Ich hoffe, ihr habt vorher brav ein Backup gemacht und wisst wie ihr dieses (und den alten Kernel) wieder einspielt. (Anm. des Autors: Zu dem Thema will ich schon seit Herbst 2007 ein Tutorial schreiben, habe aber bisher noch keine vollends vertrauenswürdige Methode gefunden!).
Für diejenigen unter euch, deren NSLU2 noch lebt, hier mal eine Aufstellung der Probleme, die ich bisher bemerkt habe:
  • lighthttpd
    Beim Upgrade wurde ein Modul (auth) umbenannt, das führt dazu, dass lighty einen Parser-Fehler beim Lesen der Konfig wirft und somit nicht startet.
    Korrektur: Mittels lighty-disable-module/lighty-enable-module das auth-Modul erst de- und dann wieder aktivieren. lighty neu starten.
  • openVPN
    Mein openVPN wird zusätzlich zum Schlüssel mit einem Username/Passwort über die Funktion “auth-user-pass-verify” geschützt, die ein selbstgeschriebenes Bash-Skript aufruft. Die Abfrage von Username/Passwort klappt, die Autorisierung per “via-env” nicht mehr.
    Korrektur: Es gibt einen neuen Parameter, der in die server.conf hinein muss:
    script-security 3 (Die 3 bedeutet, dass externe Skripte aufgerufen werden dürfen UND dass das Passwort an diese Skripte übergeben werden darf.)
  • sitecopy
    Wurde überschrieben, ich musste “meine” Version neu compilieren und installieren. Siehe sitecopy.
  • Heartbeat LEDs
    Die NSLU2 simuliert mit der obersten Status-LED einen Herzschlag, der unter Last schneller ist. Nettes Gimmick, das nach dem Upgrade anscheinend verschwunden ist. Statement von der Mailing-Liste: Das Feature ist entfernt worden, da der neue Kernel auf das generische LED-System zurückreift. Anscheinend nicht zu Ende gedacht.
  • Samba
    Das letzte Thema der bisher entdeckten Problemchen hat nicht direkt etwas mit dem Upgrade zu tun und ist mir bisher immer durch die Lappen gegangen. Ich nutze eine Handvoll selbst geschriebener Skripte zum Backup von Daten (MP3s, Fotos). Dazu wird u.a. ein Windows-Verzeichnis an die Slug mit CIFS gemountet und dann Dateien per rsync abgeglichen. Da ich die Fehlerausgabe in den cronjobs immer schön unterdrücke, ist mir nie aufgefallen, dass Dateien mit Umlauten gar nicht kopiert wurden. Das lag daran, dass der mount-Befehl nicht die Codepage als Option bekommen hat. Dadurch konnte Debian nix mit den wirren Zeichen auf der Windowsbox anfangen und konnte auch keine umlautbehafteten Dateien im Windows-Verzeichnis erstellen. Ist zwar jetzt korrigiert, aber bin mir nicht sicher, ob nicht doch noch schräge Zeichen zum Kollaps führen:-(
    Hier zur Erinnerung mal mein jetziger (funktionierender) Mount-Befehl:
mount -t cifs -o rw,username=USER,password=PW,iocharset=iso8859-1,codepage=cp850 $MOUNTREMOTE $MOUNTLOCAL
Nochmal die ernst gemeinte Warnung – ich kann das Upgrade nicht guten Gewissens empfehlen! Die Wahrscheinlichkeit, dass man sich seine NSLU2 zerschießt ist nicht gering und erste Meldungen diesbezüglich gab es auch auf der Mailingliste.
//NSLU2~# cat /etc/debian_version
5.0
Aber was wäre das Leben ohne Risiko? :D

blog comments powered by Disqus

Design von Dicas Blogger, angepasst durch Mario Ruprecht