Widziałem na różnych systemach Linux, w których zamiast rzeczywistego węzła urządzenia (na przykład /dev/sda1
:), urządzenie root pojawia się jako /dev/root
, lub zamiast prawdziwego systemu plików, mtab
mówi, że jest to system plików o nazwie rootfs
(który pojawia się jako prawdziwy system plików /proc/filesystems
, ale nie ma kodu <linux-kernel-source-tree>/fs
). Wprowadzono różne narzędzia do korzystania z niektórych atrybutów w celu określenia rzeczywistego węzła urządzenia głównego (takiego jak rdev i rootdev systemu operacyjnego Chromium). Nie mogę znaleźć logicznego wytłumaczenia tego innego niż przeczytanie gdzieś, że bardzo małe urządzenia wbudowane nie zawsze muszą mieć /dev
węzeł urządzenia dla swojego urządzenia root. (Czy to prawda, a jeśli tak, czy to odpowiedź na moje pytanie?) Dlaczego czasami mtab mówi /dev/root
(i myślę, że mogłem to zobaczyćrootdev
raz) zamiast rzeczywistego węzła urządzenia i jak mogę sprawić, by zawsze mówił prawdziwy węzeł urządzenia? Jądro najpierw montuje urządzenie root zgodnie z root
parametrem w cmdline, a następnie init/systemd
montuje je ponownie zgodnie z fstab
, prawda? Jeśli tak, to zakładam, że Zauważyłem, że init
utrzymuje mtab
. Jeśli moja teoria jest poprawna, jak mogę init
napisać do prawdziwego węzła urządzenia głównego mtab
? /etc/mtab
tak naprawdę jest to dowiązanie symboliczne /proc/mounts
, co oznacza mtab
, że jądro utrzymuje je. Jak więc skonfigurować / załączyć jądro, aby zamiast mówić, że ścieżka do węzła urządzeń głównych /dev/root
ma mtab
zawierać rzeczywisty węzeł urządzenia?
mount
dajerootfs on / type rootfs (rw)
dla initrd i/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
dla dysku twardego ext2 przy tej konfiguracji .