GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:compilazione e installazione di un kernel Kernel.org su un volume personalizzato su disco?

Voglio compilare e installare un kernel kernel.org su un volume HDD personalizzato, ad esempio /dev/sda5 , invece di essere unito alle mie attuali directory di Ubuntu.

Posso trovare informazioni sulla configurazione e sul processo di compilazione in tutto il Web, ma non c'è traccia di come inserire il kernel su un volume personalizzato (diverso dalla distribuzione avviata che stai utilizzando al momento della compilazione). Quello che sto chiedendo è come possiamo installare 2 diverse distribuzioni su 2 diversi volumi su 1 HDD, ora pensa al mio kernel personalizzato come a un'altra distro.

Risposta accettata:

Puoi compilare un kernel ovunque tu voglia, inclusa la tua home directory. L'unico momento in cui le directory al di fuori dell'albero di build vengono modificate è quando si effettua una delle install* obiettivi. Quindi, per installare un kernel faresti l'ovvio:

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

Dopo aver configurato il kernel, verrà compilato. A questo punto, avrai un binario del kernel (vmlinux) e un'immagine del kernel avviabile sotto arch/$YOUR_ARCHITECTURE/boot/bzImage.

Se stai creando un kernel monolitico, hai finito. Copia il file non compresso (vmlinux ) o un file compresso (bzImage ) al volume previsto, configura il boot manager se necessario e il gioco è fatto.

Se hai bisogno di installare moduli e supponendo che tu abbia montato il tuo volume di destinazione su /mnt, potresti dire:

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

Questo copierà l'immagine del kernel in /mnt/boot e i moduli su /mnt/lib/modules/$VERSION .

Si prega di notare, sto semplificando eccessivamente. Se hai bisogno di aiuto per costruire il kernel manualmente, dovresti leggere alcuni dei documenti nella Documentation/ dell'albero dei sorgenti del kernel sottodirectory. Il README ti dice anche come compilarlo e installarlo in dettaglio.

L'avvio del kernel è una storia diversa, però. La maggior parte delle distribuzioni moderne utilizza un'immagine RAMdisk iniziale che contiene un sacco di driver per l'hardware necessario per visualizzare il resto del kernel (dispositivi a blocchi, filesystem, rete, ecc.). Questo processo non creerà questa immagine. A seconda di cosa devi fare (cosa fare devi fare?), puoi utilizzarne uno esistente o crearne uno nuovo utilizzando la toolchain della tua distribuzione. Dovresti controllare la documentazione su update-initramfs .

Ci sono anche altri problemi, però. Utilizzando la toolchain standard non è possibile compilare un kernel per un'architettura o una sottoarchitettura diversa. Nota che in alcuni casi, anche i kernel compilati su un particolare tipo di box x86 non funzioneranno su certi altri tipi di box x86. Tutto dipende dalla combinazione di sotto-architetture e configurazione del kernel. La compilazione tra architetture (ad esempio, la creazione di un kernel ARM su una macchina x86) è del tutto fuori questione a meno che non si installi un'appropriata toolchain di compilazione incrociata.

Correlati:Linux:perdo file se svuoto la cache (echo 3> /proc/sys/vm/drop_caches)?

Se stai cercando di salvare un'altra installazione o computer, tuttavia, un disco di ripristino potrebbe essere più utile della creazione di un kernel personalizzato come quello.

Un'altra cosa:se stai provando a costruire un kernel per un altro computer che si avvia, è la stessa architettura di quello su cui stai compilando ed esegue un sistema operativo Debian o simile a Debian (Ubuntu conta), potresti installare il kernel-package pacchetto (sudo aptitude install kernel-package ). Quindi decomprimere il kernel, cd alla radice dell'albero di origine e pronuncia:

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

Questo applicherà le patch necessarie, configurerà il kernel, lo compilerà e lo impacchetta come un pacchetto .deb (pochi pacchetti, in realtà). Tutto quello che devi fare è installarlo sul tuo sistema di destinazione e il gioco è fatto.


Linux
  1. Come installare e testare Ansible su Linux

  2. Come installare e utilizzare Flatpak in Linux

  3. Installazione e configurazione di Grafana in Linux

  4. Cosa fare dopo aver installato Arch Linux?

  5. Compilando il kernel Linux, quanta dimensione è necessaria?

Installa Linux Kernel 4.15 in sistemi basati su RPM e DEB

Installa e configura Ansible in Linux

Installazione e configurazione di Jenkins in Linux

Come installare e utilizzare phpMyAdmin in Linux

Come installare e utilizzare il comando fd in Linux

Come installare e utilizzare Nu Shell su Linux