если вы посмотрите на список модулей ядра для поддержки сд и винта, то увидите много интересного.
именно поэтому универсально сделанное ядро с модулями занимает такой объем.
конечно можно повыбрасывать кучу модулей, как сделано в PRA, и надеяться, что не понадобятся.
но 30 мб не стоят того.
как я уже писал - сейчас уже на смену "маленький и быстрый" пришло "большой и быстрый".
squashfs устроена так, что когда читается файл из большого архива или маленького, то на распаковку блока уходит одинаковое количество времени, немного чуточку на поиск блока в общем объеме большего файла уходит больше, но это время не соизмеримо со временем распаковки блока.
поэтому когда вы подключили образ модуля в 1Гб или в 10 Мб, работают они одинаково быстро. В этом гениальность алгоритма squashfs. Единственное тратится больше памяти ядра на виртуальное монтирование. Но память расходуется в данном случае тем больше, чем больше модулей подключено. Поэтому использовать один большой модуль в сравнении с десятками маленьких - по ресурсам менее затратно.