LINUX.ORG.RU

Как правильно /tmp в tmpfs сделать в debian

 , ,


0

1

Внезапно обнаружил, что такое ощущение, что поломали этот момент в дистре.

Прописал в /etc/fstab

tmpfs /tmp tmpfs defaults,nodev,nosuid,size=4G 0 0

При перезагрузке возникают ошибки и корень монтируется в ro, похоже какой-то конфликт. Пришлось убрать запись.

systemctl enable tmp.mount - нет такого модуля вообще.

Оказывается, его удалили из-за ошибок, так как при старте кому-то нужно /tmp до монтирования в tmpfs https://lists.debian.org/debian-user/2015/11/msg01021.html

Ну и как?

★★★★★

Выяснил, что просто mount на уже загруженной системе нормально отрабатывает и /tmp становится tmpfs

Стал искать как в автозагрузку это поместить. Как же все стало непросто...

/etc/rc.local теперь нет и не работает

crontab -e с @reboot теперь работает только на перезагрузку, а после отключения питания не срабатывает

в итоге создал сервис в /etc/systemd/system/ назвал его tmpmount.service

#cat /etc/systemd/system/tmpmount.service
[Unit]
Description=Mount tmpfs on /tmp

[Service]
ExecStart=-/bin/mount -t tmpfs -o size=4G,nr_inodes=100K,mode=1777,nosuid,nodev,rw,relatime tmpfs /tmp
Type=oneshot
RemainAfterExit=no

[Install]
WantedBy=multi-user.target

Затем

systemctl daemon-reload
systemctl enable tmpmount

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

Вот так пришлось повозиться вместо просто редактирования /etc/fstab

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

Но может есть более прямой способ?

Кстати, забыл упомянуть, помогла подсказка https://askubuntu.com/questions/814/how-to-run-scripts-on-start-up/719157#719157 ) - там не про tmpfs, а про автозагрузку

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 2)

Не нужно , вот cache же есть и норм , зачем по наплодили /tmp и /var/tmp это какой то нелепый ход копировать с винды

anonymous
()

Оказывается, его удалили из-за ошибок, так как при старте кому-то нужно /tmp до монтирования в tmpfs

Там по ссылке написано, что миграция со старых систем делает: копирует tmp.mount из /usr/share.

i-rinat ★★★★★
()

Самая первая и очевидная ошибка: ты забыл опцию mode=1777

/tmp должна иметь sticky-bit чтобы всё работало правильно. Остальное, что тебе наговорили-- ересь.

unanimous ★★★★★
()
Ответ на: комментарий от unanimous

/tmp должна иметь sticky-bit чтобы всё работало правильно

да ладно

grep '/tmp' /etc/fstab && mount|grep '/tmp' && systemctl list-units|grep '/tmp'
tmpfs                                      /tmp                                                                tmpfs   defaults                0 0
tmpfs                                      /var/tmp                                                            tmpfs   defaults                0 0
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /var/tmp type tmpfs (rw,relatime)
tmp.mount                                                                                 loaded active mounted   /tmp                                                                       
var-tmp.mount                                                                             loaded active mounted   /var/tmp                                                                   

novitchok ★★★★★
()
Ответ на: комментарий от anonymous

Они были, наверное и ранее винды. Так или иначе, поскольку есть приложения, которые туда пишут, в tmpfs есть смысл.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Из debian (и кажется из убунту) вообще выпилили tmp.mount. И написано, что из-за циклических зависимостей.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от unanimous

/tmp должна иметь sticky-bit чтобы всё работало правильно. Остальное, что тебе наговорили-- ересь.

Оно как бы и без него на старой системе работало. Но может ты прав и банально из-за этого ломалась загрузка.. Попробую попозже проверить этот эффект.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от novitchok

Ключевое слово — «правильно». А у тебя — «и так сойдёт». /var/tmp по стандарту не должен терять содержимое при выключении.

anonymous
()
Ответ на: комментарий от praseodim

Его убрали из /lib/systemd/system, но оставили копию в /usr/share/systemd/tmp.mount. Раньше /tmp в tmpfs настраивалось в /etc/default/tmpfs, поэтому во время апгрейда из старых версий tmp.mount копируется в /lib/systemd/system, если RAMTMP был включен.

Это же в тексте по твоей ссылке написано.

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

/var/tmp по стандарту не должен терять содержимое при выключении

На деесктопе там нет ничего, что было бы необходимо сохранять при ребуте

Deleted
()
Ответ на: комментарий от funky

Да просто создать и exec-бит включить.

YAR ★★★★★
()

AFAIK, не нужно ничего в fstab добавлять, достаточно указать «RAMTMP=yes» в /etc/default/tmpfs.

anonymous
()
Ответ на: комментарий от anonymous

Таким образорм tmpfs подключался когда-то давно. Сейчас этого файла даже нет по указанному пути.

praseodim ★★★★★
() автор топика
29 июня 2020 г.
Ответ на: комментарий от praseodim

ubuntu 20.04

# cp /usr/share/systemd/tmp.mount /etc/systemd/system/
# systemctl enable tmp.mount
blackmoth
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.