Решение задачи: как починить «сломанный» VPS на Linux

Закончился наш конкурс «как починить сломанный VPS на Linux». Задачей участников было починить «сломанный» VPS сервер на linux. C задачей смогли справиться лишь двое участников конкурса. Победитель справился с задачей за 17 часов.

» Участник с почтой farst***@gmail.com получает главный приз — VPS-сервер (5×2.6ГГц, 5 ГБ RAM, 50 ГБ SSD) на год.
» Участник с почтой non7*****@gmail.com занимает второе место — ему мы даём пожизненную скидку в 70% на виртуальные сервера RUVDS и нашу фирмунную кружку. Ну, а решение под катом.

bca343dac7934e96be205a828e5e80ca.jpg

Всем остальным участникам конкурса мы дарим скидку 10% на виртуальные сервера от RUVDS. Чтобы получить скидку напишите письмо на support@ruvds.com укажите свой логин.

Итак, выкладываем решение задачи.

Решение


1. Используем аварийный режим, подключаемся под пользователем administrator.

2. Монтируем root fs с правами на запись (файловая система монтируется в таком режиме, так как файл /etc/fstab был переименован в /etc/fstab_backup

sudo mount -o remount,rw /dev/sda3 /
sudo mv /etc/fstab_backup /etc/fstab

3. Разрешаем входящие подключения на 80 и 22 порты:
sudo ufw allow 80
sudo ufw allow 22

4. Отключаем swap:
sudo swapoff -a

В fstab комментируем соотвествующую строку:
sudo vim /etc/fstab
#UUID=1dc65039-4ac4-xxxxx-xxx-4xxxxf96xxxx none            swap    sw              0       0

5. Форматируем swap в xfs (или в любую другую файловую систему), например используя утилиту mkfs -t xfs

6. Удаляем ненужное из текущей инсталляции для того, чтобы её можно было скопировать на раздел /dev/sda2

sudo apt-get autoremove
sudo apt-get remove name-of-package --purge #для ненужных пакетов
sudo rm -rf /var/log
sudo rm -rf /tmp/*

7. Монтируем /dev/sda2 в /mnt и копируем необходимые файлы из корневого раздела и файлы конкурса.
sudo mount /dev/sda2 /mnt
cp -dpRx / /mnt

8. Получаем uuid /dev/sda2:
sudo blkid /dev/sda2

9. Указываем новое значение для root, обновляем uuid в /etc/grub/grub.cfg

10. Загружаемся под новым корневым разделом

shutdown -r now

11. Удаляем (xfs не поддерживает shrink) раздел /dev/sda3 и разбиваем его на 2 (/dev/sda3 и /dev/sda4) в соответствии с условиями задачи. Это можно сделать с помощью fdisk.

12. Форматируем новые разделы в xfs (утилита mkfs -t xfs)

13. Монтируем раздел /dev/sda3 и копируем туда файлы необходимые файлы корневого раздела.

14. Монтируем раздел /dev/sda4 и копируем туда файлы конкурса

15. Снова правим /etc/grub/grub.cfg и прописываем там новый uuid (нового раздела /dev/sda3) и устройство.

16. Правим fstab и перезагружаемся.

17. Помечаем раздел /dev/sda2 снова в качестве swap (раскомментируем запись в fstab, устанавливаем идентификатор swap через fdisk и выполняем swapon)

18. Перезагружаем ваш VPS, настраиваем сайт в nginx и открываем браузер, и видим наш сайт, задача решена:

258a899969cd4ca4b5e88b5240d66b84.png

Комментарии (0)

© Habrahabr.ru