1、系统信息
PC版本 | ubuntu20.04 + windows11(64bit) |
Linux正在使用的内核版本 | linux-image-5.15.0-91-generic |
2、内核相关命令
查看目前的Ubuntu版本 | cat /etc/issue |
查看目前的Ubuntu版本(更全一些的) | lsb_release -a |
查看已安装的内核的各个部分的版本 | dpkg --get-selections | grep linux-image (/ headers / modules) |
查看所有已经安装的内核相关版本 | dpkg --get-selections | grep linux |
查看已经hold住的内核版本 | sudo dpkg --get-selections | grep hold |
查看正在使用的内核版本 | uname -a |
卸载不需要的内核-1【单个】 | sudo apt purge linux-image-xxx |
卸载不需要的内核-2【单个】 | sudo apt-get remove 【内核名称, linux...0-67-generic】 |
卸载不需要的内核【多个】 | sudo apt-get purge linux-image-5.14.0-{88,86} |
自动删除(附带着删除内核,可能不管用) | sudo apt autoremove |
/boot已满情况下,删除方法【参考】 | dpkg -l | tail -n +6| grep -E 'linux-image-[0-9]+'| grep -Fv $(uname -r) |
停止内核自动更新 | sudo apt-mark hold linux-image-5.11.0-27-generic |
重新启用内核更新 | sudo apt-mark unhold linux-image-5.11.0-27-generic |
更新GRUB配置文件(更新启动项) | sudo update-grub |
3、如何删除多余的内核
1、找出系统已经安装的内核版本
dpkg --get-selections|grep linux
2、删除多余的内核
# 删除单个
sudo apt-get remove linux-modules-extra-5.15.0-67-generic
# 删除多个
sudo apt-get purge linux-image-5.14.0-{88,86}
3、更新以下启动项
sudo update-grub
4、禁止内核自动更新
1、hold法或者修改文件法的,具体查看【禁止内核自动更新】
2、在【Software Updates】处手动设置
5、相关问题的处理涉及指令
5-1 系统死机,重启后一直乱码循环
【问题描述】
远程向日葵远程ubuntu系统安装软件过程中,不知道操作了什么。系统突然卡死,切换用户过程中彻底卡死。重启后,系统始终卡死在一个界面并一直在该界面和黑屏之间循环。界面显示错误如下:
Momtors
0.000517]comon,interruat:55No0.000517C0mioninterrugt :,55No0.000517]C0和市月门RtenFUDtsNo0.0005171C0南0门司.55N0e网FT0.000517]5.55NOCOmNOnf主0.000517COmTOnPUOt6,55NO0.0005171Co019fSSNo0.0005171118.55NO0.00051719.55NO0.000517]10.5SNodev'n.me0n1p2:/dev'nvme0n1p2:1022208 fi1es,202352571/244059136 b10cks
ira hand1erf@Vector1F0nana1erfonvector1r袅︶handlerforvectorirahandlerforvectorira handlerforvectorirg handlerforvector1rg handlerforvectorirg handlerforveCtorira hondlerforvector1rohandlerfor*vector
【解决方案】
1、开机时按【ESC】进入BIOS界面。
2、确认启动项无误后,退出BIOS。
3、退出BIOS黑屏后,按【ESC】或【shift】一次进入GRUB启动选项。
4、选择【Advanced option for Ubuntu】,【enter】后选择对应内核的【recovery mode】再按【enter】(进入recovery mode界面中,默认选中的选项就是系统当前使用的内核)。
5、选择【recovery mode】模式下的【root】选项按【enter】。输入用户密码后,输入下面指令查看显示内核环形缓冲区的日志(包含系统启动时的硬件检测、驱动加载、内核错误等底层信息)
dmesg | grep -i "error\|fail\|hda\|snd"
显示如下:
现在看来,这里已经能定位到问题所在了,就在【/data/ADS_2015】路径下。但是当时没有发现。
6、执行下面命令查询系统日志(systemd 日志管理工具)。
journalctl -xb | grep -i "snd_hda"
# journalctl:systemd 日志管理工具,用于查询系统日志(包括内核、服务、用户进程等);
# -x:添加详细解释(human-readable),方便理解日志含义;
# -b:仅显示当前启动(boot)周期的日志;
# grep -i "snd_hda":过滤与 snd_hda(HD Audio 驱动模块)相关的日志;
出现下列信息,
7、卸载并重新装载【snd_hda_intel】
内核模块。
sudo rmmod snd_hda_intel && sudo modprobe snd_hda_intel
# sudo rmmod snd_hda_intel:卸载 snd_hda_intel 内核模块
# (HD Audio 驱动,常用于 Intel 集成声卡)。
# &&:逻辑与操作,前一命令成功后执行后一命令。
# sudo modprobe snd_hda_intel:重新加载 snd_hda_intel 模块,自动解决依赖关系。
当时没有任何报错信息
8、更新固件,尝试解决固件级BUG。
sudo fwupdmgr refresh && sudo fwupdmgr update
# fwupdmgr:Linux 下的固件更新工具(Firmware Update Manager),支持
# 更新硬件固件(如显卡、声卡、主板、电池、外设等)。
# refresh:更新固件仓库列表,获取可用固件版本信息;
# update:安装可用的固件更新
显示如下,同样定位到了问题所在
5-2 备份文件夹、增加或删除完整用户
列出所有的文件,包括【.】开头的文件 | |
root模式切换回普通模式(方法2 也可以普通用户用户间切换) | |
删除用户及其附属所有文件 | |
显示经grep过滤后的所有和“firefox”相关的进程 | |
查找特定用所涉及的进程和命令 | |
根据进程的PID号删除进程 (需要 root 权限) | |
根据进程的名称删除进程 (可能要重启一下终端) | |
创建新的用户 | |
根据本地化设置生成基本目录(相当于刷新一下) | |
5-3 添加环境变量解决【conda:未找到命令】
打开【.bashrc】配置文件 【参考链接】
sudo nano ~/.bashrc # nano 可以换 vim、gedit啥的
添加anacongda3的安装路径下的【bin】文件夹路径到【.bashrc】文件中
export PATH="/home/用户名/anaconda3/bin:$PATH"
刷新【.bashrc】文件使操作生效
source ~/.bashrc