食用指南
本文汇总在工作过程中遇到的Ubuntu24.04操作系统运维问题,以便不时之需,每个Q对于一个问题。
Q1. 重置密码
环境:Virtual Box
开机获取鼠标焦点后立即长按 Shift 键:

然后按 e 进入编辑模式,将 "ro quiet splash $vt_handoff" 部分删除,替换为:
bash
rw init=/bin/bash


安然按 Ctrl-X 或者 F10 执行:

这时候我们可以重置 root 账号密码,或者重置其他用户的密码:

最后重启系统即可:
bash
reboot
Q2. 安装 N 卡驱动
进入官网,选择显卡型号与操作系统,然后搜索显卡驱动:

在搜索结果中,选择一个稳定版本的驱动,然后下载:


下载后的驱动文件NVIDIA-Linux-x86-64-570.207.run,执行指令安装:
bash
sudo bash NVIDIA-Linux-x86_64-570.207.run
安装完成后,验证驱动:
bash
nvidia-smi

Q3. 安装 CUDA
查看当前 N 卡驱动版本:
bash
nvidia-smi

根据驱动版本,到官网 https://developer.nvidia.com/cuda-toolkit-archive 下载对应的 CUDA Toolkit:


根据官网指令,直接下载 runfile:
bash
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run
然后执行安装:
bash
sudo sh cuda_12.8.0_570.86.10_linux.run


如果驱动已经安装过,则不用勾选"Driver",不然安装报错。选择"Install"执行安装。
bash
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-12.8/
Please make sure that
- PATH includes /usr/local/cuda-12.8/bin
- LD_LIBRARY_PATH includes /usr/local/cuda-12.8/lib64, or, add /usr/local/cuda-12.8/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.8/bin
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 570.00 is required for CUDA 12.8 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run --silent --driver
Logfile is /var/log/cuda-installer.log

配置环境变量:
bash
sudo vim ~/.bashrc
export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-12.8
source ~/.bashrc
sudo ldconfig
验证安装:
bash
nvcc -V

Q4. 禁用 Chrome 自动更新
问题描述:
每次打开Chrome浏览器的时候都会自动检查更新,并且会频繁提示:

解决方案:
修改 google-chrome-stable 文件:
bash
ls /usr/bin/google-chrome-stable
bash
sudo vim /usr/bin/google-chrome-stable
找到这一行:
bash
# Note: exec -a below is a bashism.
exec -a "$0" "$HERE/chrome" "$@"
后面追加:
bash
--disable-background-networking
修改后的效果:
bash
# Note: exec -a below is a bashism.
exec -a "$0" "$HERE/chrome" "$@" --disable-background-networking

重启 Chrome,再也没有更新提示,非常清爽:

Q5. 解决Docker GPU问题
报错描述:
Error response from daemon: could not select device driver "" with capabilities: [[gpu]]
查看显卡驱动:
bash
nvidia-smi

如果之前一直都可以正常运行,只是突然报错,可以先尝试重启 Docker 解决:
bash
sudo systemctl restart docker

