Ubuntu24.04 日常运维合集

食用指南

本文汇总在工作过程中遇到的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 卡驱动

驱动官网:https://www.nvidia.cn/geforce/drivers/

进入官网,选择显卡型号与操作系统,然后搜索显卡驱动:

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

下载后的驱动文件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 配置 :

输入效果:

快捷键:

添加搜狗词库:

https://pinyin.sogou.com/dict/

打开 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

注意事项:

  1. 性能考虑:交换空间在 SSD 上性能较好,在 HDD 上会显著降低系统响应速度
  2. 合理大小:对于 16GB 内存的系统,8-12GB 交换空间通常足够
  3. 根本解决:OOM 问题的根本解决应该是优化应用程序内存使用,而不是仅仅增加交换空间
  4. 监控 :使用 htopvmstat 等工具监控内存使用情况

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 的存储位置。

这里使用符号链接实现:

  1. 停止 Docker 服务:

    bash 复制代码
    sudo systemctl stop docker
  2. 移动现有 Docker 数据:

    bash 复制代码
    sudo mv /var/lib/docker /new/path/docker
  3. 创建符号链接:

    bash 复制代码
    sudo ln -s /new/path/docker /var/lib/docker
  4. 启动 Docker 服务:

    bash 复制代码
    sudo 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

注意,目录是映射到下载目录的,不要修改,参考:


安装Motrix:

https://motrix.app/download

下载 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!


持续补充中...

相关推荐
星星泡饭2922 小时前
工业标识自动化——MARKING Configurator 从数据导入到热转移打印的全流程教程
运维·自动化·菲尼克斯
中科米堆2 小时前
自动化大尺寸批量3D检测,自动化三维扫描系统实现钢板支架在线检测-中科米堆CASAIM
运维·3d·自动化·3d全尺寸检测
cetcht88882 小时前
35kV-750kV 变电站集中监控系统(涵盖火灾消防、安全防卫、动环、智能锁控、智能巡视等) 设备配置与布置
大数据·运维·物联网·机器人·能源
wanhengidc2 小时前
具有ARM架构云手机的功能
运维·服务器·arm开发·科技·智能手机·云计算
图乐aj2 小时前
MySQL 运维之日常运维篇 二
运维·mysql
wanhengidc2 小时前
巨 椰 云手机离线多开
运维·服务器·科技·智能手机·云计算
wefg13 小时前
【Linux】环境变量
linux·运维·服务器
扫地生大鹏3 小时前
Linux登录用户名密码正确,报错Linux 登录报module is unknow
linux·运维·服务器
可爱又迷人的反派角色“yang”3 小时前
ansible基本命令与剧本编写(二)
linux·运维·ansible