Ich habe auf verschiedenen Linux-Systemen gesehen, dass anstelle des realen Geräteknotens (zum Beispiel :) /dev/sda1
das Root-Gerät als /dev/root
oder anstelle des realen Dateisystems mtab
als Dateisystem bezeichnet wird rootfs
(das als reales Dateisystem in angezeigt wird /proc/filesystems
, aber) hat keinen Code in <linux-kernel-source-tree>/fs
). Es wurden verschiedene Dienstprogramme erstellt, um bestimmte Attribute zu verwenden, um den tatsächlichen Root-Geräteknoten zu bestimmen (z. B. rdev und Chromium OS rootdev). Ich kann keine logische Erklärung dafür finden, außer irgendwo zu lesen, dass sehr kleine eingebettete Geräte nicht immer einen /dev
Geräteknoten für ihr Root-Gerät haben müssen. (Ist das wahr, und wenn ja, ist das die Antwort auf meine Frage?) Warum sagt mtab manchmal /dev/root
(und ich glaube, ich hätte es vielleicht gesehen ?)rootdev
einmal) anstelle des realen Geräteknotens, und wie kann ich dafür sorgen, dass immer der reale Geräteknoten angezeigt wird? Der Kernel stellt das Root-Gerät zuerst gemäß dem root
Parameter in der cmdline bereit und stellt es dann init/systemd
gemäß dem fstab
korrekten? Wenn ja, dann nehme ich an, Mir ist aufgefallen, dass dies init
behauptet mtab
. Wenn meine Theorie korrekt ist, wie kann ich init
den echten Root-Geräteknoten schreiben lassen mtab
? /etc/mtab
tatsächlich eine symbolische Verbindung zu ist /proc/mounts
, was bedeuten würde, mtab
dass der Kernel sie verwaltet. Wie kann ich einen Kernel so konfigurieren / patchen /dev/root
, dass er mtab
den realen Geräteknoten enthält , anstatt zu sagen, dass der Knotenpfad des Root-Geräts lautet ?
mount
gibtrootfs on / type rootfs (rw)
für initrd und/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
für ext2 Festplatte mit diesem Setup .