Я просто случайно запустил rm /*, какое-нибудь исправление?

Я упал настолько глупо...

Я просто случайно запустил rm /*, но имел в виду rm ./* на облачном сервере с доступом с правами root.

Теперь ни одна команда не работает. ls, ssh, sftp... нет.

Есть ли способ это исправить? (Примечание: такие параметры, как -r или -f в этом случае не используются).

4 ответа

Решение

Восстановить из резервной копии.

В зависимости от файловой системы вы можете запустить утилиту восстановления или восстановления, но, вероятно, проще и надежнее просто восстановить ее из резервной копии.

Резервное копирование, вероятно, является лучшим решением проблемы, однако, если по какой-либо причине это невозможно, существуют методы, которые могут помочь восстановить удаленные файлы из разделов ext3 / 4.

Чтобы любой из этих методов был эффективным, вы должны перейти в однопользовательский режим и размонтировать диск (и) как можно скорее. И предпочтительно запускать их из livecd или другой среды восстановления - это также значительно более безопасный способ избежать случайной потери данных при попытке восстановить ваши данные.

Я не буду публиковать эпос о восстановленных процессах, так как сначала вы должны попытаться использовать резервные копии, вот ссылки, которые я считаю наиболее полезными.

Если rm не ел слишком много (когда это случилось со мной, я убил его, когда он был на полпути /bin...), вы можете запустить машину в режиме восстановления, проверить, какие пакеты затронуты (в rpmдело, rpm -Va говорит вам), и переустановите те.

Имейте в виду, что это работает только в новолуние, после полуночи. Короткий танец дождя может быть полезным. Или нет. YMMV.

(Да, это жестокий способ Unix научить ничего не подозревающих пользователей внимательно рассматривать каждую команду перед нажатием ENTER, Считай себя учили.)

Я сделал это недавно, когда устал и провел всю ночь. Если вы не использовали принудительно (-f) или рекурсивно (-r) и используете относительно новый дистрибутив Linux, вы, скорее всего, удалили символические ссылки в корневом каталоге, указывающие на bin, sbin и lib. Я все исправил менее чем за 10 минут, загрузив идентичную живую версию того же дистрибутива, открыв корневую консоль, смонтировав старое устройство и воссоздав символические ссылки. Вот разбивка того, что я сделал (однажды в консоли):

Я уже вошел в систему как root.suсамостоятельно или sudo для своих команд, если вы еще не являетесь пользователем root.

лсблк

Предоставляет точки монтирования устройства. Используйте это, чтобы найти устройство для вашего исходного корневого каталога.

монтировать -t ext4 /dev/sda1 /mnt

Очевидно, что монтировать как правильную файловую систему в пустой каталог. Устройство sda1 как ext4, в моем случае в /mnt. Вполне возможно, что ваш вариант будет отличаться в зависимости от настроек системы.

лс -ла /

Это даст вам общее представление о том, как настроены символические ссылки вашей системы. Сравните его со своим «выброшенным» корнем:

ls -la /mnt

и вы увидите, что символические ссылки отсутствуют. Без символических ссылок, которые есть в большинстве дистрибутивов, вы не получите никаких команд, не сможете работать и заблокируетесь при перезагрузке. Восстановление этих символических ссылок устранит проблему и снова разрешит команды, а также полную перезагрузку. А сейчас . . . создайте все недостающие символические ссылки в /mnt, которые вы видите в /. Я заметил, что обычно существует три символических ссылки, но их может быть больше или меньше. Наls -la /, например, у меня есть эта символическая ссылка (плюс две другие):

      lrwxrwxrwx   1 root root     7 Nov 21 06:47 bin -> usr/bin

поэтому, чтобы воссоздать эту символическую ссылку в удаленном корневом каталоге, смонтированном в /mnt, мы делаем следующее:

компакт-диск / месяц

ln -s usr/bin бин

Сделайте это для всех символических ссылок в /, чтобы в списке каталога отображались одни и те же символические ссылки как для текущего корневого каталога, так и для удаленного корневого каталога, и перезагрузитесь в свой старый «выброшенный» дистрибутив.

На этом этапе все должно быть хорошо, так что . . .

Удачи!

Другие вопросы по тегам