"We are back" « oc.at

/boot auf IDE, / auf USB Festplatte

Gex 12.08.2008 - 13:57 868 9
Posts

Gex

Oralapostel
Avatar
Registered: Jan 2001
Location: Piefkinesien
Posts: 3376
Ich habe einen alten ThinClient, den ich gerne mit einem Debian bestücken würde.
Das Teil hat so einen 32MB großen IDE-Flash-Speicher als Festplattenersatz. Und mehrere USB-Anschlüsse - leider nur USB 1.1.

Meine Idee wäre folgende: Auf die Flash-Disk den Kernel und alles legen, Bootloader installieren usw., so dass davon gebootet wird. Dann eine Partition auf einer USB-Platte als / verwenden...

Wie fange ich das nun am cleversten an?

Beherrscht der Debian-Installer sowas vielleicht schon von Haus aus? Oder muss ich da manuell mit debootstrap dabei? Wenn ja, unterstützt der Kernel (2.6.x) standardmäßig schon USB Mass Storage oder muss ich da auch erst einen neuen backen?
Und wie bringe ich dem System, wenn der Kernel erstmal von der Flash-Disk gestartet ist, bei, dass die USB-Platte als / gemountet wird? Einfach /etc/fstab entsprechend editieren und fertig ist der Lack? Oder gibt's dann Probleme mit der USB-Platte?

Dass ich mit USB 1.1 keine Geschwindigkeitsrekorde aufstellen werde ist schon klar, aber darum geht's auch nicht ;)

Also für Tips jeglicher Art bin ich dankbar :)
Bearbeitet von Gex am 12.08.2008, 19:29

othan

Layer 8 Problem
Avatar
Registered: Nov 2001
Location: Switzerland
Posts: 4236
sollte von haus aus funktionieren, am besten einfach probieren ;)

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6287
Jeder Installer der was auf sich hält sollte das beherrschen. Allerdings begehst du einen kleinen Denkfehler.

/ ist gemeinsam mit /boot und /lib (bin mir nicht sicher was zum Booten noch zwingend benötigt wird) dann auf der Flash-Disk obwohl das sehr knapp werden wird, und alle Partitionen die sich auslagern lassen (/usr, /var, /opt, /home usw.) kommen auf die USB-Disk und werden von dort eingehängt.

Welche die root-Partition ist, gibt man im Bootmanager als Kernel-Argument an. Zu dem Zeitpunkt ist noch nichts mit /etc/fstab. ;)

EDIT: Solchermaßen kann man dann natürlich auch / auf der USB-Platte angeben, das war jetzt mein Denkfehler. Allerdings musst du dann unbedingt das USB-Subsystem in den Kernel compilieren, damit er überhaupt erst auf die USB-Platte zugreifen kann.
Bearbeitet von t3mp am 12.08.2008, 14:13

issue

Rock and Stone, brother!
Avatar
Registered: Feb 2003
Location: Linz
Posts: 3657
Zitat von t3mp
Jeder Installer der was auf sich hält sollte das beherrschen. Allerdings begehst du einen kleinen Denkfehler.

/ ist gemeinsam mit /boot und /lib (bin mir nicht sicher was zum Booten noch zwingend benötigt wird) dann auf der Flash-Disk obwohl das sehr knapp werden wird, und alle Partitionen die sich auslagern lassen (/usr, /var, /opt, /home usw.) kommen auf die USB-Disk und werden von dort eingehängt.

Welche die root-Partition ist, gibt man im Bootmanager als Kernel-Argument an. Zu dem Zeitpunkt ist noch nichts mit /etc/fstab. ;)

wird das zeug aus /lib nicht erst nach der initrd geladen?
ich mein es tuts wenn er sich nur /boot auf das ide LW legt.

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6287
Ja, war mein Denkfehler, habe mich schon verbessert. /lib muss in den meisten Fällen fix auf / sein, hat aber nichts mit /boot zu tun.

Habe das mit meinen eigenen Flash-beschleunigt-System-Phantasien durcheinander gebracht. ;)

Gex

Oralapostel
Avatar
Registered: Jan 2001
Location: Piefkinesien
Posts: 3376
Oha, vielen Dank schonmal!
D.h. wenn ich dem Kernel das USB-Subsystem fest einkompiliere kann ich dem Bootloader einerseits das root-Verzeichnis (in diesem Fall eben die USB-Platte, z.B. bei grub als hd(1,0) oder so) und gleichzeitig den Speicherort des Kernels auf der IDE-Platte (z.B. hd(0,0)/vmlinuz) mitgeben?

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6287
Für den Speicherort des Kernels ist es sogar unerheblich was du hineinkompiliert hast, der wird ja noch vom Grub/Lilo geladen. Wichtig ist natürlich noch, dass auch das entsprechende Filesystem der USB-Platte fix im Kernelimage sitzt.

Ob man bei anderen Linux-Distributionen mit solch Grundsätzlichem überhaupt in Berührung kommt weiß ich aber nicht. ^^
Bearbeitet von t3mp am 12.08.2008, 16:37

Gex

Oralapostel
Avatar
Registered: Jan 2001
Location: Piefkinesien
Posts: 3376
Ok ich werd dann heut Abend einfach mal ein bisschen herumprobieren :)
Da es bestimmt nicht auf Anhieb funktioniert, melde ich mich wieder :D

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
Sodala, da wurde ja schon viel verzapft in diesem Thread.

Wegen dem kernel:
Du musst sowohl den usb treiber, als auch den filesystemtreiber dem kernel bereitstellen, du kannst entweder die module fix in den kernel kompilieren, oder in ein initrd image legen.

Wegen bootloader:
Du musst "/" beim booten angeben ich würd dir raten die root partition per UUID anzugeben, weil du dann keine Probleme mit usb sticks oä hast.

Und noch allgemein usb 1.1 ist SEHR langsam, deswegen würde ich das ganze schon mal bleiben lassen. Alternativ kannst du dir überlegen, obs nicht eine option wäre das root filesystem einfach über nfs zu mounten.

Oder wenn dus ganz ganz ganz flippig haben willst schau dir coreboot an. ;)

Gex

Oralapostel
Avatar
Registered: Jan 2001
Location: Piefkinesien
Posts: 3376
Ich hab's jetzt mit dem aktuellen Debian netinst-iso gemacht und was soll ich sagen - es hat absolut problemlos funktioniert :cool:
Aber ich werde das System noch etwas abspecken, damit's wenigstens ein klein wenig flotter geht ;)

Also euch allen vielen Dank!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz