He visto en varios sistemas Linux donde, en lugar del nodo del dispositivo real (por ejemplo:) /dev/sda1
, el dispositivo raíz aparece como /dev/root
, o en lugar del sistema de archivos real, mtab
dice que es un sistema de archivos llamado rootfs
(que aparece como un sistema de archivos real /proc/filesystems
, pero no tiene código <linux-kernel-source-tree>/fs
) Se han hecho varias utilidades para usar ciertos atributos para determinar el nodo del dispositivo raíz real (como rdev y el rootdev del sistema operativo Chromium). No puedo encontrar ninguna explicación lógica para esto que no sea leer en algún lugar que los dispositivos integrados muy pequeños no siempre tienen que tener un /dev
nodo de dispositivo para su dispositivo raíz. (¿Es esto cierto, y si es así, es esa la respuesta a mi pregunta?) ¿Por qué mtab a veces dice /dev/root
(y creo que podría haberlo visto decirrootdev
una vez) en lugar del nodo del dispositivo real, y ¿cómo puedo hacer que siempre diga el nodo del dispositivo real? El núcleo primero monta el dispositivo raíz siguiendo el root
parámetro en la línea de cm, luego lo init/systemd
vuelve a montar de acuerdo con el fstab
, ¿correcto? Si es así, supongo que se Noté que en init
mantiene mtab
. Si mi teoría es correcta, ¿cómo puedo init
escribir en el nodo del dispositivo raíz real mtab
? /etc/mtab
realidad es un enlace simbólico /proc/mounts
, lo que significaría que mtab
el núcleo lo mantiene. Entonces, ¿cómo configuro / parcheo un núcleo para que, en lugar de decir que la ruta del nodo del dispositivo raíz sea /dev/root
, mtab
contenga el nodo del dispositivo real?
mount
darootfs on / type rootfs (rw)
para initrd y/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
para disco duro ext2 con esta configuración .