🛑 «Просто нажми apt upgrade», говорили они… Как я пересаживал ядро и вытаскивал Parrot...
🛑 «Просто нажми apt upgrade», говорили они… Как я пересаживал ядро и вытаскивал Parrot OS из нокаута Решил я сегодня обновить рабочую машинку на Parrot Security OS под ARM. Думал: «Делов на пять минут, запущу апдейт, налью чай и пойду дальше ковырять цели». Ага, наивный. Система решила устроить мне внезапный хардкорный CTF прямо на рабочей станции. 😂 Заглядываю в терминал перед подтверждением установки, а там APT с каменным лицом выдаёт: REMOVING: linux-image-arm64 Стоп, машина! APT на полном серьёзе решил «вылечить головную боль отсечением головы» - снести метапакет ядра Linux, чтобы не разруливать конфликт версий. Если бы я нажал «Y», после перезагрузки система просто помахала бы мне ручкой и улетела в глухой kernel panic. В итоге безобидный апдейт превратился в полноценную миграцию с Parrot 6 («Lorykeet») на новую 7-ю ветку («Echo») с фундаментом Debian 13. И вот тут начался настоящий боевик в четырёх актах: 1. Конфликт PreDepends. Свежее ядро 7.2.11 требовало linux-base >= 4.17, а в системе стояла древняя 4.12. Из-за разницы приоритетов веток APT встал в ступор. Пришлось идти в обход пакетного менеджера, руками через curl выдёргивать нужные deb-пакеты из архивов Debian и точечно пробивать их через dpkg. 2. Упавшие зеркала. Официальный редиректор director.parrot.sh в самый ответственный момент выдал 503 Service Unavailable и начал сбрасывать сокеты. Пришлось на лету перекраивать sources.list, прописывать прямое европейское зеркало и локально патчить хосты, чтобы спасти загрузку. 3. Нокаут от OOM Killer. Новый алгоритм резолвера (APT solver 3.0) на транзакции в 280 пакетов вошёл в рекурсивный штопор и… сожрал 7.4 ГБ оперативной памяти! Ядро Linux хладнокровно пристрелило процесс на 8% загрузки. Пришлось в полевых условиях отключать CoW на диске, нарезать 4 ГБ swap через dd, глушить systemd-oomd и откатывать APT на классический движок --solver internal. 4. Итог. После трёх часов позиционной войны: ✅ Система жива и летает на ядре 7.2.11+parrot7-arm64. ✅ Все 280 пакетов безопасности, компиляторы и Python 3.13 успешно встали. ✅ Ни один байт данных или боевых конфигов не пострадал. Главный вывод дня: Никогда не жмите «Y» вслепую, если в списке REMOVING мелькает что-то с названием linux-image или системные метапакеты. Всегда читайте, что терминал собирается сделать с вашей ОС.