Saya telah melihat pada berbagai sistem Linux di mana alih-alih simpul perangkat nyata (misalnya /dev/sda1
:), perangkat root muncul sebagai /dev/root
, atau bukannya sistem file nyata, mtab
mengatakan itu adalah sistem file yang disebut rootfs
(yang muncul sebagai sistem file nyata /proc/filesystems
, tetapi tidak memiliki kode di <linux-kernel-source-tree>/fs
). Berbagai utilitas telah dibuat untuk menggunakan atribut tertentu untuk menentukan simpul perangkat root nyata (seperti rdev, dan Chromium OS rootdev). Saya tidak dapat menemukan penjelasan logis untuk ini selain membaca di suatu tempat bahwa perangkat yang tertanam sangat kecil tidak selalu harus memiliki /dev
simpul perangkat untuk perangkat root mereka. (Apakah ini benar, dan jika demikian, apakah itu jawaban untuk pertanyaan saya?) Mengapa mtab kadang-kadang mengatakan /dev/root
(dan saya pikir saya mungkin telah melihatnya mengatakannyarootdev
sekali) bukan node perangkat nyata, dan bagaimana saya bisa membuatnya selalu mengatakan node perangkat nyata? Kernel pertama mount perangkat root mengikuti root
parameter di cmdline, lalu pasang init/systemd
kembali sesuai dengan fstab
, benar? Jika demikian, maka saya kira Saya perhatikan bahwa init
mempertahankan mtab
. Jika teori saya benar, bagaimana saya bisa init
menulis simpul perangkat root yang sebenarnya mtab
? /etc/mtab
sebenarnya itu adalah tautan simbolis /proc/mounts
, yang artinya mtab
dipelihara oleh kernel. Jadi, bagaimana cara mengkonfigurasi / menambal kernel, alih-alih mengatakan path node device root /dev/root
, mtab
mengandung node device sebenarnya?
mount
memberikanrootfs on / type rootfs (rw)
untuk initrd dan/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
untuk hard disk ext2 dengan pengaturan ini .