SystemRescueCD как IP KVM
Если друг поломался вдруг, а топтать до него сотни километров, то современные инструменты позволяют починить удалённо и незагружающуюся систему.
Будут полезны:
- Ventoy создаст мультизагрузочную флешку
- SystemRescueCD предоставит рабочее окружение и инструменты для ремонта
- Memtest86+ проверит ОЗУ если система работает нестабильно
- DrWeb Live Disk, Kaspersky Rescue Disk или аналог поможет отбиться от незваных гостей и возможно расшифровать попорченные ими данные
Упор буду делать на SystemRescueCD, т.к. с остальными всё понятно и не интересно.
Из сложного:
- Объяснить другу как загрузить ПК с флешки.
- Объяснить другу пару-тройку команд чтобы получить доступ (если лень пересобирать образ чтобы встроить в него ключ SSH, qemu и т.д.)
Всё остальное выглядит легко и непринуждённо) и можно будет сделать вместе глядя в пошаренный экран или даже через AnyDesk/TeamViewer
Создаём LiveUSB который будет работать как IP KVM
Скачиваем Ventoy, устанавливаем на флешку. Создаём на ней директорию куда будем сваливать загрузочные образы, например /boot
. Скидываем в неё образы с SystemRescueCD и прочим инструментарием и проверяем, можем ли загрузиться с созданной флешки.
Узнаём адрес нашего хоста и пробрасываем на роутере порт ssh к нему (пусть снаружи это будет 8022, например). Если провайдер не позволяет пробросить порт придётся или прыгать через соседний хост (т.е. подключаться к нему через AnyDesk, а уже с него на целевую машину), или инициировать проброс порта до какого-нибудь промежуточного сервера.
Теперь загружаем нашу флешку, выбираем в списке SystemRescueCD, по умолчанию первый его пункт должен подойти, в загрузившейся консоли набираем startx
и вот друг в рабочем окружении. Остаётся подключиться к нему. Вот тут то и нужны те пара-тройка команд для друга
Загрузить ваш публичный ключ
mkdir ~/.ssh
curl https://github.com/${USERNAME}.keys >> ~/.ssh/authorized_keys
# или задать пароль админа
passwd
Открыть 22 порт
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# или, если не сработало, а в домосетке за NAT достаточно безопасно
systemctl stop iptables.service
Узнать внешний адрес
curl https://httpbin.org/get
Подключаемся на адрес из поля origin
по ssh.
Чтобы было веселее пробрасываем порт VNC (5900) к себе, запускаем у юзверя x11vnc
, открываем его клиентом vnc и теперь можно вместе с другом весело мышковозить, бэкапить данные, мордовать загрузчик, чинить ФС…
В составе много полезных инструментов, в т.ч. часто нужны
efibootmgr
efibootdump
fdisk -l /dev/sda
gparted
Запускаем поломанную ОС через QEMU
Но вот мы что-то сделали, а как проверить, что система починилась без лишних ребутов и повторной ручной возни? Запустить в виртуальном окружении QEMU! Одна беда, на данный момент его нет в штатном образе. Но можно установить, на временном диске в памяти места хватит.
pacman -Sy qemu-system-x86
После установки QEMU мы можем загрузить ОС с нашего физического диска, картинку можно пробросить опять же по VNC (порт 5901 или другой незанятый ранее), посмотреть чего мы там натворили
qemu-system-x86_64 -drive format=raw,file=/dev/sda -m 2048M -bios /usr/share/ovmf/x64/OVMF.fd -M pc -device ramfb -vnc :1 -netdev user,id=network0 -device e1000,netdev=network0,mac=52:54:00:12:34:56
Или можно вообще поставить на жёсткий диск новую ОС с любого iso залитого всё на ту же флешку, добавив что-то вида
-drive format=raw,media=cdrom,readonly,file=MXLinux-21.2.1_x64.iso