Злоключения с флешкой или Мы не ищем лёгких путей

Недавно пришло в голову сделать переносное рабочее место пентестера — флешку с соответствующим дистрибутивом Linux. Стереотипно считается, что пентестер должен пользоваться Kali, но я нашёл другой вариант — Parrot Linux, который хорош тем, что кроме «хакерских» программ содержит софт и для повседневных нужд Web-программиста: VSCodium, Libre Office, сервера MySQL и Postgres, Apache, nginx. Только вот Filezilla и Putty не хватает. Да и к «железу» он весьма нетребователен.
Казалось бы, что может пойти не так: нужно просто скачать ISO, записать на одну флешку, загрузиться с неё и провести полную установку на другую. Но я не был бы собой, если бы просто взял и сделал.
Начнём с того, что флешек у меня две. Одна, старая, но очень хорошая Transcend на 32 Гб, вторая — более новая на 16 Гб неизвестного производителя. Первая использовалась раньше для синхронизации данных с дачным компьютером, и на ней же стоял Ventoy и хранились образы нескольких OS. Сразу возник вопрос: а на какую устанавливать Parrot Linux, чтобы работало быстрее. Решил провести benchmarking. После беглого поиска, чем это можно сделать, решил поставить KDiskMark. Но в этот момент я уже сидел за старым ноутбуком (взял его, чтобы ставить Parrot, не перезагружая основной компьютер), и ставить KDiskMark решил на него.
Система там не обновлялась довольно давно, поэтому чтобы KDiskMark установился, нужно сделать apt update && apt upgrade. Запускаю, но тут вылезает та же проблема, о которой я уже писал: кривое обновление, которое сносит часть установленных программ, в том числе и Network Manager. После чего, конечно же, отваливается Интернет.
Проводная сетевая карта в том ноутбуке сгорела ещё в 2013 году. Поэтому пришлось вспоминать, как писать файл конфигурации для wpa_supplicant. Сначала пытался по мануалу, но не работало. Потом запросил пример у ChatGPT, тот написал, и оказалось, что одну строку (на которую и ругался wpa_supplicant) указывать и вовсе было не обязательно, а достаточно только SSID и пароль.
Подключился, переустановил Network Manager и plugins для него, поставил KDiskMark. Провёл измерения. Оказалось, что флешка на 16 Гб даёт чуть более высокую линейную скорость чтения, но проигрывает Transcendовской по всем остальным параметрам. Решил сделать так: вынести Ventoy и ISO образы на вторую флешку, а первую разбить на два раздела по 16 Гб. Один сформатировать в exfat (чтобы можно было писать файлы и под Windows), второй — в f2fs и установить туда систему. Перенёс ISO образы на вторую флешку (заодно навёл порядок: кое-что удалил, кое-что обновил), временно сохранил прочие данные на диск, и запустил установку. Вроде всё шло хорошо, пока не возникла ошибка «нет места на устройстве». Оказалось, что хотя ISO-образ занимает всего 5.3 Гб, данные в нём очень сильно сжаты, и на официальном сайте утверждается, что для нормальной установки нужно целых 40 Гб! То есть флешки просто не хватит.
В итоге решил сделать то, что называется persistent live, когда на флешку пишется ISO-образ, а в дополнительный раздел сохраняются изменения. Создал EFI-раздел, сделал grub-install, решил попробовать загрузиться с флешки. Но дальше всё пошло не так: при загрузке через EFI меня выбрасывало в grub rescue, а через BIOS — в командную строку обычного grub без меню и с непонятно откуда берущимся кривым префиксом пути.
Дальше три дня ушло на попытки разобраться, что не так. И только сегодня причина нашлась. Оказывается, важен порядок разделов! А у меня EFI-раздел шёл третьим, после раздела, куда я записал ISO. Загрузчик видел на ISO-разделе каталог EFI с урезанным grub и пытался загружаться с него! (Кстати, оказалось, что это легко чинится обычным fdiskом, где есть специальная команда fix в expert mode, т.е. последовательность команд такая: x f r w q). Потом я это выяснил, но к тому времени в ходе своих экспериментов создал другую проблему: удалил файл /EFI/BOOT/BOOTX64.EFI (так как думал, что туда что-то глючное пишется). И только когда сообразил его восстановить (привет ещё две перезагрузки), всё заработало. А загрузка BIOS искала GRUB вовсе не на том разделе, где он должен быть, так как BIOS-версия загрузчика оставалась вообще от Ventoy. Почему-то я не сообразил, что для того, чтобы его обновить, нужно сделать отдельный запуск grub-install с --target=i386-pc.
В общем, потерял кучу времени, зато куда более детально разобрался с устройством GRUB и UEFI. Вопрос только, пригодятся ли мне эти знания когда-нибудь ещё…
А ещё пришла в голову мысль сделать форум (или раздел на этом) специально для подобных историй, где каждый желающий мог бы с техническими подробностями рассказать, как он наглухо завалил прод делал глупые ошибки.