Не видя вашей системы, очень сложно точно сказать, в чем проблема. Комментарии и предыдущие ответы — хорошее начало.
Тем не менее, я бы вернулся к вики debian, где описаны предварительные требования для монтирования/только для чтения.
Ссылка на документацию здесь:https://wiki.debian.org/ReadonlyRoot
Большой я проведу тебя здесь:
1 -в / есть определенные места, которые должны быть прочитаны и записаны.Судя по документации, это выглядит примерно так:
ваши блочные устройства, вероятно, будут отличаться, в зависимости от конфигурации вашего стека хранилища (разделов, lvm без разделов и т. д. )но основная идея заключается в том, что вам нужны эти 4 точки монтирования, чтобы их последующая смонтированная файловая система имеют вариант монтажа RW.
2 -в /etc есть ряд специальных файлов, для которых необходимо либо создать символическую ссылку, либо внести некоторые другие изменения (, подробно описанные в статье по ссылке. ). Они могут применяться или не применяться в зависимости от того, какие приложения работают на вашем Linux-сервере. некоторые файлы могут даже не существовать на вашем компьютере, но я включил все в документы. Имейте в виду, я настоятельно рекомендую внести эти изменения, ДАЖЕ ЕСЛИ вы убили pid процесса. Вот пути прямо из вики Debian:
После того, как вы проверили все вышеперечисленное и подтвердили, что они соответствуют спецификации в вики, следующее, что нужно проверить, это /etc/apt/apt.conf
DPkg {
// Auto re-mounting of a readonly /
Pre-Invoke { "mount -o remount,rw /"; };
Post-Invoke { "test ${NO_APT_REMOUNT:-no} = yes || mount -o remount,ro / || true"; };
};
на основании вашей ошибки,последнее, что вы можете проверить на основе документации, приведено ниже:
«После обновления пакетов вы можете столкнуться с проблемой, что mount отказывается перемонтировать файловую систему только для чтения, сообщая вам «/ занят». Это вызвано удаленными файлами, которые все еще используются процессом.Чтобы узнать, какие процессы используют удаленные файлы, используйте инструмент checkrestart (1 )из пакета debian -или используйте следующую команду.Часто это демоны, использующие обновленные библиотеки. Вы должны перезапустить их, чтобы файлы были освобождены."
Команда
представлена в док.:
{lsof +L1; lsof|sed -n '/SYSV/d; /DEL\|(path /p;'} |grep -Ev '/(dev|home|tmp|var)'
Не зная точной конфигурации вашей файловой системы, разбивки на разделы и конфигурации устройства хранения, трудно дать вам еще что-то для подражания. Я бы начал с того, что вернулся и перепроверил ваши предварительные требования в документации (и изложил выше ).
потому что сначала происходит перенаправление >test.txt
, поэтому файл сначала обрезается, затем cat test.txt
ничего не читается и ничего не передается в | grep "TEST"
и, таким образом, ничего не совпадает и, наконец, ничего не записывается в открытый файлtest.txt