Я сделал sudo mv / tmp / var / lib / apt / lists
, не понимая, что он переместит всю папку, а не только ее содержимое.
С тех пор я делаю (как предлагалось в Случайно удалила папку tmp )
sudo mkdir -m 1777 /tmp
при запуске, но через некоторое время она снова исчезает. Что я могу сделать? как я могу это отладить?
Похоже, что / tmp
переименован в /snapshot.0
(или с более высоким индексом, если другие снимки уже существуют).
Перезапуск не решает эту проблему. Но завершение работы без / tmp
тоже не проблема, при запуске появляется новый / tmp
.
Однако через 4 минуты он переименовывается в другой снимок.
В настоящее время я выполняю sudo mv /snapshot.0 / tmp
всякий раз, когда / tmp
исчезает.
Я запускаю компьютер (как мы увидим, / tmp
все еще там, по-видимому, он пережил перезапуск) и открываю терминал, на котором выполняю:
$ while true; do
t=$(date +%H:%M:%S); #timestamp as hour minute seconds
date;ls -lt / | head -3; print out date and most recent folders in /
ls -l /tmp > ~/Desktop/ls.tmp.log.${t};
ls -l /snapshot.0 > ~/Desktop/ls.snap.log.${t};
sleep 60;
done;
Я больше ничего не делаю! войдите в терминал:
Di 23. Jun 19:44:12 CEST 2020
total 2097264
drwxrwxrwt 18 root root 4096 Jun 23 19:44 tmp
drwxr-xr-x 34 root root 1000 Jun 23 19:42 run
ls: cannot access '/snapshot.0': No such file or directory
Di 23. Jun 19:45:12 CEST 2020
total 2097264
drwxrwxrwt 18 root root 4096 Jun 23 19:44 tmp
dr-xr-xr-x 13 root root 0 Jun 23 19:44 sys
ls: cannot access '/snapshot.0': No such file or directory
Di 23. Jun 19:46:12 CEST 2020
total 2097264
drwxrwxrwt 18 root root 4096 Jun 23 19:44 tmp
dr-xr-xr-x 13 root root 0 Jun 23 19:44 sys
ls: cannot access '/snapshot.0': No such file or directory
Di 23. Jun 19:47:12 CEST 2020
total 2097264
drwxrwxrwt 18 root root 4096 Jun 23 19:44 tmp
dr-xr-xr-x 13 root root 0 Jun 23 19:44 sys
ls: cannot access '/snapshot.0': No such file or directory
Di 23. Jun 19:48:12 CEST 2020
total 2097264
drwxrwxrwt 18 root root 4096 Jun 23 19:44 tmp
dr-xr-xr-x 13 root root 0 Jun 23 19:44 sys
ls: cannot access '/snapshot.0': No such file or directory
Di 23. Jun 19:49:13 CEST 2020
total 2097264
drwxrwxrwt 18 root root 4096 Jun 23 19:48 snapshot.0
dr-xr-xr-x 13 root root 0 Jun 23 19:44 sys
ls: cannot access '/tmp': No such file or directory
Итак, в течение 5 минут / tmp был переименован в /snapshot.0.
нет разницы между ls.tmp.log.19: 4 [4-8]: 12 Также нет разницы между ls.tmp.log.19:48:12
и ls.snap.log.19: 49: 13
, поэтому он не может быть содержимым / tmp
.
Пока я надеялся на решение, которое сделает вещи такими, какими они были раньше (без переустановки системы), предложение Гиоргоса Саридакиса символических ссылок действительно работает помогает много. Однако я все еще не могу запустить системный монитор:
$ gnome-system-monitor
cannot create temporary directory for the root file system: Permission denied
, несмотря на то, что у меня установлены все разрешения:
$ ls -lt /
total 2097264
drwxrwxrwt 8 root root 4096 Jun 27 15:21 snapshot.0
-rw-r--r-- 1 root root 0 Jun 27 15:10 lifesign
...
lrwxrwxrwx 1 root root 11 Jun 23 22:12 tmp -> /snapshot.0
Думаю, мне все-таки придется написать демона ...
Я написал сценарий:
#!/bin/bash
while true;
do
if [ ! -d "/tmp" ];
then mv /snapshot.0 /tmp 2>> /home/t/tmp.rename.bg.err;
date >> /home/t/tmp.rename.bg.log;
fi;
sleep 10;
done
то есть выполняется с
sudo bash tmp.rename.sh &
после входа в систему. Это не идеально, но мне пока не нужно писать демонов.
Просто удалите создать один после загрузки и сделайте новый каталог tmp следующим образом:
sudo mkdir -m 1777 /tmp
chown root:root /tmp
здесь -m называется режимом создания каталога,, который Установите для битов разрешений на доступ к файлам вновь созданного каталога указанное значение режима.
После выполнения приведенной выше команды, теперь выполните команду ниже, чтобы проверить разрешения каталога.
ls -ld /tmp
Похоже, вы наткнулись на постоянную часть ядра, я считаю, что это не может быть решено должным образом.
Если нет желания переустанавливать всю систему, почему бы вам не попробовать создать символическую (или жесткую) ссылку с /snapshot.0 на /tmp:
sudo ln -s /snapshot.0 /tmp
Если это не сработает, я бы сделайте небольшой демон, чтобы постоянно проверять, есть ли /tmp, и создавать его, если он не найден (возможно, с разрешениями блокировки).
Трудная ситуация, сочувствую :)