Во FreeBSD есть замечательный инструмент обновления системы для ленивых: freebsd-update. Исользуется просто:

freebsd-update fetch 

проверяет и скачивает бинарные обновления к системе, а

freebsd-update install

их устанавливает.

Но вот случилось так, что сервер завис в процессе обновления системы - аппаратная проблема. Более того, завис  он именно при обновлении критичной для функционирования всей системы библиотеки glibc (это выяснилось потом, при детальном обследовании). В результате получилась система, которая на запуск любой программы реагировала "Segmentation Fault".

Во FreeBSD есть замечательный каталог /rescue, в котором содержаться основные утилиты, статически скомпонованные с библиотеками. Им собственно при восстановлении и воспользуемся. На запрос при загрузке системы "Enter full pathname of shell or RETURN for /bin/sh" дадим /rescue/sh. Теперь нам доступны достаточно много инструментов для восстановления. Установим для удобства пути:

export PATH=/rescue:$PATH

Теперь, в первую очередь, будет просматриваться каталог /rescue при поиске необходимой программы и нам не придётся набирать полный путь. Необходимо сделать проверку некорректно отмонтированных разделов и смонтировать разделы:

fsck /dev/Раздел_диска1
fsck /dev/Раздел_диска2
...
fsck /dev/Раздел_дискаN
mount -a

Можно восстановить поврежденную библиотеку из резервной копии (Вы ведь делаете резервные копии?), с инсталляционного диска или из /usr/src, если вы компилировали "мир" сами (make buildworld). Я воспользовался архивной копией из .tgz архива месячной давности, после чего довёл актуальное состояние системы с помощью команды freebsd-update. При наличии более древней копии, возможно потребуется восстановить полностью каталоги /bin, /sbin, /lib, /libexec и соответствующие каталоги из /usr. Два часа потерянного времени и немного нервных клеток.

PS: Делайте резервные копии.

PPS: Работодатели! Если вам жалко 300 баксов на резервный системный блок, то расплачиваться вам придется вынужденным простоем. В данном случае бизнес предприятия не был завязан на Internet и восстановление прошло достаточно быстро, а ведь может быть и по-другому ...

 

 

 

 

Добавить комментарий
  • Комментарии не найдены