Hi Leute!
Ich benötige ein möglichst kleines Debian System für einen Thinclient, das nur dazu in der Lage sein soll, sich auf beliebigen Maschinen per EXTLINUX vom USB-Stick aus booten zu lassen, um dann sofort per cURL von einem FTP-Server den eigentlichen Kernel + restliches Betriebssystem verschlüsselt zu beziehen und mit kexec zu starten. Das ganze soll nicht durch Benutzereingaben abgebrochen werden. Das Skript, welches cURL aufruft soll des debuggings wegen ein paar Dinge in Textform auf dem Bildschirm ausgeben können.
Meine Fragen:
- Wie erstelle ich ein solches minimales System? Was kann ich weglassen?
- An welcher Stelle des Bootvorgangs kann ich mein Script (IP-Adresse per DHCP beziehen, Daten vom FTP holen, kexec) einbinden?
Momentan sind auf dem USB-Stick: 2MB Kernel, 61MB initrd, wenige KB EXTLINUX.
"du -sh /" liefert mir bei gestartetem System 165MB.
minimales Debian System für Thinclient
-
- Beiträge: 7
- Registriert: 07.03.2012 15:31:03
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
- Natureshadow
- Beiträge: 2157
- Registriert: 11.08.2007 22:45:28
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Radevormwald
-
Kontaktdaten:
Re: minimales Debian System für Thinclient
Hi,
also, am kleinsten wird es sicherlich, wenn du dir einfach eine passende initrd baust.
Eine IP-Adresse per DHCP anfordern und setzen kann der Kernel selber, dafür brauchst du gar kein Userland. Für alles weitere eine busybox und den nötigen Glue ins linuxrc-Skript.
Ich bin mir sehr sicher, ein solches System auf deutlich weniger als eine Floppy zu bekommen. Obwohl, kommt drauf an, wieviel Hardware du unterstützen musst .
Grüße,
Nik
also, am kleinsten wird es sicherlich, wenn du dir einfach eine passende initrd baust.
Eine IP-Adresse per DHCP anfordern und setzen kann der Kernel selber, dafür brauchst du gar kein Userland. Für alles weitere eine busybox und den nötigen Glue ins linuxrc-Skript.
Ich bin mir sehr sicher, ein solches System auf deutlich weniger als eine Floppy zu bekommen. Obwohl, kommt drauf an, wieviel Hardware du unterstützen musst .
Grüße,
Nik
Linux Professional Institute Certification Level 2
Warum bist du immer so gehässig? | FAQ (aka "Mein Sound ist kaputt!")
Meine DF.de-Stalker: Cae und TRex - I <3 you!
Warum bist du immer so gehässig? | FAQ (aka "Mein Sound ist kaputt!")
Meine DF.de-Stalker: Cae und TRex - I <3 you!
-
- Beiträge: 7
- Registriert: 07.03.2012 15:31:03
- Lizenz eigener Beiträge: MIT Lizenz
-
Kontaktdaten:
Re: minimales Debian System für Thinclient
Motivation:
Was die hardware angeht, sollte möglichst alles unterstützt werden, was Debian von sich aus auch in der Standard-Installation unterstützt. Die Hardwaregegebenheiten liegen außerhalb meines Zuständigkeitsbereiches.
Dass das System klein sein soll, liegt einerseits daran, dass es auf kleine USB-Sticks passen soll (was es auch jetzt schon tun würde), und andererseits daran, dass mit weniger installierter Software die Übersichtlichkeit steigt und ich eher davon ausgehen kann, dass keine sicherheitsbedenklichen Dienste/Funktionen vorhanden sind. (Was ich nicht kenne und nicht wirklich brauche, will ich auch nicht drauf haben. )
Vielleicht sollte ich noch erwähnen, dass die Rechner keine Festplatten besitzen. Der USB-Stick ist hardwaretechnisch schreibgeschützt. Ich benutze momentan debirf, um eine initrd + Kernel zu erzeugen. Das voreingestellte Profil für ein "minimales" System beinhaltet jedoch immernoch unüberschaubar viel software, documentary, ... und liefert nach abgeschlossenem Bootvorgang eine Konsole, die Benutzereingaben entgegennimmt.
Habe die von dir erwähnten Begriffe nachgeschlagen, Natureshadow. Wenn ich es richtig verstanden habe, führt der Kernel nachdem er die initrd eingebunden hat, als allererstes das linuxrc-Skript aus.
- Meinst du mit linuxrc etwa /sbin/init oder /etc/init.d/rcS ? Falls nein: wo finde ich dieses Skript?
- Welche Skripte in /etc/rcS.d/ müssten mindestens gestartet sein, damit mein Skript funktionsfähig ist? ( "ifup eth0=dhcp" zum IP beziehen, "curl [Verbindungsinformationen]" um images vom FTP zu holen und "kexec [neuer kernel][neue initrd]" )
- Und wie kann ich mich bei einem bereits vorhandenen System all der ungebrauchten Software entledigen? Alternativ: wie kann ich debootstrap dazu bringen, von vorneherein nur die benötigte Software zu installieren? (debirf benutzt debootstrap)
PS: wenn ich das System hier erstmal zum laufen bekomme, werde ich ausführlichst mein gesamtes Vorgehen für die Nachwelt hier resümieren.
Was die hardware angeht, sollte möglichst alles unterstützt werden, was Debian von sich aus auch in der Standard-Installation unterstützt. Die Hardwaregegebenheiten liegen außerhalb meines Zuständigkeitsbereiches.
Dass das System klein sein soll, liegt einerseits daran, dass es auf kleine USB-Sticks passen soll (was es auch jetzt schon tun würde), und andererseits daran, dass mit weniger installierter Software die Übersichtlichkeit steigt und ich eher davon ausgehen kann, dass keine sicherheitsbedenklichen Dienste/Funktionen vorhanden sind. (Was ich nicht kenne und nicht wirklich brauche, will ich auch nicht drauf haben. )
Vielleicht sollte ich noch erwähnen, dass die Rechner keine Festplatten besitzen. Der USB-Stick ist hardwaretechnisch schreibgeschützt. Ich benutze momentan debirf, um eine initrd + Kernel zu erzeugen. Das voreingestellte Profil für ein "minimales" System beinhaltet jedoch immernoch unüberschaubar viel software, documentary, ... und liefert nach abgeschlossenem Bootvorgang eine Konsole, die Benutzereingaben entgegennimmt.
Habe die von dir erwähnten Begriffe nachgeschlagen, Natureshadow. Wenn ich es richtig verstanden habe, führt der Kernel nachdem er die initrd eingebunden hat, als allererstes das linuxrc-Skript aus.
- Meinst du mit linuxrc etwa /sbin/init oder /etc/init.d/rcS ? Falls nein: wo finde ich dieses Skript?
- Welche Skripte in /etc/rcS.d/ müssten mindestens gestartet sein, damit mein Skript funktionsfähig ist? ( "ifup eth0=dhcp" zum IP beziehen, "curl [Verbindungsinformationen]" um images vom FTP zu holen und "kexec [neuer kernel][neue initrd]" )
- Und wie kann ich mich bei einem bereits vorhandenen System all der ungebrauchten Software entledigen? Alternativ: wie kann ich debootstrap dazu bringen, von vorneherein nur die benötigte Software zu installieren? (debirf benutzt debootstrap)
PS: wenn ich das System hier erstmal zum laufen bekomme, werde ich ausführlichst mein gesamtes Vorgehen für die Nachwelt hier resümieren.
- Natureshadow
- Beiträge: 2157
- Registriert: 11.08.2007 22:45:28
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Radevormwald
-
Kontaktdaten:
Re: minimales Debian System für Thinclient
Hi,
du musst das System in der initrd mal von deinen Vorstellungen eines Debian-Userlands trennen.
In der Wurzel des initrd-Dateisystems liegt ein Programm namens /linuxrc, und das wird ausgeführt. In Debians initrd mountet es Dateisysteme, etc.
Noch ein paar Ideen:
Wie wäre es, wenn du auf Basis des Debian-netboot-Installers anfängst?
Warum nicht (g)PXE?
-nik
du musst das System in der initrd mal von deinen Vorstellungen eines Debian-Userlands trennen.
In der Wurzel des initrd-Dateisystems liegt ein Programm namens /linuxrc, und das wird ausgeführt. In Debians initrd mountet es Dateisysteme, etc.
Noch ein paar Ideen:
Wie wäre es, wenn du auf Basis des Debian-netboot-Installers anfängst?
Warum nicht (g)PXE?
-nik
Linux Professional Institute Certification Level 2
Warum bist du immer so gehässig? | FAQ (aka "Mein Sound ist kaputt!")
Meine DF.de-Stalker: Cae und TRex - I <3 you!
Warum bist du immer so gehässig? | FAQ (aka "Mein Sound ist kaputt!")
Meine DF.de-Stalker: Cae und TRex - I <3 you!