1、系统安装
1.1 5060 显卡安装 Ubuntu22.04
5060 显卡安装 Ubuntu22.04 存在不兼容问题,安装会出现黑屏问题,但是安装 Ubuntu20.04 没有问题。经过一系列尝试整理出 3 种解决方法:
- 拔掉 5060 显卡,插上 3060 显卡,或者用集显安装好
Ubuntu双系统后再换成 5060 显卡。 - 先安装 ,安装完成后进入系统,利用系统自带的更新功能可以升级成 。
在 Win11 环境下搭配 5060 显卡安装 Ubuntu22.04 双系统的过程。针对黑屏问题,通过修改 GRUB 启动参数解决。详细记录了分区、驱动安装(含内核版本选择)、Docker GPU 支持配置及常用开发工具(微信、VSCode 等)的安装步骤。
5060 显卡安装 Ubuntu22.04 存在不兼容问题,安装会出现黑屏问题,但是安装 Ubuntu20.04 没有问题。经过一系列尝试整理出 3 种解决方法:
Ubuntu 双系统后再换成 5060 显卡。Ubuntu20.04Ubuntu22.04Ubuntu22.04,然后在 grub 界面引导修复。手中没有多余的显卡,自己 DIY 的台式机也没有集成显卡,所以第一种方法不适合。尝试过第二种方法,确认是可行的,但是据说后期使用的时候安装一些工具会缺少很多库,安装完就卸载了,最终用的第 3 种方法。
制作启动盘方法,网上教程很多,直接照着做就行了也比较简单。
分区方法可以参考相关博客,写的比较详细。另外需要补充的是我在安装过程中经常出现需要重新安装的情况,这个时候需要将 Windows 下划分给 Ubuntu 的磁盘区域格式化,注意格式化的时候需要特别谨慎别把 Windows 下系统给格式化了,查看磁盘分区的方法:
Win+R 输入 diskmgmt.msc 查看磁盘分区
格式化 Ubuntu 分区具体步骤如下:
插入 U 盘,然后重启计算机,我的主板要求按 F11 进入 BIOS,然后进入 boot 设置,调整系统启动顺序,然后按 F7 进高级,然后进入 Settings,将安全启动设为不可用,最后按 F10 保存。
重启计算机,不用进入 boot 设置,选择 U 盘启动,在弹出的界面先选择 Try or Install Ubuntu,不要直接进入系统,需要按 e 进入编辑模式,找到 quiet splash 在后面紧接着加上如下命令参数:
nomodeset acpi=off noapic
不加这个参数就会黑屏,加完后就会进入正常的安装界面,在安装过程中没有什么特殊的,就是在分区的时候建议选择自定义分区,我是主要害怕默认分区会把我的 windows 系统分区覆盖掉,4 个分区配置如下,注意都要从 free space 中划分:
注意都选好后,检查最下面的一个组合框 Device for boot loader installation 应该选择新分配的 EFI System Partition 对应的分区,然后点击 Install Now 开始安装。安装完报 grub 错误不用管,后面用下面命令进行修复:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install -y boot-repair
boot-repair
这里没有用命令安装因为总是失败,直接用 Ubuntu22.04 自带的软件和更新安装的。这里并没有像某些教程中安装的 5.15.0-160-generic 内核 +580 版本的显卡驱动,而是 6.8.0-90-generic 内核 +580 版本的显卡驱动。5.15.0-160 也尝试过,但是安装失败了,这个版本也不是一次性装成功的,反复折腾搞了一天,所以参考我这个的也不一定能一次装成功,只能说这个搭配是可行的。驱动和网络都是正常的,也没有出现无线网消失的问题。
6.8.0-90-generic 内核 +570 版本显卡驱动成功,但是无线网消失。
# 查看系统中已安装的 NVIDIA 相关包
dpkg -l | grep nvidia
# 1. 卸载核心 NVIDIA 驱动包
sudo apt remove --purge nvidia-driver-535 nvidia-*-y
# 2. 自动清理卸载后残留的无用依赖 + 配置文件
sudo apt autoremove -y && sudo apt autoclean -y
sudo reboot
# 不重启可能有残留,会影响安装新的显卡驱动
sudo /usr/bin/nvidia-uninstall
sudo rm -rf /etc/X11/xorg.conf.d/nvidia*
sudo rm -rf /usr/share/X11/xorg.conf.d/nvidia*
sudo apt autoremove -y && sudo apt autoclean -y
sudo reboot
Ubuntu 系统默认自带一个 nouveau 开源 NVIDIA 驱动,这个驱动和 NVIDIA 官方闭源驱动冲突严重!
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
在打开的文件中,粘贴以下内容
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
保存文件后:
sudo update-initramfs -u
sudo reboot
验证,如果有输出就没有禁用成功:
lsmod | grep nouveau
解决 'E: Sub-process /usr/bin/dpkg returned an error code (1)' 错误的完整指南。
cd /var/lib/dpkg/
sudo mv info/ info_bak
sudo mkdir info
# 更新并尝试修复
sudo apt-get update
sudo apt-get -f install
sudo mv info/* info_bak/
sudo rm -rf info
sudo mv info_bak info
好不容易创建好显卡驱动,创建个快照,这里用的是 timeshift,具体操作如下:
# 1. 更新软件源
sudo apt update -y
# 2. 安装 Timeshift
sudo apt install -y timeshift
# 创建
sudo timeshift --create --comments "ubuntu_clean_before_nvidia" --tags D
# 验证
sudo timeshift --list
双系统安装后进入 Ubuntu 系统的时候,需要在重启的时候先按 F11 进入 BIOS,选择进入 Ubuntu 系统,然后在下面界面中选择 Advanced options for Ubuntu。
如果选中内核后失败了,就需要添加命令参数进入系统,具体步骤如下:进入新的界面后,要先在键盘按下 e 进入编辑模式,找到 quiet splash 在后面紧接着加上如下命令参数:
nomodeset acpi=off noapic
如下图所示:
然后按 F10 进入系统。感觉每次进入系统的方式太麻烦了,但是目前还没有解决。
尝试用指令安装输入法
sudo apt update && sudo apt install ibus-pinyin
报错如下:
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 5779(apt-get)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/
报错原因是当前系统中有另一个 apt-get 进程(进程号 5779)正在运行,主要还是 apt update 报错,查看
ps -aux | grep 5779
发现这个进程正在工作,应该是正在自动更新,为了保证系统的稳定性最好把自动更新关闭掉,如下图所示把 Updates 中能改成 Never 的都改成 Never。
改完后直接重启系统。
启动程序后继续装中文输入法,这里不用指令装了,用界面直接装,打开桌面右上角的 设置,点击 区域与语言 弹出界面,在弹窗中选择 管理已安装的语言,弹出 语言支持 弹窗,在界面点击 添加或删除语言... 按钮,在新弹出的界面中勾选简体中文和英文两个即可。下载完成后,区域与语言 界面的语言标签附近会出现一个绿色的 Restart...,点击这个按钮。
所有操作成功后,系统提示英文可以换成中文,注意不要将安装路径中的英文改成中文,只修改显示即可。
修改完系统语言后,在 设置 界面选择 键盘,在界面的输入源选择 中文 (智能拼音),通过 ... 可以将中文输入法移动到最上面。
# 下载
wget https://dldir1v6.qq.com/weixin/Universal/Linux/WeChatLinux_x86_64.deb
# 安装
sudo dpkg -i WeChatLinux_x86_64.deb && sudo apt install -f -y
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加 Docker 官方软件源到系统
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"| sudo tee /etc/apt/sources.list.d/docker.list>/dev/null
# 安装最新稳定版 Docker 全家桶(核心组件 + 自带新版 docker-compose)
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# 设置 Docker 开机自启 + 启动 Docker 服务
sudo systemctl enable docker && sudo systemctl start docker
# 给当前用户添加 Docker 权限
sudo usermod -aG docker $USER
# 验证
docker --version
docker compose version
Error response from daemon: could not select device driver "nvidia"with capabilities:[[gpu]]
主要原因是没有装 nvidia-container-toolkit,所以想要在 docker 中使用 gpu,除了装 docker 还要装 nvidia-container-toolkit,修复方法:
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/stable/deb/nvidia-container-toolkit.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
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
如果出现下载失败的问题,可以换用下面命令:
# 直接配置 apt 国内镜像库
curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list| \
sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g'| \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
# 安装 nvidia-container-toolkit
sudo apt update && sudo apt install nvidia-container-toolkit
MS-7D99:~/Work/src/colmap/colmap_deployer$ sudo cat /etc/docker/daemon.json
cat:/etc/docker/daemon.json: 没有那个文件或目录
# 创建目录(如果不存在)
sudo mkdir -p /etc/docker
# 创建 daemon.json 配置文件
sudo tee /etc/docker/daemon.json <<'EOF'
{"runtimes":{"nvidia":{"path":"/usr/bin/nvidia-container-runtime","runtimeArgs":[]}},"default-runtime":"nvidia"}
EOF
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 重启 Docker 服务
sudo systemctl restart docker
# 检查 Docker 服务状态
sudo systemctl status docker
以上是在宿主机中的设置,如果要在容器中设置 GPU 还需要在容器中有如下设置:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring_1.0-1_all.deb
apt-get update && \
apt-get install -y --no-install-recommends \
cuda-toolkit-11-8=11.8.0-1 \
libcudnn8=8.6.0.163-1+cuda11.8 \
libcudnn8-dev=8.6.0.163-1+cuda11.8
有时在容器中安装完了,但是执行 nvcc --version 的时候仍然找不到命令,需要先验证是否安装成功,验证方法:
ls /usr/local/cuda-11.8/bin/nvcc # 检查 nvcc 路径
如果路径存在,则是因为环境变量没有添加,环境变量添加方法:
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
我这里下载的:code_1.108.1-1768404234_amd64.deb
sudo dpkg -i code_1.108.1-1768404234_amd64.deb
如果中途有弹框,选 是,按 Enter。
sudo snap install xmind

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online