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' p>
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 p>
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.