Hi Steffen,
On Tue, Apr 17, 2007 at 10:35:09 +0200, Steffen Kowalski wrote:
Kernelintern gibt es da nichts, aber es gibt unterschiedliche Methoden, wie man eine initiale Ramdisk anfassen kann und von dort aus aufs eigentliche Rootfilesystem wechselt:
Das ist mir alles neu. Wie initialisiert man eigentlich die drei Methoden? Ich vermute es wird ein fall back von Variante 3 ueber 2 zu 1 durchgef?hrt?
Nein. Jede Methode ist durch Kernel-Bootparameter und Aufbau der initrd bestimmt. Das Problem ist eher, dass jeder Distributor seine eigenen Vorstellungen vom Aufbau und Ablauf der initrd hat.
Wenn der Rootfilesystemwechsel ausgelassen wird, 'sieht' man dann dann den Root-Mount-Point (in der Art /dev/ram0 on /)? Ich habe hier folgende Ausgabe:
root@c17:~# mount proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620)
Die Ausgabe von "mount" ist nicht immer aussagekraeftig, da dort nur der Inhalt von /etc/mtab ausgewertet wird. Diese Datei muss vom Userspace aktuell gehalten werden (normalerweise von /bin/mount und /bin/umount), gibt also nicht zwingend den Ist-Zustand der Mounts wieder. Mit "cat /proc/mounts" kommt die Information direkt aus dem Kernel. Allerdings ist der /proc/mounts-Eintrag bzgl. Rootfilesystem nicht besonders informativ:
rootfs / rootfs rw 0 0
Jedenfalls ist in Methode 1 und 2 /dev/ram0 auf / gemountet. In Methode 3 (ramfs) gibt es kein explizites Blockdevice. Das gibt es bei ramfs und tmpfs prinzipiell nicht. Siehe auch /usr/src/linux/Documentation/filesystems/tmpfs.txt
Gruss, Chris