Projekt: Ubuntu 10.x Lucid per PXE booten für Diskless Clients VDR & XBMC

  • Hallo Liebe Com,

    Ich habe mir mal vorgenommen eine neue Ubuntu 10.x Lucid version auf Diskless per PXE boot umzustellen. Die vorteile liegen auf der Hand, wie z.b. schnelles booten ohne krach und ohne zwingende Lüfter. Machbar mit einem Atom mit ION chipsatz und einem PXE/VDR Server der im Keller rumwerkelt.

    Bisher habe ich mit einer Testinstallation auf einer platte eine rohinstall version per "debootstrap" erstellt und dort schon aenderungen fürs nfs booten eingetragen. Danach installierte ich den neusten kernel mit initrd und wollte diesen dann auch per PXE booten lassen, was mich aber nur zu einem kleinen schwarzen blinkenden unterstrich oder zu fehlermeldungen führt.

    Die Fehlermeldungen auf dem Bildschirm sehen so aus...

    Siehe bild welches ich noch machen werde.
    http://188.40.125.179/~avalon/ubuntu…-06-01_7911.JPG

    Hier könnt ihr euch die debootstrap Ubuntu Lucid version Herunterladen.
    http://188.40.125.179/~avalon/ubuntu…cid_PXE.tar.bz2

    Was nachdem runterladen noch zu tun ist.
    1. per chroot hinein rooten in die root
    2. nochmals die config files ueberprüfen laut unterem Howto
    2.1. resolv.conf anpassen
    3. neustes Kernel images installen (in der debootstrap root)
    4. euren PXE server auf die neue root umstellen :)

    Hier ist ein Howto für eine ältere Ubuntu version http://www.ernst1980.de/htpc-mit-xbmc/

    Wo Ihr die einstellungen von den entsprechenden Dateien noch mal überprüfen könnt.

    Ein Kollege meint das die probleme eventuel mit dem neuen upstart zusammen hängen könnte, welches mit der Lucid version einzugerhalten hat.

    Vielleicht kann ja einer von euch, wer lust hat zu Basteln, es auch mal probieren.

    MfG
    Aileenis

    nachtrag:
    Der fehler mit nfs kan nun so entfernt werden in dem man in die fstab es so einträgt " /dev/nfs / nfs nolock,defaults 1 1 "

    Dann bleibt nur noch der fehler mit dem portmap, welches er nicht streten will

    Edited 5 times, last by Aileenis (June 1, 2010 at 12:25 PM).

  • Ich hatte bis vor kurzem einen ähnlichen Ansatz, allerdings ist NFS-Root afaik nicht dafür geeignet mehrere Systeme gleichzeitig zu betreiben, bei mehreren Clients bräuchte man dann mehrere NFS-Roots. Damit ist einerseits die Platzersparnis hinüber und andererseits die Wartbarkeit.
    Deswegen habe ich aus einem entsprechendem Verzeichnis einfach ein initramfs erzeugt. Das läßt sich (ebenfalls per PXE) an mehrere Clients (auch gleichzeitigt laufend) übertragen. Das /video muß man natürlich weiterhin per NFS mounten.

    Vorteile:
    - nur ein "Client-VDR-Dateisystem", dadurch Updates für alle Systeme gleichzeitig
    - da das rootfs dann komplett in der Ramdisk läuft ist das System absolut unempfindlich gegenüber abstürzen, beim nächsten Reboot ist alles wie vorher
    - schneller (im Betrieb, nicht Boot-Zeit!) ist es natürlich auch
    Nachteil:
    - laden des initramfs per PXE dauert länger als nfsroot
    - man braucht mehr RAM, das das rootfs in einer ramdisk läuft

    Das lief bei mir mehrere Monate sehr gut, allerdings wollte ich die Abhängigkeit vom Server reduzieren (Server läuft nicht -> kein TV im ganzen Haus!) und habe dann doch wieder kleine (1GB) SSDs in die Clients gebaut, die den kernel und das initramfs (weiterhin roots als ramdisk) halten.

  • Razorblade
    Ein paar Verständinssfragen:


    Sorry für OT

    1. Hast Du aus dem debootstrap Verzeichniss (chroot) eine initramfs erstellt?

    2. Kernel und intramfs auf SSD kopiert.
    - welchen bootloader verwendest du denn
    - welche Bootargumente verwendest du (für root als ramdisk) oder wird
    die über fstab gemountet.
    - wie hast du das Speichern von EPG Informationen und sonstiges Erledigt?

    Ich hab mir gerade ein Live-debian zusammen gestrickt. Funktioniert soweit ganz gut. Vielleich kann ich ja noch etwas "abschauen".

    Danke.

    Gigabyte GA-M720-US3, AMD X3 400e, GT220 Pailt, 4GB RAM, Tevii S470, debian squeeze und alles selber gebaut.
    Dreambox

  • Ich benutze Gentoo, nicht Debian, aber das Vorgehen ist distributionsunabhängig. Ich habe einfach in ein chroot installiert und daraus per
    find . | cpio -H newc -o | gzip -9 > ../initramfs.igz
    (das resultierence initramfs ist bei mir gepackt ca. 260MB, entpackt 650MB groß)
    ein initramfs erzeugt, was dann "ganz normal" zB über grub oder lilo gestartet werden kann (wie jede normale initramfs/initrd). Einen fstab-Eintrag braucht man dann gar nicht mehr (nur noch für /video per nfs).
    epg.data und channels.conf werden (wenn vorhanden) von einem (nfs)share kopiert, die Ramdisk enthält aber auch eine (zum Zeitpunkt der Erstellung aktuelle) channels.conf, so dass man auch ohne laufenden Server Live-TV hat (nur eben keinen Zugriff auf die Aufnahmen oder bereits gesammelte EPG Daten).

  • Hallo Razorblade,

    schön das du dich gemeldet hast und auch so einen ansatz verfolgt hast. Dein ansatz mehrere Clients in einer NFS Root laufen zu lassen funktioniert mit diversen kniffen "z.b. verlinkungen zum Hostnamen" reibungslos. Dies betreibe ich mit meinem Kolegen schon einige Jahre mit einem reinen Debian system angefangen haben wir mit sarge und sind nun bei squeeze gelandet.

    Aber da uns die einfachheit von ubuntu mit den letzten versionen so überrascht hat wollten wir nun dieses PXE boot fertig machen.

    Falls interesse an dieser Sache hast könnten wir uns mal im ICQ/Teamspeak oder irgendwas änlichen gerne näher darüber unterhalten.

    MfG
    Aileenis

  • Hast du den per PXE zu bootenden Kernel neu kompiliert? Es sieht mir so aus, als ob der NIC Treiber und die settings, dass die root über nfs gemountet sein darf, nicht mit im Kernel sind..
    Hier im Forum gibts auch ein super howto für dein Vorhaben.

  • Hallo Diedl2003,

    der Kernel bootet in meiner anderen diskless root(von debian) bis zum login durch, also hat er alle Nic treiber die er brauch.

    Wenn er in der lucid root bootet holt er sich auch wärenddessen auch wieder eine ip.
    Hier paar einträge aus dem syslog vom server.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!