1

Я пытаюсь сделать файловую систему только для чтения (Raspbian). Одним из распространенных способов является размещение некоторого каталога (который должен быть доступен для записи) в tmpfs.

Например, я нашел несколько уроков, которые предлагают:

rm -rf /var/lib/dhcp/ /var/run /var/spool /var/lock
ln -s /tmp /var/lib/dhcp
ln -s /tmp /var/run
ln -s /tmp /var/spool
ln -s /tmp /var/lock

и в /etc/fstab:

tmpfs           /tmp            tmpfs   nosuid,nodev            0       0
tmpfs           /var/log        tmpfs   nosuid,nodev            0       0
tmpfs           /var/tmp        tmpfs   nosuid,nodev            0       0

насколько я понимаю:

  • /var/lib/dhcp/ , /var/run , /var/spool и /var/lock являются символической ссылкой на /tmp который монтируется как tmpfs
  • но /var/log и /var/tmp монтируются на отдельных tmpfs

Почему вы не можете смонтировать просто /tmp как tmpfs и symlink там все остальные каталоги?

1 ответ1

0

Хотя единственного правильного подхода не существует, один из лучших - это вариант, предложенный xenoid: mount /tmp as tmpfs и создание там подкаталогов с соответствующими разрешениями. Затем свяжите соответствующие подкаталоги /var с этими.

В общем, вероятно, не стоит монтировать несколько временных файловых систем, если вы вручную не укажете их размер. По умолчанию (согласно man tmpfs) каждый получит половину доступного объема ОЗУ. Ваш пример будет использовать в общей сложности 87,5% от любой свободной памяти во время монтирования, и каждый последующий экземпляр будет вдвое меньше предыдущего. Это очень странная вещь.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .