Если друг поломался вдруг, а топтать до него сотни километров, то современные инструменты позволяют починить удалённо и незагружающуюся систему.

Будут полезны:

  • 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