Сомнения в корневой файловой системе Linux

13

В моем понимании термин «корневая файловая система» неоднозначен, он на самом деле относится к двум различным вещам. Одним из них является абсолютно минимальная файловая система, необходимая для выполнения настройки системы вместе с ядром. Он содержит некоторые ранние программы пользовательского пространства, которые выполняют обнаружение оборудования, загрузку модулей, обнаружение устройств и так далее. Эта файловая система часто упоминается как «rootfs». Другая - это настоящая корневая файловая система. Он может находиться на локальном диске или на удаленном сервере (для систем, которые поддерживают загрузку из Ethernet).

Я исследовал несколько дистрибутивов Linux с помощью команды mount. Некоторые имеют в результате «rootfs on / type rootfs», а другие нет. И все они имеют что-то вроде '/ dev / sdaX on / type extX'.

Мне интересно, был ли изменен механизм или просто отключены rootfs для тех, у кого нет rootfs в / type rootfs.

Я пытался найти ответ по вики и гуглу, но в конечном итоге запутался.

Кто-нибудь может мне помочь?


источник

Ответы:

16

Команда mountполучает информацию о текущих монтировках из /etc/mtab.

В прошлом , mtabбыл обычный файл воссозданной после каждой загрузки и обновляется mountкомандой - поэтому он не будет иметь rootfs /запись просто потому , что корневой файловой системы никогда не явно установлен ; это всегда существует. (Такое mtabиногда также имеет повторяющиеся записи или записи для файловых систем, которые больше не монтируются ...)

Многие современные дистрибутивы Теперь символическая ссылка mtabна /proc/self/mounts, который (как и все остальное в / Proc) находится непосредственно генерируется ядром . Из-за этого он всегда показывает все, что установлено в данный момент, включая оба rootfs /и /dev/blah /.

Вы можете использовать cat /proc/self/mountsна всех дистрибутивах, чтобы сравнить крепления. (Там также есть /proc/self/mountinfo, который использует несовместимый синтаксис, но добавляет больше деталей.)

user1686
источник
+1 за / proc материал, о котором я не знал.
Джо