- Mengkompilasi kernel anda sendiri membolehkan anda mengoptimumkan prestasi, keselamatan dan sokongan. perkakasan melaraskan modul, sistem fail dan pilihan khusus.
- Proses standard termasuk memasang dependencies, memuat turun sumber dari kernel.org, menggunakan semula konfigurasi semasa dan mengkonfigurasi dengan make menuconfig atau xconfig.
- Adalah penting untuk mengkompil dan memasang kernel dan modul, menjana initramfs dengan betul, dan mengintegrasikan kernel baharu ke dalam GRUB untuk memastikan boot dibersihkan.
- Mengekalkan kernel lama dan mengetahui cara untuk mengembalikan atau mengalih keluar kernel yang bermasalah adalah kunci untuk bereksperimen dengan selamat pada mana-mana distro.

Kompilasi kernel bagi Linux Ia merupakan salah satu tugasan yang membezakan pengguna yang ingin tahu daripada pengguna yang mahukannya. untuk mendalami sistem pengendalianIa tidak wajib untuk menggunakan GNU/Linux setiap hari, tetapi ia merupakan cara yang bagus untuk lebih memahami cara mesin anda berfungsi, memanfaatkan sepenuhnya perkakasan dan menyelaraskan sistem mengikut citarasa anda.
Dalam panduan ini anda akan melihat, langkah demi langkah, bagaimana Muat turun, konfigurasi, kompil dan pasang kernel Linux dari awal. Kami akan merangkumi pengedaran berasaskan Debian (Debian, Ubuntu, Mint dan derivatif), serta konsep umum yang boleh digunakan untuk keluarga lain seperti Fedora atau CentOS. Kami juga akan meneroka mengapa anda mungkin mahu melakukan ini, alatan yang anda perlukan, cara menggunakan semula konfigurasi kernel semasa anda, cara melaraskan pilihan untuk Docker atau perkakasan tertentu dan cara untuk memulihkannya jika berlaku masalah.
Mengapa anda mungkin berminat untuk mengkompilasi kernel anda sendiri
Sebelum menyentuh apa-apa, penting untuk jelas tentang apa yang anda mahukan: Mengkompilasi kernel tidak selalu diperlukanTetapi terdapat beberapa sebab yang kukuh untuk berbuat demikian.
- prestasi dan kecekapanMengalih keluar pemacu dan ciri yang tidak pernah anda gunakan boleh menjadikan sistem anda boot lebih pantas, menggunakan kurang RAM dan mengurangkan kependaman di bawah beban kerja tertentu.
- KeselamatanMelumpuhkan ciri atau modul yang anda tidak perlukan akan mengurangkan permukaan serangan. Kernel yang lebih minimalis, dalam banyak konteks, merupakan kernel yang lebih selamat.
- Sokongan untuk perkakasan tertentuKadangkala pengedaran anda belum lagi menyertakan pemacu yang anda perlukan, atau ia telah dinyahdayakan; dengan mengkompilasi kernel anda sendiri, anda boleh aktifkan sokongan khusus untuk perkakasan anda (kad rangkaian, RAID, peranti penyimpanan luar biasa, dsb.).
- Fungsi khasAnda mungkin ingin mencuba penjadual tugas baharu, ciri khusus untuk virtualisasi, Docker, kontena, BPF, io_uring atau sebarang ciri lanjutan lain yang tidak diaktifkan secara lalai.
- Pembelajaran dan eksperimenMengkompilasi kernel adalah cara yang sangat mudah untuk Ketahui bagaimana sistem GNU/Linux disusun secara dalaman, bagaimana perkakasan dimulakan dan bagaimana modul disepadukan.
Walau bagaimanapun, bagi pengguna di rumah yang hanya ingin menghidupkan komputer, melayari internet dan sedikit lagi, Mengkompilasi kernel dengan tangan adalah seperti menggunakan meriam untuk membunuh lalat.Ia merupakan proses yang panjang dan rumit, dan adalah perkara biasa untuk makan sedikit makanan sepanjang proses tersebut. panik kernel Sebelum memperhalusinya. Jika anda suka mengubah suai, teruskan; jika tidak, lebih baik kekalkan pakej rasmi untuk distro anda.
Apakah sebenarnya kernel Linux itu?
Kernel Linux merupakan komponen utama sistem: perisian yang terletak di antara perkakasan dan program lainIa bertanggungjawab untuk mengurus memori, proses, sistem fail, peranti input/output, rangkaian, keselamatan dan banyak lagi.
Linux bermula pada tahun 1991 sebagai projek peribadi Linus Torvalds untuk mencipta kernel percuma. Sejak itu ia telah berkembang pesat: hari ini kita bercakap tentang puluhan juta baris kod, yang diselenggara oleh beribu-ribu pembangun di bawah lesen GPLv2Sistem yang biasanya kita panggil "Linux" sebenarnya merupakan gabungan Kernel Linux + alatan GNU dan komponen lain yang mengumpulkan pengedaran.
Apabila anda mengkompil kernel tersuai, apa yang anda lakukan ialah menjana binari (biasanya /boot/versi-vmlinuz) ditambah satu set modul dalam /lib/modul/versi, disertakan dengan fail seperti Sistem.peta, The config dengan konfigurasi yang digunakan dan imej but awal (initrd atau initramfs).
Alat asas yang diperlukan untuk mengkompilasi kernel
Untuk mengkompil kernel Linux daripada sumber, anda memerlukan persekitaran pembangunan yang lengkap. Pada sistem Debian, Ubuntu dan Mint, ini biasanya melibatkan pemasangan binaan-penting dan beberapa perpustakaan dan utiliti tambahan.
Banyak panduan klasik mengesyorkan set seperti berikut (Anda boleh menyesuaikannya mengikut susun atur anda.):
- Set minimum dalam Debian/Ubuntu untuk kernel yang agak moden:
sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev libudev-dev libpci-dev libiberty-dev dkms openssl bc autoconf - Persekitaran pembungkusan Debian untuk membina pakej kernel .deb:
sudo apt install autoconf automake autotools-dev bison build-essential dh-make debhelper debmake devscripts dpkg fakeroot file gfortran git gnupg fp-compiler lintian patch pbuilder perl quilt xutils-dev
Dalam Fedora, CentOS dan derivatifPendekatannya sedikit berubah, tetapi ideanya tetap sama: memasang satu set alat pembangunan dan pustaka untuk antara muka konfigurasi (teks dan grafik). Contohnya, yang berikut biasa digunakan arahan daripada gaya:
su -c 'yum groupinstall "Development Tools"'
su -c 'yum install ncurses-devel qt-devel unifdef'
Tanpa kebergantungan ini, kompilasi akan gagal dengan agak cepat, jadi ia Adalah penting untuk menyediakan persekitaran sebelum memuat turun kod sumber.
Di mana untuk memuat turun kod sumber kernel Linux
Sumber rasmi untuk mendapatkan kod kernel ialah kernel.orgDari situ anda boleh memilih antara versi utama, stabil dan sokongan jangka panjang (LTS). Setiap satu mempunyai foldernya sendiri dan pautan ke bola tar dimampatkan.
Beberapa contoh muat turun yang sering dilihat Tutorial-tutorial tersebut ialah:
- Kernel 6.6 yang stabil untuk ujian terkini:
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xz - Kernel 6.0.11 (cawangan v6.x):
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.0.11.tar.xz - Kernel 5.10.13 (cawangan v5.x):
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.13.tar.xz
Anda juga boleh memuat turun fon daripada repositori pengedaran andaDalam Debian/Ubuntu, sebagai contoh, terdapat pakej sumber linux:
sudo apt-get install linux-source
Ini meninggalkan fail jenis sumber-linux-xxxtar.bz2 en / usr / srcyang boleh anda nyahmampatkan dengan cara yang serupa dengan tarball kernel.org.
Sediakan pokok sumber dan ruang cakera
Sebaik sahaja anda memuat turun tarball kernel, anda perlu mengekstraknya ke lokasi di mana anda telah ruang yang mencukupi dan kebenaran menulisAnda tidak diwajibkan untuk menggunakan /usr/src, walaupun ia merupakan direktori klasik. Anda boleh mencipta, sebagai contoh, direktori seperti ~/Muat Turun/kernel-saya.
Perlu diingat bahawa, apabila tidak dimampatkan, pokok sumber mungkin berada di sekitar 1,5 GBdan semasa penyusunan, perkara-perkara mudah melompat melebihi 7 GBJadi, berikanlah banyak ruang untuk kesilapan.
Beberapa contoh tipikal penyahmampatan bunyi:
- Dengan tar.xz:
tar avxf linux-6.6.tar.xz - Dengan tar.bz2:
tar jxvf linux-2.6.36.tar.bz2 -C /usr/src - Dengan tar.gz:
tar zxvf linux-x.x.x.x.tar.gz -C /usr/src
Selepas membuka zip, anda akan mempunyai direktori seperti linux-6.6 o linux-5.10.13Anda boleh mencipta pautan simbolik generik yang dipanggil linux untuk mengelakkan daripada menjadi gila dengan laluan:
cd /usr/src
sudo ln -s linux-6.0.11 linux
Tidak wajib untuk meletakkan sumber-sumber tersebut di / usr / src, walaupun ramai pemandu pelancong melakukannya di luar tradisi. Penyusunan dan pemasangan akan berfungsi sama jika anda melakukannya dalam folder pengguna anda.dengan syarat anda mempunyai ruang dan permit yang sesuai.
Gunakan semula konfigurasi kernel semasa
Mengkonfigurasi kernel dari awal, pilihan demi pilihan, merupakan tugas yang tidak berkesudahan walaupun untuk orang yang sangat berpengalaman. Amalan biasa ialah guna semula konfigurasi kernel yang telah anda gunakan sebagai titik permulaan.
Untuk melakukan ini, pertama sekali perlu diketahui kernel yang manakah yang telah anda muatkan? sekarang:
uname -r
Hasilnya akan menjadi seperti 6.1.0-13-amd64 o 4.19.0-6-amd64Dengan maklumat tersebut, anda boleh menyalin konfigurasi semasa daripada / boot ke direktori sumber yang baru dinyahmampatkan:
cd linux-6.6
cp /boot/config-$(uname -r) .config
Fail itu .config Ini akan menjadi pangkalan yang digunakan oleh sistem binaan kernel. Dalam versi yang lebih baharu, semasa menjalankan alat konfigurasi, anda hanya akan diminta untuk pilihan yang tidak wujud dalam kernel anda sebelum iniyang menjimatkan banyak masa.
Cara melaraskan tetapan kepada perkakasan sebenar
Selain menggunakan semula fail .config semasa, anda boleh memperhalusinya dengan lebih lanjut menggunakan alat yang disediakan oleh pokok kernel itu sendiri. Satu alat yang sangat berguna ialah buat localmodconfig, yang cuba menjana konfigurasi yang disesuaikan dengan modul yang telah anda muatkan pada masa itu.
Dalam direktori sumber, jalankan sahaja:
make localmodconfig
Arahan ini memeriksa modul aktif dan Ia melumpuhkan banyak perkara yang tidak digunakan oleh sistem anda.Ini sesuai jika anda mengkonfigurasi kernel untuk mesin tertentu itu. Jika anda berhasrat untuk mengkompilasi kernel generik untuk mesin atau pelayan lain, anda perlu menyemaknya dengan teliti selepas itu untuk memastikan anda tidak meninggalkan perkakasan yang tidak terdapat pada sistem tempat anda mengkompilasi.
Mod konfigurasi kernel: persekitaran teks dan grafik
Konfigurasi kernel boleh dilakukan dalam beberapa cara. Kesemuanya menghasilkan atau mengubah suai fail .configTetapi pengalamannya sangat berbeza bergantung pada mod:
- buat konfigurasiSoal selidik berasaskan teks semata-mata, soalan demi soalan. Hari ini ia dianggap praktikal hanya untuk kes yang sangat spesifik; ia perlahan, membosankan, dan mudah melakukan kesilapan.
- Buat menuconfigAntara muka menu berasaskan teks (ncurses), sangat biasa pada pelayan atau apabila anda tidak mempunyai persekitaran grafik. Anda menavigasi dengan kekunci anak panah, tab dan bar ruang.
- buat xconfigAntara muka grafik berasaskan Qt, selesa untuk penggunaan tetikus. Sesuai apabila bekerja dari desktop penuh.
- buat gconfig: Antara muka grafik berasaskan GTK, direka bentuk untuk persekitaran jenis GNOME.
Dalam latihan, Buat menuconfig Ia merupakan bintang utama dalam hampir setiap panduan kerana ia berfungsi dalam hampir semua konteks. Bermula dengan fail .config yang telah disalin, apa yang anda perlu lakukan ialah:
make menuconfig
Anda akan melihat menu utama dengan kategori seperti "Jenis dan ciri pemproses," "Pemacu Peranti," "Sistem fail," "Sokongan rangkaian," "Virtualisasi," dan sebagainya. Dalam setiap satu, anda akan dapat aktifkan, nyahaktifkan atau tandakan sebagai modul Pilihan yang berbeza. Biasanya:
- [*] Ia bermaksud "terbina dalam".
- [M] Ia menunjukkan "ia dikompilasi sebagai modul yang boleh dimuatkan."
- [] Ia telah "dinyahaktifkan".
Ideanya adalah untuk mengintegrasikan ke dalam kernel apa yang diperlukan untuk boot sistem (contohnya, sokongan cakera root), dan menggunakan modul untuk ciri atau ciri yang kurang kritikal yang tidak selalu digunakansupaya inti utama lebih ringan.
Setiap item menu biasanya mempunyai pilihan untuk Bantuan Ini menerangkan dengan tepat apa yang dilakukannya dan kadangkala memberikan cadangan lalai. Jika anda tidak pasti tentang sesuatu yang sangat spesifik, adalah lebih baik untuk kekal dengan nilai yang disyorkan atau nilai yang telah didayakan dalam konfigurasi sebelumnya.
Tetapan berguna: sistem fail, virtualisasi dan Docker
Bahagian penting dalam penyesuaian kernel ialah memilih dengan baik Sistem fail, mekanisme kontena dan pilihan rangkaian apa? Anda memerlukannya. Contohnya, jika anda merancang untuk menggunakan partition NTFS Dengan penulisan, anda perlu mengaktifkan sokongan yang sepadan (biasanya terletak dalam "Sistem Fail → Sistem Fail DOS/FAT/EXFAT/NT").
Jika anda merancang untuk menggunakan virtualisasi atau kontena, terdapat beberapa blok pilihan yang penting untuk dikaji semula. Untuk Docker dan Docker Swarm, sebagai contoh, terdapat beberapa fungsi ruang nama, kumpulan c dan rangkaian yang mesti aktif:
- hierarki ckumpulan.
CONFIG_NAMESPACES,CONFIG_NET_NS,CONFIG_PID_NS,CONFIG_IPC_NS,CONFIG_UTS_NS.CONFIG_CGROUPSdan sub-pilihan sepertiCONFIG_CGROUP_CPUACCT,CONFIG_CGROUP_DEVICE,CONFIG_CGROUP_FREEZER,CONFIG_CGROUP_SCHED,CONFIG_CPUSETS,CONFIG_MEMCG.- Sokongan utama (
CONFIG_KEYS). - Pilihan rangkaian seperti
CONFIG_VETH,CONFIG_BRIDGE,CONFIG_BRIDGE_NETFILTER,CONFIG_NF_NAT_IPV4,CONFIG_IP_NF_FILTER,CONFIG_IP_NF_TARGET_MASQUERADE,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE,CONFIG_NETFILTER_XT_MATCH_CONNTRACK,CONFIG_NETFILTER_XT_MATCH_IPVS,CONFIG_IP_NF_NAT,CONFIG_NF_NAT,CONFIG_NF_NAT_NEEDED. - Sokongan giliran POSIX (
CONFIG_POSIX_MQUEUE). - Pilihan seperti
CONFIG_IPVLANuntuk konfigurasi rangkaian tertentu yang digunakan oleh Docker.
Kebanyakan fungsi ini boleh dikompilasi sebagai modul tanpa masalah, tetapi Adalah dinasihatkan untuk menyemak dokumentasi Docker atau menggunakan skrip ujianTerdapat utiliti seperti semak-config.sh yang menganalisis fail .config kernel dan memberitahu anda apa yang tiada untuk keserasian kontena penuh.
Mekanik asasnya ialah:
chmod +x check-config.sh
./check-config.sh .config
Output akan menunjukkan pilihan mana yang OK, yang tiada atau yang salah konfigurasi. Jika anda mendapati sesuatu yang kritikal telah dilumpuhkan, anda boleh menjalankannya semula. Buat menuconfig o buat xconfig, betulkannya, simpan dan ulangi pengesahan.
Penambahbaikan menarik dalam versi kernel terkini
Selain penyesuaian, ramai orang mengkompilasi versi kernel baharu untuk Manfaatkan penambahbaikan prestasi dan ciri baharu yang masih memerlukan sedikit masa untuk sampai ke pakej pengedaran anda.
Sebagai contoh, di rama 6.6 Penambahbaikan telah disebut seperti:
- Peningkatan prestasi yang ketara dalam EXT4, dengan peningkatan sehingga 34% dalam beban tulis serentak tertentu.
- Penambahbaikan dalam sokongan GPU NVIDIA menggunakan pemacu percuma Nouveau, menyediakan landasan untuk pemacu NVK (Vulkan).
- Pilihan untuk mengkonfigurasi aspek-aspek BIOS daripada peralatan HP terus daripada Linux.
- Tetapan penjadualan kluster untuk pemproses hibrid Intel (Tasik Alder, Tasik Raptor dan kemudiannya).
- Pengoptimuman I/O tak segerak langsung dengan io_uring, dengan peningkatan prestasi sekitar 37% dalam ujian tertentu.
- Perancang tugasan baharu, EEVDF (Tarikh Akhir Maya Terawal Layak Dahulu), yang meningkatkan peruntukan CPU antara proses.
Semua ini datang "di luar kotak" dalam versi moden, tetapi pengedaran anda mungkin mengambil masa untuk membungkus atau mendayakannya, itulah sebabnya ramai orang menggunakan mengkompil kernel yang lebih baharu secara manual.
Mengkompilasi kernel: buat, modul dan utas kompilasi
Sebaik sahaja anda mempunyai konfigurasi seperti yang anda mahukan, tiba masanya untuk menggunakan CPU. Di sinilah arahan memainkan peranan. membuat Kompilasi kernel klasik. Kompilasi boleh mengambil masa antara beberapa minit hingga lebih sejam, bergantung pada perkakasan dan berapa banyak modul yang anda jana.
Pada dasarnya, yang aliran asas Dalam Debian/Ubuntu (atau distro lain) biasanya:
- Kompilasi kernel (imej utama):
make -j$(nproc)
Atau, jika anda mahu ia hanya menggunakan satu teras:
make - Kompil dan pasang modul:
sudo make modules_install
Pilihan -j$(nproc) Ia memberitahu make untuk menggunakan seberapa banyak proses selari yang mempunyai teras CPU anda, yang menjimatkan banyak masa pada mesin moden. Jika anda melihat ralat semasa kompilasi, anda perlu menyemaknya pada titik di mana ia gagal; ia mungkin disebabkan oleh kebergantungan yang hilang, konfigurasi yang bercanggah atau pepijat tertentu dalam versi kernel tersebut.
Beberapa resipi yang lebih maju menggunakan alat Debian make-kpkg dan pakej pakej kernel untuk membungkus kernel ke dalam fail .deb. Ini kemudiannya membolehkan anda memasang dan menyahpasang kernel tersuai seolah-olah ia hanyalah pakej lain, dengan sesuatu seperti:
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
cd /usr/src
sudo dpkg -i *.deb
Dalam senario itu, adalah perkara biasa untuk menghadapi ralat yang berkaitan dengan sijil kernelBanyak panduan menyelesaikan masalah tertentu dengan melumpuhkan kunci yang dipercayai dalam fail .config dengan baris seperti ini:
sed -i '/CONFIG_SYSTEM_TRUSTED_KEYS/s/^/#/g' .config
Pasang kernel yang baru dikompilasi dan kemas kini bootloader
Jika anda tidak menggunakan pembungkusan .deb dan menggunakan alat pokok kernel standard secara "bareback", Pemasangan dilakukan terus dari direktori sumberUrutan yang paling biasa selepas penyusunan ialah:
- Pasang modul (jika anda belum melakukannya):
sudo make modules_install - Pasang kernel:
sudo make install
Sistem skrip kernel sendiri akan menyalin binari bzImej dijana ke /boot, bersama-sama dengan System.map dan fail konfigurasi. Dalam Debian/Ubuntu, skrip biasanya dicetuskan dalam /etc/kernel/postinst.d yang menghasilkan initramfs dan kemas kini pengurus but (GRUB) secara automatik.
Walaupun begitu, tidak ada salahnya untuk melaksanakan secara eksplisit:
sudo update-initramfs -u
sudo update-grub
sudo update-grub2
Dengan ini Anda memastikan bahawa imej but awal telah dijana semula dengan betul. untuk versi kernel baharu, dan GRUB mengambil kiranya dalam menunya. Dalam pengedaran lain, seperti beberapa yang berasaskan Red Hat, ia boleh digunakan mkinitrd o dracut bukannya update-initramfs, tetapi matlamatnya adalah sama: cipta imej initrd/initramfs yang sesuai untuk kernel baharu.
Peranan initrd/initramfs dan potensi masalah
initrd atau initramfs ialah imej sistem fail yang dimuatkan ke dalam memori pada awal proses butIa mengandungi pemacu minimum yang diperlukan untuk memasang sistem fail root sebenar (contohnya, sokongan untuk pengawal SATA atau NVMe tempat partition / anda berada).
Jika initrd anda dijana secara salah atau tidak mengandungi modul yang diperlukan, kernel akan boot tetapi tidak akan dapat dipasang / dan anda akan berakhir dengan panik kernel mengadu bahawa dia tidak dapat menemui akar sistem fail. Ini adalah ralat biasa apabila pilihan kernel kritikal dinyahdayakan atau initramfs dilupakan selepas menukar versi.
Dalam Debian/Ubuntu, arahan rujukan hari ini ialah kemas kini-initramfs:
sudo update-initramfs -c -k x.x.x
Parameter -c mewujudkan imej baharu, dan -k menunjukkan versi kernel yang tepat. Dalam pengedaran lama (atau dengan alat yang berbeza) ia telah digunakan mkinitrd dengan sintaks yang serupa:
cd /boot
mkinitrd -o initrd.img-2.6.36 2.6.36
Walau apa pun, jika selepas memasang kernel tersuai anda, anda melihat ralat yang berkaitan dengan /lib/modules atau pemasangan root, Pertama, semak initramfs/initrd dan konfigurasi GRUB. sebelum menyentuh apa-apa lagi.
Sahkan bahawa kernel baharu berfungsi dengan betul
Setelah semuanya dipasang dan pengurus but dikemas kini, tiba masanya untuk but semula bagi menguji sistem. Semasa permulaan, pantau mesej but GRUB dan kernel sekiranya ralat muncul daripada modul, sistem fail atau peranti yang tidak dikenali.
Sebaik sahaja berada di dalam sistem, anda boleh menyemak versi kernel yang anda gunakan:
uname -a
Output hendaklah mencerminkan versi yang baru disusunDari situ, ia adalah satu perkara untuk menguji perkhidmatan biasa anda: pelayan web, pangkalan data, Docker, mesin mayaprogram desktop, dsb. Jika semuanya berfungsi dengan betul, anda boleh membiarkan kernel tersebut sebagai kernel utama dan menyimpan versi lama sebagai sandaran.
Cara kembali ke kernel sebelumnya dan menyahpasang yang baharu
Jika sesuatu berlaku (yang boleh berlaku, terutamanya pada beberapa kali pertama), perkara penting ialah Jangan panikSelagi GRUB anda menyenaraikan kernel lain yang berfungsi, anda boleh memulihkan sistem tanpa terlalu banyak masalah.
Proses tipikal akan:
- Mulakan semula sistem.
- Pada skrin GRUB, bergerak dengan anak panah dan masukkan bahagian jenis "Pilihan lanjutan untuk…".
- Pilih versi kernel lama yang anda tahu berfungsi dengan baik.
- But dengan kernel itu dan, setelah berada di dalam, teruskan untuk memadam kernel yang bermasalah.
Jika anda memasang kernel secara manual, tanpa pakej .deb, penyingkiran biasanya melibatkan padam fail yang sepadan dalam /boot dan /lib/modulesContohnya, untuk mengalih keluar 6.6.0, anda boleh lakukan:
cd /boot
sudo rm config-6.6.0 initrd.img-6.6.0 System.map-6.6.0 vmlinuz-6.6.0
Dan kemudian, padam modulnya:
cd /lib/modules
sudo rm -rf 6.6.0
Setelah selesai, kemas kini GRUB supaya ia tidak lagi menawarkan kernel tersebut dalam menu dan but semula:
sudo update-grub
sudo update-grub2
sudo reboot
Jika anda memasang kernel yang dibungkus sebagai .deb, ia lebih bersih. Gunakannya seperti mana-mana pakej lain Gunakan apt atau dpkg untuk menyahpasangnya, memastikan keadaan sistem terkawal dengan lebih baik.
Nota untuk pengedaran lain: Fedora, CentOS dan lain-lain
Walaupun panduan ini banyak memberi tumpuan kepada Debian/Ubuntu/Mint, logik umum adalah serupa dalam pengedaran berasaskan Red Hat seperti Fedora atau CentOS. Apakah perubahan yang berlaku? alat pengurusan pakej, beberapa nama kebergantungan dan cara mengakses pengurus but.
Dalam Fedora/CentOS, sebagai contoh, aliran kerja asas untuk mengkompilasi kernel daripada kernel.org mungkin:
- Pasang alat pembangunan:
su -c 'yum groupinstall "Development Tools"'
su -c 'yum install ncurses-devel qt-devel unifdef' - Muat turun versi stabil (seperti 2.6.36 dalam contoh klasik):
cd /tmp
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2 - Nyahzip dan sediakan pokok sumber:
mkdir /usr/src/linux
tar -xjvf linux-2.6.36.tar.bz2 -C /usr/src/linux
cd /usr/src/linux - Konfigurasikan kernel menggunakan menuconfig, xconfig atau gconfig.
- Susun dan pasang:
make
make modules
make modules_install
make install
Kemudian anda perlu menyemak dan mengedit /boot/grub/grub.conf (atau fail yang setara, bergantung pada sama ada anda menggunakan GRUB Legacy, GRUB2, dll.) untuk menambah entri untuk kernel baharu dengan initrd yang sepadan, dengan berhati-hati dengan laluan akar = dan rujukan kepada isipadu logik jika anda menggunakan LVM.
Mengkompil, mengkonfigurasi dan memasang kernel Linux tersuai merupakan proses yang panjang tetapi sangat instruktif: ia memaksa anda untuk memahami modul mana yang perlu anda but, pilihan mana yang penting untuk perkhidmatan anda (seperti Docker atau virtualisasi), bagaimana initramfs dan GRUB disepadukan ke dalam proses but dan cara sentiasa mengekalkan pilihan sandaran untuk kembali kepada kernel sebelumnya jika berlaku masalah. Jika anda meluangkan masa untuk menyemak setiap bahagian, menggunakan semula konfigurasi kernel semasa anda dengan bijak dan membiasakan diri dengan menguji perubahan secara beransur-ansur, anda akhirnya boleh menikmati sistem yang benar-benar berkuasa. lebih dioptimumkan, disesuaikan dengan perkakasan anda dan sejajar dengan keperluan sebenar anda daripada yang disediakan oleh kernel generik kebanyakan pengedaran.
Penulis yang bersemangat tentang dunia bait dan teknologi secara umum. Saya suka berkongsi pengetahuan saya melalui penulisan, dan itulah yang akan saya lakukan dalam blog ini, menunjukkan kepada anda semua perkara yang paling menarik tentang alat, perisian, perkakasan, trend teknologi dan banyak lagi. Matlamat saya adalah untuk membantu anda mengemudi dunia digital dengan cara yang mudah dan menghiburkan.