Quando compilo il mio kernel, sostanzialmente quello che faccio è il seguente:
Scarica le fonti da www.kernel.org e le decomprimo.
Copio il mio precedente
.configsui sorgenti e faccio unmake menuconfigcontrollo delle nuove opzioni e modifico la configurazione in base alla nuova politica del kernel.Quindi, lo compilo:
make -j 4Infine, lo installo:
su -c 'make modules_install && make install'.Dopo alcuni test, rimuovo il vecchio kernel (da
/boote/lib/modules) e corro completamente con quello nuovo (quest'ultimo passaggio mi ha salvato la vita più volte! È un suggerimento professionale !).
Il problema è che ottengo sempre un valore /boot/initrd.img-4.x.xenorme rispetto a quelli della mia distribuzione. Ecco il contenuto della mia /boot/directory attuale come esempio:
# ls -alFh
total 243M
drwxr-xr-x 5 root root 4.0K Mar 16 21:26 ./
drwxr-xr-x 25 root root 4.0K Feb 25 09:28 ../
-rw-r--r-- 1 root root 2.9M Mar 9 07:39 System.map-4.4.0-1-amd64
-rw-r--r-- 1 root root 3.1M Mar 11 22:30 System.map-4.4.5
-rw-r--r-- 1 root root 3.2M Mar 16 21:26 System.map-4.5.0
-rw-r--r-- 1 root root 170K Mar 9 07:39 config-4.4.0-1-amd64
-rw-r--r-- 1 root root 124K Mar 11 22:30 config-4.4.5
-rw-r--r-- 1 root root 126K Mar 16 21:26 config-4.5.0
drwxr-xr-x 5 root root 512 Jan 1 1970 efi/
drwxr-xr-x 5 root root 4.0K Mar 16 21:27 grub/
-rw-r--r-- 1 root root 19M Mar 10 22:01 initrd.img-4.4.0-1-amd64
-rw-r--r-- 1 root root 101M Mar 12 13:59 initrd.img-4.4.5
-rw-r--r-- 1 root root 103M Mar 16 21:26 initrd.img-4.5.0
drwx------ 2 root root 16K Apr 8 2014 lost+found/
-rw-r--r-- 1 root root 3.5M Mar 9 07:30 vmlinuz-4.4.0-1-amd64
-rw-r--r-- 1 root root 4.1M Mar 11 22:30 vmlinuz-4.4.5
-rw-r--r-- 1 root root 4.1M Mar 16 21:26 vmlinuz-4.5.0
Come avrai notato, le dimensioni dei miei initrd.imgfile sono circa 10 volte più grandi di quelle della mia distribuzione.
Quindi, faccio qualcosa di sbagliato durante la compilazione del mio kernel? E come posso ridurre le dimensioni del mio initrd.img?