GNU/Linux >> Belajar Linux >  >> Linux

Linux – Mengkompilasi Dan Menginstal Kernel.org Kernel Ke Volume Kustom Pada Disk?

Saya ingin mengkompilasi dan menginstal kernel kernel.org pada volume HDD khusus, katakan /dev/sda5 , alih-alih digabungkan dengan direktori Ubuntu saya saat ini.

Saya dapat menemukan informasi tentang konfigurasi dan proses kompilasi di seluruh web, tetapi tidak ada petunjuk tentang cara menempatkan kernel pada volume khusus (berbeda dari distro boot yang Anda gunakan saat kompilasi). Yang saya tanyakan adalah bagaimana kita dapat menginstal 2 distro yang berbeda pada 2 volume yang berbeda pada 1 HDD, sekarang anggap kernel kustom saya sebagai distro lain.

Jawaban yang Diterima:

Anda dapat mengkompilasi kernel di mana pun Anda suka, termasuk direktori home Anda. Satu-satunya waktu direktori di luar pohon build dimodifikasi adalah ketika Anda membuat salah satu dari install* target. Jadi, untuk menginstal kernel, Anda harus melakukan hal yang jelas:

cd $SOME_DIRECTORY
tar -xjvf linux-$VERSION.tar.bz2
cd linux-$VERSION
make mrproper menuconfig
# Configure the kernel here.
# Now build it using all your CPU threads in parallel.
make -j$(grep -c processor /proc/cpuinfo) bzImage modules

Setelah Anda mengkonfigurasi kernel, itu akan dibangun. Pada titik ini, Anda akan memiliki biner kernel (vmlinux) dan gambar kernel yang dapat di-boot di bawah arch/$YOUR_ARCHITECTURE/boot/bzImage.

Jika Anda sedang membangun kernel monolitik, Anda selesai. Salin file yang tidak dikompresi (vmlinux ) atau file terkompresi (bzImage ) ke volume yang Anda inginkan, konfigurasikan boot manager jika perlu, dan pergilah.

Jika Anda perlu menginstal modul, dan dengan asumsi Anda telah memasang volume target Anda di /mnt, Anda dapat mengatakan:

INSTALL_MOD_PATH=/mnt \
INSTALL_PATH=/mnt/boot \
make modules_install

Ini akan menyalin gambar kernel ke /mnt/boot dan modul ke /mnt/lib/modules/$VERSION .

Harap dicatat, saya terlalu menyederhanakan ini. Jika Anda memerlukan bantuan untuk membuat kernel secara manual, Anda harus membaca beberapa dokumen di Documentation/ pohon sumber kernel. subdirektori. README file juga memberi tahu Anda cara membuat dan menginstalnya secara mendetail.

Mem-boot kernel adalah cerita yang berbeda. Sebagian besar distribusi modern menggunakan image RAMdisk awal yang berisi banyak driver untuk perangkat keras yang diperlukan untuk menampilkan kernel lainnya (perangkat blok, sistem file, jaringan, dll). Proses ini tidak akan membuat gambar ini. Tergantung pada apa yang perlu Anda lakukan (apa lakukan perlu Anda lakukan?), Anda dapat menggunakan yang sudah ada atau membuat yang baru menggunakan rantai alat distribusi Anda. Anda harus memeriksa dokumentasi di update-initramfs .

Ada masalah lain juga, meskipun. Dengan menggunakan rantai alat standar, Anda tidak dapat mengompilasi kernel untuk arsitektur atau sub-arsitektur yang berbeda. Perhatikan bahwa dalam beberapa kasus, bahkan kernel yang dikompilasi pada jenis kotak x86 tertentu tidak akan berfungsi pada jenis kotak x86 tertentu lainnya. Itu semua tergantung pada kombinasi sub-arsitektur dan konfigurasi kernel. Kompilasi lintas arsitektur (misalnya membangun kernel ARM pada mesin x86) sama sekali tidak mungkin dilakukan kecuali Anda menginstal rantai alat kompilasi silang yang sesuai.

Terkait:Linux – kehilangan file jika saya membersihkan cache (echo 3> /proc/sys/vm/drop_caches)?

Namun, jika Anda mencoba menyelamatkan instalasi atau komputer lain, disk penyelamat mungkin lebih berguna daripada membuat kernel khusus seperti itu.

Satu hal lagi:jika Anda mencoba membuat kernel untuk komputer lain yang melakukan booting, arsitekturnya sama dengan yang Anda kompilasi, dan menjalankan OS mirip Debian atau Debian (hitungan Ubuntu), Anda dapat menginstal kernel-package paket (sudo aptitude install kernel-package ). Kemudian ekstrak kernel, cd ke akar pohon sumber, dan ucapkan:

CONCURRENCY_LEVEL=$(grep -c processor /proc/cpuinfo) \
sudo make-kpkg --initrd binary-arch

Ini akan menerapkan patch yang diperlukan, mengkonfigurasi kernel, membangunnya dan mengemasnya sebagai paket .deb (sebenarnya beberapa paket). Yang perlu Anda lakukan adalah menginstalnya di sistem target Anda dan selesai.


Linux
  1. Cara Menginstal dan Menguji Ansible di Linux

  2. Linux – Mengonfigurasi, Mengkompilasi, dan Menginstal Kernel Linux Kustom?

  3. Apa yang harus dilakukan setelah menginstal Arch Linux?

  1. Cara Menginstal Dan Menggunakan Flatpak Di Linux

  2. Ukuu Kernel Manager – Instal dan Tingkatkan Kernel Linux di Ubuntu

  3. Mengkompilasi kernel Linux, berapa ukuran yang dibutuhkan?

  1. Cara menginstal Elasticsearch dan Kibana di Linux

  2. Cara Menginstal dan Menggunakan Traceroute di Linux

  3. Menginstal dan mengatur Grafana di linux