Когда монтировать / tmp (и другие временные каталоги)

Когда настало время монтировать /tmp (на Debian)? Для /home я бы не чувствовал себя плохо, просто чтобы echo "/dev/foo /home type defaults 0 0" >>/etc/fstab – но могу ли я быть уверенным, что /tmp не используется никакими программами при применении fstab ?


Я использую либо Ubuntu, либо простой Debian или Debian / Grml – это не будет иметь большого значения.

То, что я прочитал до сих пор:

  • Интернет полон советов, чтобы просто добавить tmpfs /tmp tmpfs <optionns> 0 0 – но я не уверен.

  • Я нашел этот ответ о том, что делать, когда /tmp без перезагрузки (вкратце: лучше всего перезагрузиться, за исключением, возможно, для монтирования соединения).

  • В политике [Deban] не указывается, где добавить mount, или когда может произойти первый доступ к /tmp . Более полезными являются /etc/init.d/README и /etc/rcS/README на моем Ubuntu ( читайте их в Интернете ).

Предпосылки: я собираюсь использовать некоторый колорит Debian на моем нетбуке (без HD, 8 ГБ SSD, 1 ГБ ОЗУ – удвоит оперативную память при необходимости). Я не помню память. Некоторые задачи слишком медленные (создание средних программ C или компиляция PDF из TeX берут 5+ сеансов), но они не теряют времени на tmpfs. Я хочу установить tmpfs на / tmp, чтобы ускорить их.

4 Solutions collect form web for “Когда монтировать / tmp (и другие временные каталоги)”

Это явно не указано политикой Debian, но Debian поддерживает создание /tmp отдельной файловой системы (а также /home , /var и /usr ). Это традиционно поддерживается системами unix. И я могу подтвердить, что создание /tmp файловой системы tmpfs и установка ее автоматически через /etc/fstab , работает на Debian.

Есть некоторые трудности при переходе на /tmp на tmpfs в живой системе из-за файлов, которые уже находятся в /tmp и не могут быть скопированы. Но ни один файл в /tmp не будет сохранен во время перезагрузки. Безопасно монтировать другую файловую систему в /tmp во время монтирования разделов в /etc/fstab .

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

Чтобы / tmp не использовался:

  1. Когда / tmp – смонтированная файловая система, fuser -m /tmp проверяет, что в настоящее время ни один процесс не использует точку монтирования, прежде чем изменять ее.
  2. Когда / tmp не является отдельной файловой системой, find /tmp -print0 | xargs -0 fuser find /tmp -print0 | xargs -0 fuser даст вам аналогичные результаты.

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

tmp не следует использовать для постоянных данных

LSB (стандартная база Linux) определяет в FHS (FilesystemHierarchyStandard) 2.3, что

«Программы не должны предполагать, что любые файлы или каталоги в / tmp сохраняются между вызовами программы».

Как отметил Гилл, это могут быть сокеты для запуска программ. Большинство из этих программ являются возможными сетевыми услугами, расположенными на уровне 2 или 3 уровня.

Чтобы получить подробную информацию о вашей системе:

cd /etc/init.d ; grep tmp * cd /etc/init.d ; grep tmp * должен показывать использование tmp во время загрузки.

Сделайте дополнительный grep mktemp * для поиска более высокого уровня использования tmp.

Каждая программа должна использовать tmp только очень коротко.

На вашей рабочей системе сделайте fuser /tmp/* ; fuser /tmp/*/* fuser /tmp/* ; fuser /tmp/*/* и т. д., чтобы проверить запуск запущенных процессов tmp.

Кроме того, файл / etc / fstab должен быть стандартным местом для установки файловых систем – почему вы не должны добавлять его с помощью «1 2»?

/etc/fstab используется только тогда, когда что-то запускается.

Три раза, о которых я могу думать:

  • во время загрузки системы (в системе Debian это происходит во время загрузки через /etc/rcS.d/S10mountall.sh )
  • когда суперпользователь запускает mount -a
  • когда суперпользователь запускает mount <mount point mentioned in /etc/fstab>

Если вы говорите, что хотите создать новые tmpfs для программ, которые собираетесь запускать, но без перезагрузки, я думаю, вам придется подключить их где-то, кроме /tmp чтобы вы не нарушали уже запущенные программы ,

Почему не просто

 mkdir /tmpnew mount -t tmpfs tmpfs /tmpnew TMPDIR=/tmpnew make... 
  • В чем разница между / tmp и / var / tmp?
  • bash: Некоторая проблема при использовании read <<< "$ VARIABLE" в корневом разделе только для чтения. Любые известные обходные пути?
  • Защита / tmp на OpenVZ
  • Как я могу безопасно создавать и получать доступ к временным файлам из сценариев оболочки?
  • Можете ли вы перемонтировать / tmp-раздел на exec во время работы?
  • Как сделать временный файл в ОЗУ?
  • Почему `systemd-tmpfiles -clean` не работает?
  • Msgstr "bash: невозможно создать временный файл для здесь-документа: на устройстве нет места"
  • Почему root утрачивает разрешение символической ссылки 1-го и 2-го уровней?
  • Где должны быть созданы сгенерированные скрипты в файловой системе?
  • Вчера я совершил ошибку, которая случайно удалила 1800 ГБ моего Файлового сервера
  • Linux и Unix - лучшая ОС в мире.