Moin
Mal so als Hintergrund: mich nervt die Platte meines Laptop
tierisch.
Irgendwo gab’s ein Laptop-HowTo. Das hast Du gelesen?
Ja, klar. Das läst die Platte alle 5 min hochdrehen. Das blockiert wiederrum den Rechner für 2-3 Sekunden. Was mich wiederrum nervt. Noch schlimmer nervt mich das ständige Gesäusel der Platte. Also muss die Platte lange aus bleiben.
Verstehe ich das richtig: Dein /lib ist 430MB gross? Wie hast
Du das denn geschafft?
Da waren ein paar Modul-Sätze zuviel drin. Bin um 350 MB runter…
Und /lib/modules ist nur so fett,
weil das LKMs von fuenf Generationen rumliegen.
4 Generationen waren bei mir schon genug.
In meiner initrd ist alles drin was man für den Stunt mit /lib
und /opt braucht. Allerdings bin ich nicht sicher ob das
System sowas auf Dauer überlebt. Sprich: was passiert wenn
z.B. fsck mal einen Fehler auf / findet ? Ich muss ja schon in
der initrd-phase auf / schreibend zugriefen.
_Normalerweise_ kannst Du das gar nicht.
Wir reden über Linux. Geht nicht gibts nicht.
Was Du da jetzt noch
dran rumgebaut hast weiss ich freilich nicht.
Nur /sbin/init aus dem initrd-image.
G’na. Du hast das Grundprinzip nicht verstanden. Schon der
Kernel mountet / immer. Genaugenommen mountet er das device,
was ihm an den zwei Bytes am offset 508 mit major und minor
eingebrannt ist (man 8 rdev) oder per root=-Parameter
uebermittelt wurde.
Ich übermittle per Bootpara ein initrd-image. Und in dem steht ein Skript das das eigentliche / mounted. Und kurz bevor das Skript die 2 Systeme per pivot_root austauscht bau ich an / rum. Und zwar VOR dem fsck-check. Und das macht mir Sorgen.
Das koennen auch major/minors fuer eine
ramdisk oder ein NFS-root sein. Anschliessend wird /sbin/init
gestartet (linux/init/main.c fast ganz unten). Ab da ist der
Kernel raus aus dem Spiel und init kuemmert sich dann um
inittab und die init-Skripte. Im Falle einer ramdisk sind die
Skripte eher einfach und meistens wird irgendwann ein
pivot_root(8) ausgefuehrt um das rootfs zu wechseln. Man kann
natuerlich auch in der ramdisk bleiben und zusaetzliche
Dateisysteme ranholen. Nach dem pivot_root wird meist an das
/sbin/init des neuen rootfs uebergeben. Und das remountet /
irgendwann rw (nach dem fsck).
Also im Klartext: wenn ich schon beim Ausführen vom /sbin/init des initrd rw-Zugriff auf / braucht „muss“ ich das fsck vor dem pivot_root machen ? D.h. ich müsste fsck in intrd installieren oder mit chroot arbeiten. hmmm… das bekomm ich irgendwie hin.
Evtl. kann Dir dieser Link gefallen:
Ich less es bei Gelegenheit durch.
Pack Dein ganzes / einschliesslich /lib in die Ramdisk.
1GB RAM vs 8GB / … past nicht, auch nicht mit squashfs.
Nachdem in /etc/init.d/checkroot.sh aufgerufen wurde.
also wir ddoch ein ro-gemountetes fs durch fsck gejagt ?
Natuerlich. Alles andere waere suizid.
Ich dachte immer fsck’en eines gemounteten System, egal ob ro oder rw, wäre tödlich.
cu