Вы здесь

[РЕШЕНО] Восстановление системы

Уважаемые форумчане, нужна ваша помощь.
После 2 бессонных ночей и ударных трудовых дней случайно очистил папку /var
Как следствие почти ничего не работает.
Подскажите как восстановить теперь все. Понятно что удаленные файлы не восстановить, но можно хоть как-нибудь восстановить необходимые для работы файлы. Может есть какая-нибудь утилита для сканирования целостности системы? Помогайте хлопцы, а то там жизненоважные сервисы крутятся. Начальник голову открутит. :-(

NINJA2121 написал:
Уважаемые форумчане, нужна ваша помощь.
После 2 бессонных ночей и ударных трудовых дней случайно очистил папку /var
Как следствие почти ничего не работает.
Подскажите как восстановить теперь все. Понятно что удаленные файлы не восстановить, но можно хоть как-нибудь восстановить необходимые для работы файлы. Может есть какая-нибудь утилита для сканирования целостности системы? Помогайте хлопцы, а то там жизненоважные сервисы крутятся. Начальник голову открутит. :-(

Резервного копирования не делалось никогда? Если не делалось - то пусть начальник голову откручивает, есть за что.

—

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

это понятно что бэкап это гуд, но сервак по наследству достался.

Вчера что ли?! :)

Самое печальное здесь - это потеря базы данных установленных пакетов /var/db/pkg/ и файла /var/lib/portage/world.

Если бы у меня стояла задача попытаться восстановить систему в этом случае, я бы очень сильно постарался вспомнить, что было установлено лично мною (содержимое world файла, другими словами). Увы, /var/log потерян, и для этого нужно иметь хорошую память. Если машина была чем-то вроде сервера, где были поставлены лишь несколько пакетов, дело немножко упрощается, но именно что немножко.

Возможно, для начала стоило бы взять /var каталог из архива stage3 - возможно, там есть что-то жизненно важное для работы самого portage. После чего - emerge -e world (с тоннами ошибок по поводу file collisions), ну а затем установка пакетов, что ранее были в world (с теми же ошибками). В итоге /var/db/pkg будет создан и заполнен заново, благо настройки из /etc/portage вроде как на месте и USE-флаги/версии пакетов совпадают.

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

P.S. Всё вышенаписанное касается восстановления именно системы. Естественно, про содержимое /var/www/, если это был веб-сервер, или про прочие _данные_ (не системные файлы), хранившиеся в /var, нужно забыть.

P.P.S. Кстати, из свежих новостей на ЛОР: https://www.linux.org.ru/news/proprietary/13225630 Вроде как бесплатный вариант позволяет файлы до 256кБ восстанавливать, так что для /var/db/pkg может оказаться полезным.

Если есть физдоступ к диску, то не включая комп вытащить его и подключить к другому с Линуксом. Используя PhotoRec попытаться восстановить файлы.
Из ограничений: можно восстанавливать только по партициям или всему диску; непонятно как настраивать восстановления только своего типа файлов, есть только предопределенный выбор.

Еще на выбор можно попробовать TRK, SRCd, Sleuth Kit.

На крайний вариант: проприетарное прогобеспечение. Кстати, это предлагают бесплатно: R-Linux (R-Studio).

PS: PhotoRec

Если смерти, то мгновенной, если раны небольшой.

Сохраните всё что осталось пристрелите старую и устанавливайте новую систему, по слепку остатков старой. /etc/ home/ установленные пакеты, позволят вернуть больше.

Большое всем спасибо за советы. скорее всего буду рядом поднимать новую систему и переносить туда.

Совет, как определить, что было установлено:
в app-portage/pfl есть утилита e-file: по имени файла выдает пакеты с ним.
По моему, видел скрипт который таким макаром восстанавливает список установленного.
Правда без версий и много лишнего и левого.

Я обычно напрямую сайтом пользуюсь, а так будет, пожалуй, проще.

equery b FileName

Хотя если базы нет, то не поможет...

Правда, я обычно qfile использую.

Но тут смысл в том, что иногда нужно узнать название не установленного пакета по входящему в его состав файлу. Раньше я напрямую на http://www.portagefilelist.de/site/query искал, а тут, оказывается, есть утилита, делающая то же самое.

Taк и я о чем:

equery b /bin/sh
* Searching for /bin/sh ...
app-shells/bash-4.3_p48-r1 (/bin/bash)

Хотя, если пакет не установлен, то не сработает.
Я в таких случаях по привычке ищу тут - практически всегда помогает, кроме очень уж специфических...

А e-file как-то странно работает:

$ e-file /bin/sh
* sys-freebsd/freebsd-bin
Available Versions: 10.3
Description: FreeBSD /bin tools
Matched Files: /bin/sh;

Возможно, это потому, что именно в этом пакете он и есть в нормальном виде, а не в виде симлинка на что-то другое. Тот же qfile аналогичным образом не считает /bin/sh принадлежащим какому-либо пакету.

P.S. У меня и cat /var/db/pkg/*/*/CONTENTS | grep '/bin/sh ' ничего не выводит.