...что я сделал, как это работает.
Ты создал сервис системд(современный эквивалент автозапуска), который перезагружает модуль сетевой карты.
Хорошее или нет решение?
Если работает, значит хорошее. Найдется лучше - переделаешь.
...нет ядра такого, которое может из squashfs грузиться.
Без этого метод теряет девять десятых своей функциональности. Остается просто бэкап, только с более быстрым произвольным доступом.
А ядро несложно добавить простым копированием. Ты ничего не поломаешь этим. Ядро не обязательно должно быть от той-же системы.
Например, Ubuntu 10.04 (родное ядро 2.6.*) я запускал со всеми ядрами до 4.0.* включительно.
Или 18.04 запускал с ядром 4.4.* и убеждался, что с ним перезагрузка-выключение работает стабильно, в отличие от родного ядра.
Как добавить ядро и инитрд написано в мануале, который я давал. Дополнительно нужно скопировать в систему каталоги:
/lib/modules/версия_ядра и /lib/firmware/версия_ядра. Каталог firmware только если он есть для этой версии.
Например, в 16.04 он был для каждой версии ядра свой, как и модули. В 18.04 похоже он обший для всех версий.
Все это берется из одного исо-образа.