ฉันเคยเห็นระบบ Linux หลายระบบซึ่งแทนที่จะเป็นโหนดอุปกรณ์จริง (ตัวอย่าง/dev/sda1
:) อุปกรณ์รูทปรากฏเป็น/dev/root
หรือแทนที่จะเป็นระบบไฟล์จริงmtab
กล่าวว่าเป็นระบบไฟล์ที่เรียกว่าrootfs
(ซึ่งปรากฏเป็นระบบไฟล์จริงในระบบ/proc/filesystems
แต่ ไม่มีรหัสใน<linux-kernel-source-tree>/fs
) ยูทิลิตี้ต่างๆถูกสร้างขึ้นเพื่อใช้คุณลักษณะบางอย่างเพื่อกำหนดโหนดอุปกรณ์รูทจริง (เช่น rdev และ Chromium OS rootdev) ฉันไม่สามารถหาคำอธิบายที่เป็นตรรกะเกี่ยวกับเรื่องนี้ได้นอกจากอ่านที่ใดที่อุปกรณ์ฝังตัวขนาดเล็กมากไม่จำเป็นต้องมี/dev
โหนดอุปกรณ์สำหรับอุปกรณ์รูท (เป็นจริงหรือไม่และถ้าเป็นเช่นนั้นคือคำตอบสำหรับคำถามของฉัน) ทำไมบางครั้ง mtab พูด/dev/root
(และฉันคิดว่าฉันอาจเคยเห็นมันพูดrootdev
หนึ่งครั้ง) แทนที่จะเป็นโหนดอุปกรณ์จริงและฉันจะทำให้มันพูดเสมอว่าโหนดอุปกรณ์จริงได้อย่างไร เคอร์เนลม้าแรกอุปกรณ์รากดังต่อไปนี้root
พารามิเตอร์ใน cmdline แล้วinit/systemd
อีกครั้งที่เมาท์มันเป็นไปตามfstab
ถูกต้องหรือไม่ ถ้าเป็นเช่นนั้นผมเข้าใจรักษาฉันสังเกตเห็นว่าinit
mtab
หากทฤษฎีของฉันถูกต้องฉันจะinit
เขียนโหนดอุปกรณ์รูทจริงได้mtab
อย่างไร /etc/mtab
จริง ๆ แล้วเป็นการเชื่อมโยงสัญลักษณ์/proc/mounts
ซึ่งจะหมายถึงmtab
ถูกดูแลโดยเคอร์เนล ดังนั้นฉันจะกำหนดค่า / แก้ไขเคอร์เนลได้อย่างไรแทนที่จะบอกว่ารูทอุปกรณ์ของรูทอุปกรณ์คือ/dev/root
มีmtab
โหนดอุปกรณ์จริงอยู่หรือไม่
mount
ให้rootfs on / type rootfs (rw)
สำหรับ initrd และ/dev/root on / type ext2 (rw,relatime,block_validity,barrier,user_xattr)
ext2 ฮาร์ดดิสก์ด้วยการตั้งค่านี้