当前位置: 首页 > 科技观察

LKU:一套在Ubuntu-LinuxMint上编译、安装和更新最新内核的Shell脚本

时间:2023-03-18 16:01:46 科技观察

LKU:一组shell脚本,用于在Ubuntu/LinuxMint上编译、安装和更新最新的内核人也是如此。它需要对Linux内核有深入的了解。之前我们介绍过UKUU(UbuntuKernelUpgradeUtility),可以自动从kernel.ubuntu.com网站检测最新的主线内核,并弹出漂亮的安装窗口界面。LinuxKernelUtilities(LKU)提供了一套shell脚本(三个shell脚本),可以帮助用户从kernel.org获取、编译和安装最新的Linux内核,或者从kernel.ubuntu.com获取并安装***预编译Ubuntu内核。如果需要,甚至可以选择所需的内核(手动内核选择)。该脚本还将根据PGP签名文件检查下载的档案,并可以在通用内核和低延迟内核之间进行选择。推荐阅读:ukuu:一种在基于Ubuntu的系统上安装和升级Linux内核的简单方法它会删除或清除所有不活动的内核,并且出于安全目的不会留下备份内核。强烈建议在执行此脚本之前重新启动一次。compile_linux_kernel.sh:用户可以从kernel.org编译和安装所需或已安装的内核update_ubuntu_kernel.sh:用户可以从kernel.ubuntu.comremove_old_kernels安装和更新所需或已安装的预编译Ubuntu内核。sh:这将删除或清除所有不活动的内核,并且只保留当前加载的版本。kernel.org有固定的发布周期(每三个月一次),发布的内核包括新特性、改进的硬件和系统性能。由于它有一个标准的发布周期,大多数发行版不提供最新的内核,滚动发布除外(例如ArchLinux、openSUSETumbleweed等)。如何安装LinuxKernelUtilities(LKU)正如我们在文章开头所说,它的一套shell脚本只是克隆开发者的github存储库并运行相应的shell文件来执行该过程。$gitclonehttps://github.com/mtompkins/linux-kernel-utilities.git&&cdlinux-kernel-utilities安装指定版本的内核出于测试目的,我们将安装Linuxv4.4.10-xenial内核。在安装新内核之前,我们需要通过uanme-a命令查看当前安装的内核版本,这样才能检查新内核是否可以安装。$uname-aLinuxmagi-VirtualBox4.4.0-21-generic#37-UbuntuSMPMonApr1818:33:37UTC2016x86_64x86_64x86_64GNU/Linux根据上面的输出,我们的系统使用的是4.4.0-21通用内核。只需运行update_ubuntu_kernel.shshell脚本。脚本第一次运行时,它会检查是否满足所有依赖项,然后自动安装缺少的依赖项。它检测系统使用的发行版并检索kernel.ubuntu.com上可用的预编译内核。现在,从列表中选择您需要的内核并输入序列号,然后按回车,它将下载内核映像(linux-headers-4.4.10、linux-headers-4.4.10-xxx-generic♂和linux-image-4.4.10-xxx-generic)。下载内核映像后,它将要求输入sudo密码以开始安装新内核。$./update_ubuntu_kernel.sh[+]CheckingDistro\_DistroidentifiedasLinuxMint.[+]CheckingDependenciescurlFounddkmsFoundgitFoundsudoFoundwgetFoundwhiptailFoundlynxNotFound--InstallingDependencies--[!]Thefirsttimethisscriptisrunmissingdependencieswillbeinstalled.Forcompilingakernelthismaytakeabitoftime.Feedbackwillbeprovided.[+]Dependencies\_Elevatingpermissionsasnecessary...[%]Elevated[+]Testingforpreviousheldpackagesandtryingtocorrectanyfound.\_已通过[+]更新包缓存...\_完成[+]正在安装依赖项...\_CompletecurlFounddkmsFoundgitFoundsudoFoundwgetFoundwhiptailFoundlynxFound[+]正在更改临时目录以工作...\_已授予临时目录访问权限:/tmp/tmp.97eHDsmg2K[+]删除任何可用的冲突删除残留[ker]...\Remnants.\_Precompiledkernelsavailablefromkernel.ubuntu.com:1)Linuxv4.112)Linuxv4.11.33)Linuxv4.11.24)Linuxv4.11.15)Linuxv4.106)Linuxv4.10.177)Linuxv4.10.168)Linuxv4.10.159)1.Linuxv4.159)1.1Linuxv4.10)1.1Linuxv14.10)Linuxv4.10.12[节略……]249)Linuxv4.0.3-wily250)Linuxv4.0.2-wily251)Linuxv4.0.1-wily252)Linuxv4.0-vividSelectyourdesiredkernel:158Doyouwantthelowlatencykernel?(y/[n]):[+]Processingselection\_DeterminingCPUtype:amd64\_Locatingsourceofv4.4.10-xenialgenerickernelpackages.\_Done[+]CheckingAntiVirusflaganddisablingifnecessary[+]Installingkernel...[sudo]passwordformagi:Selectingpreviouslyunselectedpackagelinux-headers-4.4.10-040410.(读取数据库...230647Preuxpackoriesunstallinglyparcurrentheaderfiles)4.4.10-040410_4.4.10-040410.201605110631_all.deb...解压linux-headers-4.4.10-040410(4.4.10-040410.201605110631)...选择以前未选择的packagelinux-headers-4.4.10-040410-040.414.4.10-040410-generic_4.4.10-040410.201605110631_amd64.deb...解压linux-headers-4.4.10-040410-generic(4.4.10-040410.201605110631)...选择先前未选择的packagelinux-image-4.4.40.10-040410-genericc.Preparingtounpacklinux-image-4.4.10-040410-generic_4.4.10-040410.201605110631_amd64.deb...Done.Unpackinglinux-image-4.4.10-040410-generic(4.4.10-040410.201605110631)...headers-setting-uplinux4.4.10-040410(4.4.10-040410.201605110631)...Settinguplinux-headers-4.4.10-040410-generic(4.4.10-040410.201605110631)...检查/etc/kernel/header_postinst.d.run-parts:执行/etc/kernel/header_postinst.d/dkms4.4.10-040410-generic/boot/vmlinuz-4.4.10-040410-genericSettinguplinux-image-4.4.10-040410-generic(4.4.10-040410.201605110631)...Runningdepmod.update-initramfs:deferringupdate(hookwillbecalledlater)检查/etc/kernel/postinst.d.run-parts:executing/etc/kernel/postinst.d/apt-auto-removal4.4.10-040410-generic/boot/vmlinuz-4.4.10-040410-genericrun-parts:executing/etc/kernel/postinst.d/dkms4.4.10-040410-generic/boot/vmlinuz-4.4.10-040410-genericrun-parts:executing/etc/kernel/postinst.d/initramfs-tools4.4.10-040410-generic/boot/vmlinuz-4.4.10-040410-genericupdate-initramfs:Generating/boot/initrd.img-4.4.10-040410-genericWarning:Nosupportforlocale:en_INrun-parts:executing/etc/kernel/postinst.d/pm-utils4.4.10-040410-generic/boot/vmlinuz-4.4.10-040410-genericrun-parts:executing/etc/kernel/postinst.d/unattended-upgrades4.4.10-040410-generic/boot/vmlinuz-4.4.10-040410-genericrun-parts:executing/etc/kernel/postinst.d/zz-update-grub4.4.10-040410-generic/boot/vmlinuz-4.4.10-040410-genericGeneratinggrubconfigurationfile...警告:当GRUB_HIDDEN_TIMEOUT不再受支持时,将GRUB_TIMEOUT设置为非零值。Foundlinuximage:/boot/vmlinuz-4.4.10-040410:/boot/initrd.img-4.4.10-040410-genericFoundlinuximage:/boot/vmlinuz-4.4.9-040409-lowlatencyFoundinitrdimage:/boot/initrd.img-4.4.9-040409-lowlatencyFoundlinuximage:/boot/vmlinuz-4.4.0-21-genericFoundinitrdimage:/boot/initrd.img-4.4.0-21-genericFoundmemtest86+image:/boot/memtest86+.elfFoundmemtest86+image:/boot/memtest86+.bindone\_安装完成后需要重新启动才能使用新安装的内核$sudorebootnow现在您正在使用新安装的4.4.10-040410-generic内核。$uname-aLinuxmagi-VirtualBox4.4.10-040410-generic#201605110631SMPWedMay1110:33:23UTC2016x86_64x86_64x86_64GNU/Linux安装最新版内核的过程同上,会自动安装最新版内核。$./update_ubuntu_kernel.sh--latest[+]CheckingDistro\_DistroidentifiedasLinuxMint.[+]CheckingDependenciescurlFounddkmsFoundgitFoundsudoFoundwgetFoundwhiptailFoundlynxFound[+]Changingtotemporarydirectorytoworkin...\_Temporarydirectoryaccessgranted:/tmp/tmp.pLPYmCze6S[+]Removinganyconflictingremnants...\_Done[+]Retrievingavailablekernelchoices...\_Precompiledkernelsavailablefromkernel.ubuntu.com:....警告:当GRUB_HIDDEN_TIMEOUT不再支持时,将GRUB_TIMEOUT设置为非零值。Foundlinuximage:/boot/vmlinuz-4.11.3-041103-genericFoundinitrdimage:/boot/initrd.img-4.11.3-041103-image:generic/Foundlinuximage:/boot/vmlinuz-4.11.3-041103-genericboot/vmlinuz-4.4.10-040410-genericFoundinitrdimage:/boot/initrd.img-4.4.10-040410-genericFoundlinuximage:/boot/vmlinuz-4.4.9-040409-lowlatencyFoundinitrdimage:/boot/initrd.img-4.4.9-040409-lowlatencyFoundlinuximage:/boot/vmlinuz-4.4.0-21-genericFoundinitrdimage:/boot/initrd.img-4.4.0-21-genericFoundmemtest86+image:/boot/memtest86+.elfFoundmemtest86+image:/boot/memtest86+.bindone\_Done安装后需要重新启动才能使用新安装的内核$sudorebootnow您现在使用的是最新版本4.11.3-041103-generic内核。$uname-aLinuxmagi-VirtualBox4.11.3-041103-generic#201705251233SMPThuMay2516:34:52UTC2017x86_64x86_64x86_64GNU/Linux要删除或清除旧内核,只需运行remove_old_kernels.shshell脚本即可删除或清除所有非活动内核。$./remove_old_kernels.sh+++++++++++++++++++++++++++++++++++警告+++++++++++++++++++++++++++++++++++Arebootisrecommendedbeforerunningthisscripttoensurethecurrentkerneltaggedasthebootkernelisindeedregisteredandoldkernelsproperlymarkedforremoval.IfyouhavejustinstalledormodifiedyourexistingkernelanddonotrebootbeforerunningthisscriptitmayrenderyousystemINOPERABLEandthatwouldindeedsuck.Youhavebeenwarned.~theMgmt[?]ContinuetoautomagicallyremoveALLoldkernels?(y/N)y\_RemovingALLoldkernels...[sudo]passwordformagi:Readingpackagelists...DoneBuildingdependencytreeReadingstateinformation...DoneThefollowingpackageswillbeREMOVED:linux-headers-4.4.0-21*linux-headers-4.4.0-21-generic*linux-headers-4.4.10-040410*linux-headers-4.4.10-040410-generic*linux-headers-4.4.9-040409*linux-headers-4.4.9-040409-lowlatency*linux-image-4.4.0-21-generic*linux-image-4.4。10-040410-generic*linux-image-4.4.9-040409-lowlatency*linux-image-extra-4.4.0-21-generic*linux-kernel-generic*0升级,0新安装,11删除和547未升级。此操作后,将释放864MB磁盘空间。(读取数据库...296860个文件和目录当前安装。)删除linux-kernel-generic(4.4.0-21)...删除linux-headers-4.4.0-21-generic(4.4.0-21.37)...删除linux-headers-4.4.0-21(4.4.0-21.37)...删除linux-headers-4.4.10-040410-generic(4.4.10-040410.201605110631)...删除linux-headers-4.4.10-040410(4.4.10-040410.201605110631)...删除linux-headers-4.4.9-040409-lowlatency(4.4.9-040409.201605041832)...删除linux-headers-4.4.9-040409(4.4.9-040186309-4.4.9-040186309)...删除linux-image-extra-4.4.0-21-generic(4.4.0-21.37)......为linux-image-4.4.9-040409-lowlatency(4.4.9-040409.201605041832)完成清除配置文件...检查/etc/kernel/postrm.d.run-parts:executing/etc/kernel/postrm.d/initramfs-tools4.4.9-040409-lowlatency/boot/vmlinuz-4.4.9-040409-lowlatencyrun-parts:executing/etc/kernel/postrm.d/zz-update-grub4.4.9-040409-lowlatency/boot/vmlinuz-4.4.9-040409-lowlatency