‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

linux: детский вопрос про дерево каталогов и файловые системы

В линуксе есть папки, откуда мы только запускаем код на исполнение и крайне редко (при апгрейде системы, например, или при установке нового софта) что-то пишем, а то и вовсе никогда не трогаем. Во встроенных системах, ради экономии, это хозяйство заворачивают в romfs и держат на флешке, без шаманизма доступной только в read-only режиме. Но при этом в системе есть так же такие каталоги, которые требуется модифицировать, перезаписывать, создавать в них новые записи и т.п (каталоги /root, /etc, /var, /mnt, /home и т.п.). Т.е. их имеет смысл хранить в той же флешке, но уже в другом разделе, монтируемом в режиме read-write (например, файловая система jffs). Ещё я видел, что делают так: хранят систему в сжатом виде во флешке, а при запуске распаковывают её в ram-диск. Т.е. изменять можно, но изменения не сохраняются при перезагрузке. В такой форме логичнее всего держать (если уж держать) только какие-то временные или вообще виртуальные каталоги, типа /tmp или /dev.

Интересно, существует ли элегантный способ, как в одном дереве каталогов незаметно для пользователя объеденить romfs, jffs и tmpfs. Чтобы получилось нечто такое:
/bin
/sbin
/sys
и прочие подобные каталоги, где системные бинарники и всякие вещи, которые трогать без нужды не следует, лежит в romfs (и НЕ копируются в ram при запуске - ибо нет такой роскоши, как нескончаемые гигабайты быстрой оперативки, но зато есть XIP, поэтому запуск программ оттуда не жрёт оперативку для загрузки кода);
/home
/etc
/root
/mnt
и подобные вещи, где вы мы хотим хранить сохраняемые изменения (и, возможно, код тоже), лежит в jffs (из которой XIP уже не работает, ибо файлы могут быть фрагментированы и физически расположены в беспорядке);
а всё мимолётное-временное, существующее только пока система включена, пусть лежит в воображаемом разделе внутри ram.

В силу врождённого скудоумия, сам я не могу придумать, как такое сделать - ведь чтобы операционке понять, что у неё есть какие-то разные разделы на, возможно, разных носителях, ей нужно сначала прочитать файл /etc/fstab, а если он лежит на каком-то разделе, который мы ещё не подмонтировали, то как его вообще увидеть? Т.е. чтобы подмонтировать раздел, в котором лежит /etc, мы сначала должны прочитать раздел, в котором лежит /etc. Этот парадокс вообще разрешим или я зря надеюсь?
Subscribe

  • Буквально вчера

    Обратите внимание на то, что если мысленно продолжить деревья выше, то они все пересекутся в одной точке. Это - однозначный признак дешёвой…

  • Лосиный остров.

    Рельсы (заброшенная ветка, где-то примерно там я начал путешествие): Малина: ХЗЧТ, чем-то похоже на смородину (?): как картина Шишкина,…

  • Фотографии без сюжета.

    Давеча повстречал в лесу Йожа. На фото его увидеть сложно, но всё-таки можно: Кем-то раздавленная улитка. Ещё живая и пытается ползти. Надеюсь,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 38 comments

  • Буквально вчера

    Обратите внимание на то, что если мысленно продолжить деревья выше, то они все пересекутся в одной точке. Это - однозначный признак дешёвой…

  • Лосиный остров.

    Рельсы (заброшенная ветка, где-то примерно там я начал путешествие): Малина: ХЗЧТ, чем-то похоже на смородину (?): как картина Шишкина,…

  • Фотографии без сюжета.

    Давеча повстречал в лесу Йожа. На фото его увидеть сложно, но всё-таки можно: Кем-то раздавленная улитка. Ещё живая и пытается ползти. Надеюсь,…