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
.config
sui sorgenti e faccio unmake menuconfig
controllo delle nuove opzioni e modifico la configurazione in base alla nuova politica del kernel.Quindi, lo compilo:
make -j 4
Infine, lo installo:
su -c 'make modules_install && make install'
.Dopo alcuni test, rimuovo il vecchio kernel (da
/boot
e/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.x
enorme 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.img
file 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
?