默认情况下,用sudo dnf update
或 sudo yum update
后,会将Linux内核一起更新,过一段时间,grub2 就会生成好几个启动项,如果更新内核后使用系统没有问题,就可以把旧的内核删除。
我的M6800遇到的问题是,每次更新内核后,都需要重新安装显卡驱动,不然进不了GUI,这个很烦人,浪费时间,搞得我每次都有冲动重装系统。今天更新到5.15.12,又进不了桌面了,还好grub2可以让我选择从5.15.11启动。
自我对话
- TMD,装win算了,至少没这么多麻烦...然后我就去搜win10镜像了...
- 行了吧你,Windows用不了几天你必然折腾回Linux,谁叫你爱折腾呢...
- 好吧,还是不要逃避问题,折腾走起...
冷静了一会儿,网上搜索试验了一番,把不用的内核都删除,然后dnf更新时排除内核,即不升级内核。
使用uname -r
查看当前使用的内核
[yangjl@fedora ~]$ uname -r
5.15.11-200.fc35.x86_64
使用rpm -aq|grep kernel
查看已经安装的内核
[yangjl@fedora ~]$ sudo rpm -aq | grep kernel
libreport-plugin-kerneloops-2.15.2-6.fc35.x86_64
abrt-addon-kerneloops-2.14.6-9.fc35.x86_64
kernel-headers-5.15.4-200.fc35.x86_64
kernel-srpm-macros-1.0-6.fc35.noarch
kernel-core-5.15.11-200.fc35.x86_64
kernel-modules-5.15.11-200.fc35.x86_64
kernel-5.15.11-200.fc35.x86_64
kernel-modules-extra-5.15.11-200.fc35.x86_64
kernel-devel-5.15.11-200.fc35.x86_64
kernel-devel-5.15.12-200.fc35.x86_64
保留当前使用的内核,删除不用的内核 sudo dnf remove -y kernel-core-5.15.12*
dnf
和 yum
更新时可以使用exclude命令排除你不希望更新的package,例如更新除了firefox以外的所有package,可以这样
sudo dnf update --exclude=firefox
sudo yum update --exclude=firefox
再比如更新除了内核以外的所有package:
sudo dnf update --exclude=kernel*
sudo yum update --exclude=kernel*
如果觉得麻烦,在fedora下,可以通过修改/etc/dnf/dnf.conf
,在[main]
下添加exclude=kernel*
,这样在使用dnf update
和yum update
时会排除kernel package 的更新。
/etc/dnf/dnf.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
exclude=kernel*
参考文献
https://chewett.co.uk/blog/800/exclude-fedora-packages-updating-dnf-yum/
https://laplacence.github.io/2017/02/27/Fedora_delete_redundancy_kernel/
The end.