如果重启Docker无法解决,可以尝试以下方法。
添加软件仓库:
bash
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
安装 nvidia-docker2:
bash
sudo apt-get update
sudo apt-get install -y nvidia-docker2
重启 Docker:
bash
sudo systemctl restart docker
测试:
bash
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
参考文档 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
Q6. 切换内核版本
- Step1、查看当前内核版本
bash
ls /lib/modules
6.11.0-25-generic 6.11.0-28-generic 6.14.0-24-generic 6.14.0-28-generic
6.11.0-26-generic 6.11.0-29-generic 6.14.0-27-generic
- Step2、修改启动内核
bash
sudo grep menuentry /boot/grub/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4473259f-d548-4303-9388-92fe3811c8f3' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-4473259f-d548-4303-9388-92fe3811c8f3' {
menuentry 'Ubuntu, with Linux 6.14.0-28-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.14.0-28-generic-advanced-4473259f-d548-4303-9388-92fe3811c8f3' {
menuentry 'Ubuntu, with Linux 6.14.0-28-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.14.0-28-generic-recovery-4473259f-d548-4303-9388-92fe3811c8f3' {
menuentry 'Ubuntu, with Linux 6.14.0-27-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.14.0-27-generic-advanced-4473259f-d548-4303-9388-92fe3811c8f3' {
menuentry 'Ubuntu, with Linux 6.14.0-27-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.14.0-27-generic-recovery-4473259f-d548-4303-9388-92fe3811c8f3' {
menuentry 'Ubuntu, with Linux 6.11.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.11.0-29-generic-advanced-4473259f-d548-4303-9388-92fe3811c8f3' {
menuentry 'Ubuntu, with Linux 6.11.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.11.0-29-generic-recovery-4473259f-d548-4303-9388-92fe3811c8f3' {
menuentry "Memory test (memtest86+x64.efi)" --class memtest $menuentry_id_option 'memtest86+' {
menuentry 'Memory test (memtest86+x64.efi, serial console)' --class memtest $menuentry_id_option 'memtest86+-serial' {
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
bash
sudo vim /etc/default/grub
顺序从0开始,则第五个内核菜单的下标为4
GRUB_DEFAULT="1>4"

- Step3、刷新grub配置
bash
sudo update-grub
Step4、重启电脑
bash
reboot
Q7. 配置 Fcitx5 输入法
安装 fcitx5 :
bash
sudo apt-get install fcitx5 fcitx5-configtool fcitx5-chinese-addons


fcitx5 配置 :


输入效果:

快捷键:

添加搜狗词库:



打开 Fcitx5 配置面板:




导入完毕,点击确定关闭窗口即可。
注意事项:APP 应用商店中的VS Code不兼容Fcitx5,无法输入和切换输入法,需要到VS Code官方下载安装。


Q8. N 卡掉驱动
问题描述:屏幕花了,并且查看显卡驱动时报错
bash
nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.
检查 CUDA :
bash
nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Wed_Jan_15_19:20:09_PST_2025
Cuda compilation tools, release 12.8, V12.8.61
Build cuda_12.8.r12.8/compiler.35404655_0
查看版本:
bash
ls /usr/src | grep nvidia
nvidia-575.64.03
修复驱动:
bash
sudo apt-get install dkms
sudo dkms install -m nvidia -v 575.64.03
Error! Could not locate dkms.conf file.
这里报错是因为驱动文件不全,需要重新安装。可以按照 Q2. 安装N卡驱动 重新下载驱动进行安装,也可以按照以下步骤进行 apt 安装:
更新软件:
bash
sudo apt update && sudo apt upgrade
bash
sudo apt install build-essential dkms
卸载驱动:
bash
sudo apt-get remove --purge '^nvidia-.*'
查看:
bash
sudo lshw -c display
bash
sudo ubuntu-drivers devices
关键!安装推荐的驱动:
bash
sudo ubuntu-drivers autoinstall
bash
prime-select query
重启:
bash
reboot

Q9. 扩展虚拟内存
查看当前内存状态:
bash
free -h

检查当前交换空间:
bash
swapon --show
cat /proc/swaps
禁用现有交换:
bash
sudo swapoff -a
删除旧交换文件(假设是 /swap.img):
bash
sudo rm /swap.img
创建新的更大交换文件(例如扩展到 8GB):
bash
# 创建 8GB 的交换文件
sudo fallocate -l 8G /swap.img
# 如果 fallocate 不可用,使用 dd
# sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
# 设置正确权限
sudo chmod 600 /swap.img
# 格式化为交换空间
sudo mkswap /swap.img
# 启用交换
sudo swapon /swap.img
验证结果:
bash
# 检查交换空间
free -h
# 查看交换详细信息
swapon --show
# 查看内存使用情况
cat /proc/meminfo | grep -i swap

注意事项:
- 性能考虑:交换空间在 SSD 上性能较好,在 HDD 上会显著降低系统响应速度
- 合理大小:对于 16GB 内存的系统,8-12GB 交换空间通常足够
- 根本解决:OOM 问题的根本解决应该是优化应用程序内存使用,而不是仅仅增加交换空间
- 监控 :使用
htop、vmstat等工具监控内存使用情况
Q10. CUDA 显存碎片优化
bash
sudo vim ~/.bashrc
添加以下环境变量:
bash
# 配置环境变量即可,注意max_split_size_mb需要大于20
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True,max_split_size_mb:32
注意事项:有些框架需要关闭该环境变量运行。
Q11. 修改 Docker 存储位置
Docker 默认将镜像、容器等数据存储在 /var/lib/docker 目录下,当这个位置空间不足时,可以修改 Docker 的存储位置。
这里使用符号链接实现:
-
停止 Docker 服务:
bashsudo systemctl stop docker -
移动现有 Docker 数据:
bashsudo mv /var/lib/docker /new/path/docker -
创建符号链接:
bashsudo ln -s /new/path/docker /var/lib/docker -
启动 Docker 服务:
bashsudo systemctl start docker
注意:修改存储位置后,原有的镜像和容器将不可用,除非将原有数据迁移到新位置。
Q12. 清除 Docker 缓存文件
查看 Docker 磁盘使用情况:
bash
sudo docker system df

TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 13 7 102.7GB 60.44GB (58%)
Containers 9 0 281.3MB 281.3MB (100%)
Local Volumes 48 1 1.082GB 1.014GB (93%)
Build Cache 7 0 0B 0B
一键清理 Build Cache:
bash
sudo docker builder prune
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N] y

一键清理容器:未运行的容器被删除,包括相关卷
bash
sudo docker system prune
一键清理容器和镜像:未运行的容器和镜像会被删除,非常彻底
bash
sudo docker system prune -a
Q13. 安装下载器
安装某雷:
bash
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.xunlei.Thunder




注意,目录是映射到下载目录的,不要修改,参考:
- https://dev59.com/askubuntu/akbXs4cB2Jgan1zn9J9Y
- https://blog.csdn.net/tianrei_y/article/details/146182394
安装Motrix:

下载 deb 文件,然后安装:
bash
sudo dpkg -i Motrix_1.8.19_amd64.deb

Q14. 挂载新硬盘分区

例如,我这里有一个新的机械硬盘4TB,需要挂载到 /data 路径。
查看分区:
bash
lsblk

bash
sudo fdisk -l

创建挂载目录:
bash
sudo mkdir -p /data
bash
sudo blkid /dev/sda
/dev/sda: UUID="08898795-08e8-4b22-941b-9434d3fd496a" BLOCK_SIZE="4096" TYPE="ext4"
这里的 UUID 非常重要,记下来,在配置fstab时需要用到:
bash
sudo vim /etc/fstab
UUID=08898795-08e8-4b22-941b-9434d3fd496a /data ext4 defaults 0 2
bash
sudo mount -a
bash
sudo systemctl daemon-reload
bash
df -h

若 /data 路径无权限,则赋权:
bash
sudo chown -R $USER:$USER /data
bash
ls -ld /data

OK!