Wenn ich meinen eigenen Kernel kompiliere, mache ich im Grunde Folgendes:
Ich lade die Quellen von www.kernel.org herunter und dekomprimiere sie.
Ich kopiere meine vorherigen
.config
in die Quellen undmake menuconfig
achte auf die neuen Optionen und ändere die Konfiguration entsprechend der neuen Richtlinie des Kernels.Dann kompiliere ich es:
make -j 4
Schließlich installiere ich es:
su -c 'make modules_install && make install'
.Nach ein paar Tests entferne ich den alten Kernel (von
/boot
und/lib/modules
) und starte ihn vollständig (dieser letzte Schritt hat mir mehrmals das Leben gerettet! Es ist ein Pro-Tipp !).
Das Problem ist, dass ich immer einen bekomme, /boot/initrd.img-4.x.x
der im Vergleich zu denen aus meiner Distribution riesig ist. Hier der Inhalt meines aktuellen /boot/
Verzeichnisses als Beispiel:
# 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
Wie Sie vielleicht bemerkt haben, ist die Größe meiner initrd.img
Dateien etwa zehnmal größer als die meiner Distribution.
Mache ich also etwas falsch, wenn ich meinen Kernel kompiliere? Und wie kann ich meine Größe reduzieren initrd.img
?