जब मैं अपना कर्नेल संकलित करता हूं, तो मूल रूप से मैं जो करता हूं वह निम्नलिखित है:
मैं www.kernel.org से स्रोतों को डाउनलोड करता हूं और इसे अनलोक करता हूं।
मैं अपने पिछले
.config
स्रोतों की प्रतिलिपि बनाता हूं औरmake menuconfig
नए विकल्पों को देखने के लिए कर्नेल की नई नीति के अनुसार कॉन्फ़िगरेशन को संशोधित करता हूं ।फिर, मैं इसे संकलित करता हूं:
make -j 4
अंत में, मैं इसे स्थापित करता हूं
su -c 'make modules_install && make install'
:।कुछ परीक्षणों के बाद, मैं पुराने कर्नेल (से
/boot
और/lib/modules
) को हटा देता हूं और पूरी तरह से नए के साथ चलता हूं (यह अंतिम चरण कई बार मेरे जीवन को बचाता है! यह एक प्रो-टिप है !)।
समस्या यह है कि मुझे हमेशा वही मिलता है /boot/initrd.img-4.x.x
जो मेरे वितरण से लोगों की तुलना में बहुत बड़ा है। यहाँ /boot/
उदाहरण के रूप में मेरी वर्तमान निर्देशिका की सामग्री :
# 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
जैसा कि आपने देखा होगा, मेरी initrd.img
फाइलों का आकार मेरे वितरण से लगभग 10 गुना बड़ा है।
तो, क्या मैं अपने कर्नेल को संकलित करते समय कुछ गलत करता हूं? और, मैं अपने आकार को कैसे कम कर सकता हूं initrd.img
?