虚机 8核4G HDD uname -a Linux li-ubuntu2004 5.4.0-125-generic #141-Ubuntu SMP Wed Aug 10 13:42:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux apt-get install gcc libncurses5-dev build-essential kernel-package libssl-dev kernel-source-** libc6-dev tk8.* fakeroot bin86 flex bison dwarves #For CentOS #yum install gcc gcc-c++ #yum install "Development Tools" #yum install ncurses-devel 挂载新虚拟磁盘(可选,编译过程需30GB磁盘空间) #fdisk -l lsblk mkfs -t ext4 /dev/sdb mount /dev/sdb /opt 永久性挂载: 得到这个分区的UUID: blkid /dev/sdb vi /etc/fstab 最后一行后面追加: UUID=cf9aa31c-9800-4ce3-bacf-13bc0599c128 /opt ext4 defaults 0 2 使之生效: mount -a 重启服务器,就会自动挂载了 #如需卸载分区: #umount /dev/sdb Download: https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.213.tar.xz tar -xvf linux-5.4.213.tar.xz cd linux-5.4.213 make menuconfig 在选项上按下shift+?可以获得帮助信息 查看已保存的配置: vi .config 修改: CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" #如果CONFIG_SYSTEM_REVOCATION_KEYS的值不为空的话,也将其赋空值 CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem" To: CONFIG_SYSTEM_TRUSTED_KEYS="" CONFIG_SYSTEM_REVOCATION_KEYS="" #For some old version kernel make dep make -j8 #耗时36分钟 make module -j8 make INSTALL_MOD_STRIP=1 modules_install -j8 #耗时6分钟 make install -j8 reboot 选择Advanced options 选择5.4.213内核 设置启动时默认内核: grep gnu-linux /boot/grub/grub.cfg 首先找到本机所有的Linux内核启动项: grep gnu-linux /boot/grub/grub.cfg 输出: menuentry 'Ubuntu, with Linux 5.4.0-123-generic' --class ubuntu --class gnu-linux ... menuentry 'Ubuntu, with Linux 5.4.0-123-generic (recovery mode)' --class ubuntu --class gnu-linux ... menuentry 'Ubuntu, with Linux 5.4.213' --class ubuntu --class gnu-linux ... menuentry 'Ubuntu, with Linux 5.4.213 (recovery mode)' --class ubuntu --class gnu-linux ... 第一项索引为0,从上向下依次递增 vim /etc/default/grub 将 GRUB_DEFAULT=0 修改为 GRUB_DEFAULT="1> 2" 意思是在grub主菜单中选择第2个选项(索引1),GRUB菜单中的 Ubuntu为0,Advanced options for Ubuntu为1,…) 在其子菜单中选择第3个选项(索引2),即"1> 2",注意>和2之间有一个空格。 修改完后保存,然后更新grub.cfg update-grub2 如需删除多余内核: 检查当前内核 uname -a 查看所有内核 dpkg --get-selections | grep linux 移除冗余内核 apt-get purge \ linux-headers-5.4.0-88 \ linux-headers-5.4.0-88-generic \ linux-image-5.4.0-88-generic \ linux-modules-5.4.0-88-generic \ linux-modules-extra-5.4.0-88-generic 卸载后重新检查 dpkg --get-selections | grep linux 更新系统引导 删除内核后需要更新grub移除失效的启动项 #根据情况选择grub/grub2 update-grub2 #下面内容For CentOS: CentOS编译2.6.39.4内核报错: ERROR: modinfo: could not find module vmware_balloon 这个模块在后面的版本中,已经更名为 vmw_balloon 解决方法: cd /lib/modules/2.6.39.4/kernel/drivers/misc/ ln -s vmw_balloon.ko vmware_balloon.ko 安装完毕后 vi /boot/grub/grub.conf default=0