Случайно rm -rf /usr/* как root, что теперь?
Мой коллега случайно удалил данные /usr/*, запустив: rm -rf /usr/*
, И сейчас это большая проблема. У нас было много хороших данных об этой машине. Большинство команд не работают в результате. Можно ли как-нибудь восстановить машину? Я не очень специалист по восстановлению данных.
Пожалуйста, помогите мне указать решение / процедуру. Некоторая информация относительно этой машины следует. Дайте мне знать, если потребуется дополнительная информация.
-bash-3.00# uname -a
Linux penguin 2.6.9-5.EL #1 Wed Jan 5 19:22:18 EST 2005 i686 i686 i386 GNU/Linux
-bash-3.00# fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 9729 78043770 8e Linux LVM
-bash-3.00#
8 ответов
Мои рекомендации:
- Google "восстановить для Linux", и вы найдете что-то, например, http://www.r-tt.com/data_recovery_linux/. Вы можете использовать это, чтобы восстановить любые документы, которые вы хотите восстановить.
- Сделайте шаг, чтобы избежать этого в будущем. Вам нужен метод создания копии раздела, что-то вроде Acronis TrueImage для Linux. Если вы запускаете Acronis TrueImage для Linux, он копирует полный клон жесткого диска в файл (который вы можете сохранить в автономном режиме для безопасности), так что вы всегда сможете восстановить его с нуля, если в будущем что-то пойдет не так.
Прежде всего, загрузитесь с живого CD или диска восстановления и выполните резервное копирование данных. Вы также можете включить системные конфигурации из /etc.
Вы можете попытаться выполнить переустановку поверх того, что у вас есть, оставив свои разделы так, чтобы их не трогали. Пока вы не храните свои хорошие данные в каких-либо системных разделах (и, будем надеяться, не в /usr), вы сможете сохранить их во время установки.
Если ничего не помогает, установите с нуля и восстановите из резервной копии.
Подумайте об изменении доступа вашего коллеги.
Я предполагаю, что вы используете Redhat просто потому, что я использую это:
Шаг 1- Поскольку у вас не должно быть никакого реального хранилища данных в /usr (man hier), вы сможете переустановить все двоичные файлы системы с помощью:
cd /root
rpm -Va > filename
rpm -qf `cat filename | awk '{print $3}'` | sort | uniq > filename2
yum reinstall `cat filename2`
Однако, если у вас есть какие-то данные в / usr, которые не были установлены дистрибутивом, то забудьте все, что я только что сказал, поскольку использование диска уменьшит шансы на то, что вы сможете восстановить удаленные данные.
Первое правило восстановления данных: прекратить использование диска
Восстановление возможно, как предлагает Gravitas, но чем больше вы используете диск, тем больше вероятность того, что освобожденные сектора будут перезаписаны новыми данными. Даже просто записать файлы в простую загруженную систему может быть достаточно, чтобы ограничить ваши шансы на восстановление. Приведенные выше рекомендации хороши, но убедитесь, что вы делаете их с диском в качестве ведомого устройства; либо с Live CD, либо подключив и смонтировав диск в другой системе.
Что касается процедуры. Если вы чувствуете, что это было одноразовым, то считайте это усвоенным уроком. Если вы беспокоитесь, это может произойти снова, измените пароли root и внедрите строго контролируемый sudo ( http://aplawrence.com/Basics/sudo.html)
После этого я не буду доверять системе, пока она не будет переустановлена с нуля. Вы можете вернуть его в работоспособное состояние, но безопаснее его заморозить.
Восстановленные кладжи могут работать, если вы потеряли один или два файла, но с таким большим объемом удаленных данных я не думаю, что погоня за этим будет продуктивным использованием времени.
Предложения по копированию файлов из другой системы могут вернуть вас в рабочее состояние, но могут оставить вашу систему в "нечистом" состоянии, когда не все вернулось на прежнее место.
Я рекомендую выполнить чистую установку на другой диск (или другой компьютер), а затем вручную смонтировать старый привод (или загрузить старый компьютер с установочным компакт-диском) и скопировать важные данные.
Затем отнеситесь к этому как к предупреждению и
- Убедитесь, что у вас есть автоматическая, актуальная резервная копия этих "хороших данных", чтобы вы никогда больше не оказались в такой ситуации.
- Проверьте, кто имеет административный доступ к системе, и установите политики, когда и как она используется. Ваш коллега должен был работать от имени пользователя root, чтобы делать то, что они пытались сделать?
Попробуйте установить тот же самый дистрибутив (RHEL4, судя по ядру) где-нибудь еще и вручную скопировать важные двоичные файлы и библиотеки в /usr. Попробуйте получить список установленных пакетов по rpm -qa (rpm находится в /bin, а списки и переменные хранятся в /var, так что это может работать до некоторой степени). Переустановка с нуля была бы лучшим вариантом, но если это критическая система, это потушит пожар. Что ж, наступают выходные, так что они могут быть занятыми:)
О предотвращении: Если вы создадите файл с именем "-i" (без кавычек), он не позволит кому-либо случайно ввести в этот каталог rm -rf *, поскольку он будет запрашивать каждый файл. Попробуйте это в тестовой директории. Вы можете создать файл с помощью "touch --i" (двойной перенос означает "ничего не интерпретировать после этого как опцию").
Вы можете скопировать весь каталог /usr с другого того же h/w и сервера конфигурации или компьютера. Это будет работать. Но просто убедитесь, что вы делаете символические ссылки, как мы
Я бы порекомендовал вам сделать копию этого диска / дисков, прежде чем пытаться что-либо, например, переустановить, восстановить или восстановить. Если у вас есть хорошие резервные копии, вероятно, достаточно безопасно просто загрузиться с загрузочного CD и recovery /usr из резервной копии, но я предполагаю, что у вас нет хороших резервных копий, если вы задаете этот вопрос.:-)
Если у вас есть данные, которые вы хотите сохранить на диске, ВСЕГДА делайте попытку восстановления на копии диска, а не на оригинале.