Первая мысль, которая следом посетила мозг, была "Пиздеееец!". Потом -- оценка ситуации и понесённого ущерба: 1) данные не пострадали (и в любом случае есть бэкапы); 2) начисто уничтожен загрузчик и конфигурация; 3) система зашифрована, и, вкупе с предыдущим пунктом, перезагрузить её теперь удастся только один раз; :-)) 4) уничтожены все консольные утилиты, bash и пр.; 5) уничтожены все файлы устройств, так что даже в отсутствие предыдущего пункта подмонтировать LiveCD никак не получится; 6) луч надежды -- две оставшиеся открытыми консоли, в одной из которых залогинен тот самый злосчастный рут, и сохранившиеся в целости приложения. Самый простой выход из сложившегося положения -- плюнуть на систему, перезагрузиться, отформатировать разделы и поставить всё с нуля. Тем более, что от системных настроек, нажитых непосильным трудом, так или иначе ничего не осталось. Нет, захотелось выяснить пределы прочности Gentoo и, как Мюнхгаузену, самому вытащить себя из болота. Во-первых, в отсутствие /bin очень помог Midnight Commander с его собственной реализацией операций копирования. Во-вторых, в домашнем каталоге рута нашлась сборка busybox, оставленная от работ над initramfs. Благодаря этому удалось восстановить mount, cp и другие жизненно важные утилиты. Затем был оживлён /dev: mkdir /mnt/tmp mount --bind / /mnt/tmp cp -a /mnt/tmp/dev/* /dev/ umount /mnt/tmp So far so good. Теперь можно пошариться в содержимом Gentoo LiveCD: mount /dev/hda /mnt/cd mount /mnt/cd/image.squashfs /mnt/tmp И восстанавливаем убитые директории: cp -f /mnt/tmp/bin/* /bin/ cp -f /mnt/tmp/etc/* /etc/ Некоторые утилиты отказывались работать, но это было исправлено копированием соответствующих библиотек из /mnt/tmp/lib, с которыми они были скомпонованы и на которые ссылались. Неокученным остался только /boot. Образ ядра был взят, как и положено, из /usr/src/linux/..., а initramfs -- из домашнего каталога рута, где он лежал, как и busybox, со времён своей сборки. Однако, без загрузчика от всего этого добра мало проку, к тому же с LiveCD была взята не нативная конфигурация системы (хоть и близкая ей). Дальше последовал долгий и нудный процесс восстановления настроек portege -- менеджера пакетов Gentoo. В первую очередь создаём ссылку /etc/make.profile на текущий профиль системы. Затем прописываем в /etc/make.conf основные параметры сборки (главную проблему здесь создавала нерабочая система документации -- man отказывался запускаться по какой-то мутной причине, спасало то, что значительная часть документации с сайта Gentoo лежит на диске). И, наконец, приводим конфигурацию portege к той, что была до атомной войны. Процесс выглядел так: 1) emerge -ep world, смотрим на изменения use-флагов (те, что отмечены звёздочкой), корректируем эти изменения через /etc/make.conf и /etc/portage/package.use. 2) Отлавливаем оставшиеся изменения с помощью emerge -ep world | grep '\*'. 3) Вносим изменения в /etc/portage/package.{mask,unmask,keywords}, отлавливая их через emerge -ep world | grep 'D', emerge -ep world | grep 'S', и предупреждения Портежа о недоступных пакетах. Когда portege перестаёт ругаться на недоступные пакеты, количество простых пересборок становится равным числу установленных пакетов и никаких изменений в use-флагах установленных пакетов больше нет, заканчиваем упражнение. Мне первым делом пришлось пересобрать третью версию gcc, поскольку конфигурация с LiveCD предполагала только четвёртую версию, которая с hardened-профилем бесполезна. Затем переустановил grub и настроил загрузочное меню. На всякий случай сделал надёжную резервную копию криптоключей от разделов диска. И, наконец, через emerge -e world запустил полную пересборку... которая, добравшись до сборки boost'а из C++, сожрала всю оперативку и своп и повесила компьютер с ненастроенным /etc/fstab и device-mapper'ом. :-)) Восстановительные работы ещё не закончены, но оставшиеся шаги уже понятны. Хотя Линукс сейчас не запустить, резервные копии криптоключей позволят подключить разделы с LiveCD и завершить конфигурацию разделов. Затем последует запуск самой ОС, досборка мира и долгий и нудный процесс по восстановлению системных настроек, их приведению в изначальный вид. Какой опыт я из этого вынес? К резервным копиям данных следует добавить и резервирование настроек системы: их подгонка под свои нужды -- слишком длительный и затратный процесс, чтобы подвергать их такому риску. И надо, наконец, побороть лень и настроить grsecurity! |
|
К слову, вот описание 10 способов восстановления файлов: http://www.opennet.ru/base/sys/recover_file10.txt.html Конечно, сие имеет смысл, если у вас не зашифрован раздел с восстанавливаемыми данными ;) |
2. "восстановление" файлов - это как-то несерьёзно для консультанта по безопасности данных. Всегда рекомендуйте делать резервное копирование данных, так все эти ссылки про восстановление могут сработать в самом лучшем случае если очень повезёт только частично. 3. Ну и не расстраивайтесь, все юниксоиды когда то ошибались с оргументами команды rm :-) |
2. Перечитайте постинг внимательней. 3. Кто здесь расстраивается? Жизнь продолжается. |
|