Восстановление работоспособности Debian в rescue

Автор Bred, 17 сентября 2013, 19:29:29

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Bred

Добрый день, форумчане!
Довольно давно пользуюсь сервером на дебиане, но максимум что делал на нем, настраивал web, mysql, svn, почтовые сервера. Настройки самой системы я не трогал обычно. Но сегодня произошла очень ужасная вещь:
Сегодня я попытался установить KDE System Guard, для наглядного мониторинга нагрузки на сервер (продакшен сервер, на котором крутится десяток сайтов). Это была моя ошибка.

Набрал apt-get install ksysguard
Пару раз нажал Y и enter, и тут понеслось:


Removing console-setup ...
Removing console-setup-linux ...
Removing debconf-i18n ...
Removing keyboard-configuration ...
Processing triggers for man-db ...
(Reading database ... 35250 files and directories currently installed.)
Preparing to replace perl 5.14.2-16 (using .../perl_5.18.1-4_i386.deb) ...
Unpacking replacement perl ...
Processing triggers for man-db ...
(Reading database ... 35157 files and directories currently installed.)
Removing libtext-wrapi18n-perl ...
Removing libtext-charwidth-perl ...
Removing mysql-server ...
Removing mysql-server-5.5 ...
[ ok ] Stopping MySQL database server: mysqld.
Removing mysql-client ...
Removing mysql-client-5.5 ...
Removing libdbd-mysql-perl ...
Removing linux-image-2.6-686-bigmem ...
Removing linux-image-686-bigmem ...
Removing linux-image-686-pae ...
Removing linux-image-3.2.0-4-686-pae .


В этот момент, поняв что происходит я нажал ctr+z.
Mysql удалило, но сами базы остались в файлах и я в срочном порядке забэкапил их. Потом попытался восстановить удаленные пакеты. Но нарвался на


Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
perl : Depends: perl-base (= 5.18.1-4) but 5.14.2-16 is to be installed
        Depends: perl-modules (>= 5.18.1-4) but 5.14.2-16 is to be installed
php5-mysql : Depends: phpapi-20121212
              Depends: php5-common (= 5.5.3+dfsg-1) but 5.4.15-1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).


apt-get -f install не помог, потом я понял, что установка KDE System Guard висит в процессах и что то там блокирует. kill не убил этот процесс и я решил отправить reboot. После этого сервер лег полностью, так и не включившись.

Все очень плохо, но у нашего хостера есть возможность войти в rescue режим (минимальная Linux-система, которая по запросу запускается с сервера по сети) и примонтировать диски сервера.

Теперь сам вопрос, возможно ли как то восстановить работоспособность системы с помощью этого режима и не переустанавливать все полностью? Архив бэкапов сайтов будут скидываться 20 часов, а настройка всего по займет не меньше. Сервер - продакшен и его нужно восстановить очень быстро.

Буду благодарен за любую помощь. Владимир.

yura_n

#1
Цитата: Bred от 17 сентября 2013, 19:29:29Теперь сам вопрос, возможно ли как то восстановить работоспособность системы с помощью этого режима и не переустанавливать все полностью?
Восстановить можно в любом случае (если конечно нет проблем с файловой системой или с жесткими дисками). Не с помощью этого режима, так с помощью chroot (на месте). Но что конкретно вам использовать, ответить нельзя, так как неизвестно что происходит при загрузке.

Bred

Благодарю за ответ.
Прямого доступа к машине, к сожалению нет. /var/log/boot пустой, в него ничего не пишется.

ogost

/var/log/boot пустой, потому что нужен bootlogd, который не устанавливается по умолчанию.
можно посмотреть /var/log/aptitude и /var/log/apt/history, узнать какие пакеты удалились и попытаться их установить заново.

Bred

Какие пакеты удалились я знаю. А как я могу установить удаленные пакеты в rescue режиме? Это ведь по сути другая ОС и если я что то буду ставить стандартным способом, то оно и поставится на эту систему, а не на упавшую.

ogost

так, rescue mode это другой линь что ли? стартует на той же машине? а chroot не получится?

Bred

#6
Да, это минимальная Linux-система, которая по запросу запускается с сервера по сети. К ней можно примонтировать диски сервера такой командой:
mount /dev/md2 /mnt/
и получить доступ к файловой системе. Стартует на той же машине, в оперативке (как лайв сд для винды).
На счет chroot я не знаю. Получается это нужно примонтировать диски не в /mnt/ а прямо в корень?

Или достаточно так сделать
chroot /mnt
и получится, что все пакеты будут ставится на упавшую систему?

ogost

#7
почитайте про chroot. нужно примонтировать кроме корня ещё некоторые другие, /proc, /sys, /dev

Сообщение объединено: 18 сентября 2013, 06:40:51

Вот например

Bred

Получилось сделать chroot


mount --bind /dev /mnt/dev/
mount --bind /proc /mnt/proc/
mount --bind /sys /mnt/sys/

chroot /mnt /bin/bash


Однако повторная установка пакетов и обновление с помощью aptitude safe-update не принесли результатов, к сожалению. Видимо сказалось то, что я на середине процесс оборвал (1 пост). Дальше разбираться просто времени уже не было.

В итоге переустановил дебиан и сейчас настраиваю все по новой(

В любом случае, я благодарен за помощь, спасибо yura_n и ogost. chroot отправился в копилочку знаний. Надеюсь ни у кого такого ужаса не произойдет)

Владимир.