Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo iniciar el sistema usando un kernel recién compilado

Cómo iniciar el sistema usando un kernel recién compilado

Paso 1

Preparación: (1). Código fuente del kernel requerido

Paso 2:

Cambie al directorio del código fuente y ejecute. el comando make distclean: elimine los archivos .o y .config producidos

Antes de compilar el kernel, necesita tener un archivo de configuración y modificarlo sobre esta base, así que tome prestado el archivo local /boot/config-3.13 .0-24-generic? archivo de configuración, ejecute el comando: cp /boot/config-3.13.0-24-generic? 13.0-24-generic? archivo de configuración, el comando es: cp /boot/config-3.13.0-24-generic /home/yangqi/code/linux/linux-4.2.3/.config

Configuración El archivo .config es el corte de configuración del kernel y no necesita abrirse ni modificarse directamente. El sistema proporciona una interfaz de modificación de menú, comando: make menuconfig (si hay un error en este comando, significa que es necesario instalar la biblioteca ncurses, el comando de instalación: sudo apt-get install libncurses5-dev) (el directorio del menú es el siguiente:)

Configuración completada. Después de eso, guárdela.

A continuación, compile el kernel de acuerdo con el archivo de configuración: make bzImage V=1 (V=1 mostrará el proceso de compilación), el tiempo de compilación es de aproximadamente 1 hora

Después Al compilar el kernel, bzImage se almacenará en linux-4.2.3/arch/x86_64 (x86_64 es la arquitectura del sistema que elija. Al configurar el sistema, sin importar la arquitectura que elija, el archivo del kernel se almacenará en el kernel llamado después de la arquitectura correspondiente (x86_64 es la arquitectura del sistema que seleccionó. Al configurar el kernel, los archivos del kernel compilados se almacenarán en la carpeta correspondiente con el nombre de la arquitectura) (La siguiente imagen muestra la carpeta con el nombre de la arquitectura)

A continuación, compilar módulos: crear módulos tarda aproximadamente dos horas

Utilice el comando make module_install para inyectar los archivos del módulo compilado en /lib/modules del sistema (el éxito se muestra en la imagen).

Aquí verá la carpeta 4.2.3)

A continuación, cree el archivo ramdisk de inicio: use mkinitrd init-4.2.3 4.2.3? cp init4.2.3 /boot/init4 en RedHat .2.3 (init -4.2.3 es en sí mismo, el último parámetro 4.2.3 debe ser coherente con el archivo /lib/modules 4.2.3, que es el número de versión del kernel en ubutun, use mkinitramfs 4.2.3 -o /boot/); init-4.2.3

Luego, también necesita compilar bzImage (linux-4.2.3/arch/x86_64/boot/) compilado en el paso 6 en /boot/: cp?/home/yangqi /code/linux/linux-4.2.3/arch/x86_64/boot?/Asegúrese de que bzImage e initrd-4.2.3 estén ambos en /boot/)

Finalmente, modifique el archivo de configuración de inicio del sistema: (en RedHat, modifique /etc/grub.conf o /etc/lilo.conf)

En ubuntu, use el siguiente comando para modificar el archivo /boot/grub/grub.cfg: sudo gedit / boot/grub/grub.cfg (?). Modificar de la siguiente manera:menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-cfd7566c-18ef-47bf-. 9b04-b285d20564ee' {

gfxmode $linux_gfx_mode

insmod gzio

insmod ntfs

set root='hd1,msdos1'

if [ x$feature_ platform_search_hint = xy ]; entonces

buscar --no-floppy --fs-uuid --set=root --hint-bios=hd1, msdos1 -- sugerencia-efi=hd1, msdos1 --hint-baremetal=ahci1, msdos1?FA5CCE605CCE1773

else

búsqueda --no-floppy --fs-uuid --set=root FA5CCE605CCE1773

fi

loopback loop0 /ubuntu/disks/root.disk

set root=(loop0)

linux /boot/vmlinuz -3.13.0- 24-generic root=UUID=FA5CCE605CCE1773 loop=/ubuntu/disks/root.disk rw rootflags=sync? quiet splash $vt_handoff

initrd /boot/initrd.img-3.13.0 -24-entrada de menú genérica

}

'Ubuntu My Linux-4.2.3'

--class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-cfd7566c-18ef- 47bf-9b04-b285d20564ee' {

gfxmode $linux_gfx_mode

insmod gzio

insmod ntfs

set root='hd1, msdos1'

if [ x$ feature_platform_search_hint = xy ];

búsqueda --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1?FA5CCE605CCE1773

else

buscar --no-floppy --fs-uuid --set=root FA5CCE605CCE1773

fi

loopback loop0 /ubuntu/ disks/root.disk

set root=(loop0)

linux/boot/vmlinux-4.2.3?root=UUID=FA5CCE605CCE1773 loop=/ubuntu/disks/root.disk rw rootflags=sync?quiet splash $vt_handoff

initrd /boot/initrd-4.2.3

}

Instrucciones de modificación: el azul está ahí desde el principio. Código, el rojo es una copia de la parte azul, el rojo es una copia de la parte azul y, modificado en base a él, la parte modificada es la parte verde. (Nota: ingresar la tecla Enter durante el inicio activará el comando de entrada de menú)

12. Finalmente, también necesita modificar el archivo set default="0" (antiguo) set default="1" (nuevo ), donde se debe especificar el número de sistemas.

13. Después de guardar, reinicie la computadora para ver las opciones recién agregadas. Después de ingresar al sistema, use uname -r para ver el nuevo kernel 4.2.3.