Со «всеми модулями» не надо. :) Это Вам не Windows. Благодаря initrd оно может запуститься независимо от конкретной файловой системы на устройстве. А запускаться Linux может где угодно, например, в какой-нибудь IoT-коробочке. Будь оно «со всеми модулями», оно бы не смогло. И initrd нужна не потому что в ядре чего-то не хватает, а потому что процесс загрузки у ядра такой: сначала запуститься с независимого ни от чего initrd, потом смонтировать необходимые файловые системы, а потом запустить init.