Назад | Перейти на главную страницу

Откатиться на чистый debian

У меня есть удаленный сервер, который похож на «песочницу», где я тестирую все новое программное обеспечение перед установкой на производственные серверы. Я хотел немного очистить эту систему, но случайно удалил все содержимое / var. Как я могу его восстановить или откатиться до чистого debian, если я не могу переустановить систему, потому что у меня только ssh-соединение и нет физического доступа?

Возьмите debootstrap пакет. Debootstrap может установить стартовый Debian где-нибудь в каталоге, и вы можете восстановить некоторые из /var исходя из этого.

Конечно, вы не сможете установить пакет в обычном режиме. Скачайте и распакуйте вручную.

dpkg-deb -x debootstrap_*.deb /
mkdir /chroot
debootstrap squeeze /chroot

Теперь воссоздайте хотя бы структуру каталогов и разрешения или просто скопируйте /chroot/var оптовая.

Конечно, вы не восстановите свои данные, но вы должны получить хромую систему. В частности, вы не сможете использовать инструменты управления пакетами, если не восстановите базу данных пакетов, а это большая работа. Я советую переустановить, как только вы получите физический доступ.

Я бы сделал следующее:

Получите дистрибутив Linux, который может работать полностью в ОЗУ. В этом случае предположим, что вы будете использовать PLD Rescue Linux (доступно здесь: http://rescuecd.pld-linux.org). Убедитесь, что вы используете правильную архитектуру процессора (x86 или x86_64).

Смонтируйте iso где-нибудь (например, / mnt) и скопируйте ядро ​​и initrd в свой / boot:

cp /mnt/boot/isolinux/vmlinuz /boot/vmlinuz-rescue (vmlinuz6 for x86_64)
cp /mnt/rescue.cpi /boot/rescue.cpi (rescue6.cpi for x86_64)

Настройте загрузчик на загрузку системы восстановления вместо Debian. Командная строка ядра должна быть:

initrd=/boot/rescue.cpi root=/dev/ram0

Не забудьте сделать его по умолчанию, вы не сможете выбрать его, так как у вас нет физического доступа или KVM.

Теперь перезагрузите вашу систему. Подождите некоторое время, пока пинг не вернется и не войдет в ваш ящик с правами root. Пароль: pld

Теперь начинается самое интересное. Отформатируйте все разделы вашей системы - все, что было ранее смонтировано в /, / var /, / boot и т. Д. Вы, конечно, можете оставить / home в покое. Например, если ваша система состоит из одной файловой системы на / dev / sda1, запустите:

mkfs.ext4 /dev/sda1

Смонтируйте все в / mnt. При необходимости создайте соответствующие точки монтирования.

Теперь вы загрузите базовую систему Debian:

debootstrap squeeze /mnt

Это установит Debian Squeeze в / mnt. Подождите, пока все закончится (это займет некоторое время). Виртуальные файловые системы монтирования-связывания:

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

И chroot в вашу новую среду:

chroot /mnt /bin/bash

В chroot установите ядро ​​Linux и соответствующий загрузчик:

apt-get update
apt-get install linux-image-2.6-i686 (or linux-image-2.6-amd64)
apt-get install grub-pc

Также вам понадобится мета-пакет SSH:

apt-get install ssh

Теперь отредактируйте / etc / fstab, / etc / hostname и / etc / hosts в соответствии с вашими потребностями. Не забудьте создать / etc / network / interfaces с соответствующей сетевой конфигурацией. Дважды проверьте его на наличие ошибок. Вам понадобится сеть, поскольку вы можете использовать только SSH в коробке.

Установите пароль для root:

passwd

Установите загрузчик в MBR жесткого диска. Если вы установили GRUB2, как в моем примере, запустите:

update-grub
grub-install /dev/sda

Выйдите из chroot, набрав «exit» и размонтируйте все, что находится в / mnt. Перезагрузитесь и молитесь Богу Пинга. ;-)

ПРЕДУПРЕЖДЕНИЕ:

Переустановка ОС при наличии только доступа по SSH всегда опасна, поскольку у вас нет никаких средств для отладки сломанной системы без работающей сети. Сначала потренируйтесь на виртуальной машине на вашем ПК, а затем примените эти инструкции к своему серверу.

Если ваш сервер размещен в хостинговой компании, они могут предоставить способ удаленной переустановки операционной системы или загрузки с аварийного диска? Возможно, стоит уточнить у них, возможно ли это? (Вы не указали, размещен ли сервер в компании или это просто удаленный компьютер, находящийся вне досягаемости?)

Компания, в которой я размещаю свой выделенный сервер, предоставляет как веб-интерфейс, так и настольное приложение, с помощью которого вы можете управлять определенными аспектами сервера и учетной записи хостинга. Это включает в себя управление источником загрузки для машины, так что я могу загрузиться с одного из выбранных аварийных дисков и т. Д., А также очистку и переустановку с новой операционной системой (например, с использованием того же метода, который они используют для подготовки сервера с конкретной ОС при первом заказе сервера).