Восставший из ада: поднимаем FreeBSD
Как известно, админы делятся на две категории – одни не делают бэкапы, а вторые уже делают. Не сказать, чтобы их не было совсем… но все равно неприятно.
После очередного отключения света (и сдохшего упса) благополучно помер винт. fsck отшуршал, нашел кучу нечитаемых секторов – и на этом можно было сливать воду. В read-only система все-таки примонтировалось, и почти все удалось вытащить – но перспектива поднимать сервак с нуля, пусть и имея на руках конфиги – не самая радужная.
Перво-наперво ищем рабочий жесткий и ставим на него систему – желательно той же версии 😉 В моем случае в обязательном порядке пришлось ставить сорцы, из которых нужно было пересобрать ядро – это тоже стоит учесть, потому что может случиться так, что взять их будет просто неоткуда 🙂
Затем, имея готовую систему и файлы с убитого жесткого (различной степени потрепанности) аккуратно копируем одно в другое примерно так:
cp -Rp /mnt/ad2s2s/usr_backup/* /usr
cp -Rp /mnt/ad2s2s/etc_backup/* /etc
Здесь -R означает, что каталоги следует копировать рекурсивно, а -p сохраняет все атрибуты файла (права, владелец etc). Полностью копировать каталог /etc не нужно – достаточно переписать только конфиги, которые вы меняли сами, а также файлики /etc/group /etc/passwd и /etc/master.passwd
После этого на “новой” системе выполняем команду
pwd_mkdb /etc/master.passwd
Перезагружаемся.. и, если повезет, получим полностью восстановленную систему. Не забудьте сделать резервные копии всего и вся – лишним точно не будет.