У меня есть удаленный сервер, который похож на «песочницу», где я тестирую все новое программное обеспечение перед установкой на производственные серверы. Я хотел немного очистить эту систему, но случайно удалил все содержимое / 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 всегда опасна, поскольку у вас нет никаких средств для отладки сломанной системы без работающей сети. Сначала потренируйтесь на виртуальной машине на вашем ПК, а затем примените эти инструкции к своему серверу.
Если ваш сервер размещен в хостинговой компании, они могут предоставить способ удаленной переустановки операционной системы или загрузки с аварийного диска? Возможно, стоит уточнить у них, возможно ли это? (Вы не указали, размещен ли сервер в компании или это просто удаленный компьютер, находящийся вне досягаемости?)
Компания, в которой я размещаю свой выделенный сервер, предоставляет как веб-интерфейс, так и настольное приложение, с помощью которого вы можете управлять определенными аспектами сервера и учетной записи хостинга. Это включает в себя управление источником загрузки для машины, так что я могу загрузиться с одного из выбранных аварийных дисков и т. Д., А также очистку и переустановку с новой операционной системой (например, с использованием того же метода, который они используют для подготовки сервера с конкретной ОС при первом заказе сервера).