Восстановление системы

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

NINJA2121

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

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

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

это понятно что бэкап это

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

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

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

Portage всё

Самое печальное здесь - это потеря базы данных установленных пакетов /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

equery b FileName

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

Это-то понятно

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

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

Taк и я о чем:equery b

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 ' ничего не выводит.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".