У меня есть сервер CentOS 6.9.
Полный /etc
каталог находился под контролем версий.
Я случайно запустил "git rm -R". Сервер сразу перестал работать, у меня пропала сессия ssh.
Мне удалось подключить ip-консоль к серверу и загрузиться с USB с помощью live linux, я запустил 'git reset --hard'
.
Теперь индекс / рабочий каталог чист. Я перезагрузил систему, но она по-прежнему не работает. он отвечает на пинг, но я все еще не могу подключиться к нему по ssh.
На IP-консоли я даже не могу войти в систему после ввода любого пользователя, и он снова запрашивает пользователя.
Из рекавери linux проверил ошибки в /var/log/boot.log
- первая ошибка касается iptables-restore
error while loading shared libraries libip4tc.so.0 : cannot open shared object file: No such file or directory
Далее идет rsyslog.d
CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'
Файл явно там, если я проверю из рекавери live linux. Я подозреваю некоторую проблему с разрешением, но на самом деле понятия не имею.
Любая помощь приветствуется. Спасибо.
Вероятно, неправильные права собственности и разрешения. Поскольку вы не отслеживали их, вам придется исправить их вручную для каждого файла.
Сам по себе git не отслеживает владение и права доступа к файлам. Это не то, для чего это нужно. Эти метаданные вообще не отслеживались и поэтому были потеряны.
Это то, что любят системы etckeeper для. Они оборачиваются вокруг мерзавца, чтобы /etc
в управлении версиями, сохраняя при этом метаданные, которых нет в git, и при необходимости восстанавливая их. Чтобы этого не произошло в будущем, рассмотрите возможность использования etckeeper или аналогичного инструмента.
Вы также можете создать какие-то резервные копии. В настоящее время у вас нет никаких резервных копий, и это верный путь к катастрофе. Вам посчастливилось сбежать с такой небольшой потерей данных, как и у вас. В следующий раз тебе может не повезти.
Да, у вас есть проблема с разрешением и владением файлом. К сожалению git хранит только содержимое и исполняемый бит файла, поэтому разрешения на чтение и запись, права собственности пользователей и групп, а также списки управления доступом, если таковые имеются, теряются при восстановлении из git reset --hard
. Этого более чем достаточно, чтобы сломать ваш хост, когда восстанавливается каталог / etc.
Лучшая надежда на восстановление - это полная резервная копия файловой системы, которая будет включать все права собственности на файлы и разрешения.
Если у вас их нет, вы можете попробовать восстановить права собственности и разрешения вручную, сравнив их с аналогичным хостом CentOS. Но переустановка ОС с нуля может оказаться менее трудоемкой. Сожалею.