J'ai vu sur divers systèmes Linux où, au lieu du nœud de périphérique réel (par exemple:) /dev/sda1
, le périphérique racine apparaît comme /dev/root
, ou au lieu du vrai système de fichiers, mtab
dit que c'est un système de fichiers appelé rootfs
(qui apparaît comme un vrai système de fichiers dans /proc/filesystems
, mais n'a pas de code <linux-kernel-source-tree>/fs
). Divers utilitaires ont été créés pour utiliser certains attributs afin de déterminer le véritable nœud de périphérique racine (tel que rdev et Chromium OS rootdev). Je ne peux trouver aucune explication logique à cela autre que de lire quelque part que les très petits périphériques intégrés n'ont pas toujours besoin d'avoir un /dev
nœud de périphérique pour leur périphérique racine. (Est-ce vrai, et si c'est le cas, est-ce la réponse à ma question?) Pourquoi mtab dit-il parfois /dev/root
(et je pense que j'aurais pu le voir direrootdev
une fois) au lieu du nœud de périphérique réel, et comment puis-je toujours dire le nœud de périphérique réel? Le noyau monte d'abord le périphérique racine en suivant le root
paramètre dans la ligne de commande, puis le init/systemd
remonte en fonction de la fstab
, correct? Si c'est le cas, je présume que le J'ai remarqué qu'il init
maintien mtab
. Si ma théorie est correcte, comment puis-je faire init
écrire le vrai nœud de périphérique racine mtab
? /etc/mtab
s'agit en fait d'un lien symbolique vers /proc/mounts
, ce qui signifierait qu'il mtab
est maintenu par le noyau. Alors, comment puis-je configurer / patcher un noyau pour, au lieu de dire que le chemin du nœud des périphériques racine est /dev/root
, mtab
contenir le véritable nœud du périphérique?
mount
donnerootfs on / type rootfs (rw)
pour initrd et/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
pour ext2 disque dur avec cette configuration .