Eu já vi em vários sistemas Linux onde, em vez do nó do dispositivo real (por exemplo /dev/sda1:), o dispositivo raiz aparece como /dev/root, ou em vez do sistema de arquivos real, mtabdiz que é um sistema de arquivos chamado rootfs(que aparece como um sistema de arquivos real /proc/filesystems, mas não possui código <linux-kernel-source-tree>/fs). Vários utilitários foram criados para usar determinados atributos para determinar o nó real do dispositivo raiz (como rdev e o rootdev do Chromium OS). Não consigo encontrar uma explicação lógica para isso além de ler em algum lugar que dispositivos embarcados muito pequenos nem sempre precisam ter um /devnó de dispositivo para o dispositivo raiz. (Isso é verdade? Em caso afirmativo, essa é a resposta para minha pergunta?) Por que o mtab às vezes diz /dev/root(e eu acho que posso ter visto isso dizerrootdevuma vez) em vez do nó do dispositivo real, e como posso dizer sempre o nó do dispositivo real? O kernel monta primeiro o dispositivo raiz seguindo o rootparâmetro no cmdline e depois o init/systemdmonta de acordo com o fstab, correto? Se assim for, então eu presumo que Percebi que initmantém mtab. Se minha teoria estiver correta, como posso initescrever o nó do dispositivo raiz real mtab? /etc/mtabé realmente um link simbólico para /proc/mounts, o que significa que mtabé mantido pelo kernel. Então, como configurar / corrigir um kernel para, em vez de dizer que o caminho do nó dos dispositivos raiz é /dev/root, mtabconter o nó do dispositivo real?
mountdárootfs on / type rootfs (rw)para initrd e/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)para disco rígido ext2 com esta configuração .