เมื่อฉันรวบรวมเคอร์เนลของตัวเองโดยทั่วไปสิ่งที่ฉันทำคือต่อไปนี้:
ฉันดาวน์โหลดแหล่งข้อมูลจาก 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
อย่างไร