Я бачив у різних системах Linux, де замість реального вузла пристрою (наприклад /dev/sda1:) кореневий пристрій з'являється як /dev/root, або замість реальної файлової системи, mtabкаже, що це називається файлова система rootfs(яка з'являється як реальна файлова система в /proc/filesystems, але не містить коду в <linux-kernel-source-tree>/fs). Різні утиліти були використані для використання певних атрибутів для визначення реального вузла кореневого пристрою (наприклад, rdev та rootdev Chromium OS). Я не можу знайти жодного логічного пояснення цьому, крім того, щоб десь прочитати, що дуже маленькі вбудовані пристрої не завжди повинні мати /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 з цією установкою .