当前位置:首页>Linux>从零搭建Linux双系统AI开发环境:完整实践指南

从零搭建Linux双系统AI开发环境:完整实践指南

  • 2026-10-11 08:25:55
从零搭建Linux双系统AI开发环境:完整实践指南
笔者的电脑是Windows 11系统,平时虽然也可用于AI研究和开发,但还是想要有一个独立的 Linux环境来进行折腾,于是决定安装双系统,以下是我的具体实践过程。
一、制定安装方案

电脑配置:i5 13600KF + 16G DDR5 + RTX 3050 8G,1T 硬盘,想法很简单:把AI 开发环境从 Windows 日常使用中彻底剥离,安装一个简单好用的Linux系统,最好能继续使用当前主流软件。在与AI一番讨论过后,双系统方案如下:

  1. 从C盘释放320G空间,用于存放完整的Linux系统环境;
  2. 系统选择Ubuntu 22.04.5LTS,跑AI环境更加稳定,软件生态丰富;
  3. 使用Grub作开机引导,给5s秒钟用于选择系统,不选则默认进入Win11;
  4. 建议让AI将全部操作流程整理成html文档,方便在手机上查阅,毕竟开始装系统后电脑是没法用的。
二、双系统安装(详细过程)

第一步:压缩 C 盘

  1. 右键“此电脑” → 管理
  2. 进入“磁盘管理”
  3. 右键 C 盘 → 压缩卷
  4. 输入:320GB(根据你的需求)

⚠️ 注意:不要格式化,保持“未分配”状态

第二步:制作启动U盘

去Ubuntu官网下载一个 Ubuntu 22.04.5 镜像文件。如果下载速度慢也可以用国内镜像:

// 这个是我用的下载链接http://iso-osm.mirrors.aliyuncs.com/ubuntu-releases/22.04.5/ubuntu-22.04.5-desktop-amd64.iso

下载Rufus工具(https://rufus.ie/zh/)制作镜像:

  1. 插入 U 盘(8GB+)
  2. 打开 Rufus
  3. 选择 Ubuntu ISO
  4. 分区类型选:GPT + UEFI
  1. 点击开始:1-2分钟左右完成

第三步:BIOS 设置(关键)

我的主板是微星的,开机时连续按Del键进入 BIOS,做这几项修改:

  • Boot Mode → UEFI
  • Secure Boot → Disabled(必须关)
  • 启动顺序 → U盘放第一

👉 保存退出(F10)

第四步:进入安装界面

退出BIOS后会自动进入U盘启动界面。如果还是没有自动进入,可以开机后连续按 (F11),手动选择U盘启动。

以下是具体安装流程:

  1. 从 U 盘启动。
  2. 进入 Ubuntu 菜单后,选择 Try or Install Ubuntu。
  3. 进入桌面后,点击 Install Ubuntu。
  4. 语言建议选择中文或英文。企业开发环境我更建议英文,后续报错信息更容易检索。
  5. 键盘布局选择 English (US) 或 Chinese,按你的习惯。
  6. 网络可以先连接,也可以跳过。
  7. 安装类型选择:Something else / 其他选项 / 手动分区。
在安装器的分区列表中,找到刚才从 C 盘压缩出来的 free space / 空闲空间,只在这块空间里创建 Linux 分区:
分区
大小
文件系统
挂载点
用途
根分区
100GB
ext4
/
系统、软件、开发工具
home 分区
约 204GB
ext4
/home
用户文件、项目、配置
swap 分区
16GB
swap
无
交换空间

创建根分区 /

  1. 选中 free space。
  2. 点击“+”。
  3. 大小输入:102400 MB。
  4. 类型选择:Primary 或 Logical 都可以,UEFI/GPT 下通常影响不大。
  5. 位置选择:Beginning of this space。
  6. Use as:Ext4 journaling file system。
  7. Mount point:/。

创建 swap

  1. 继续选中剩余 free space。
  2. 点击“+”。
  3. 大小输入:16384 MB。
  4. Use as:swap area。

创建 /home

  1. 选中剩余 free space。
  2. 点击“+”。
  3. 大小使用剩余全部。
  4. Use as:Ext4 journaling file system。
  5. Mount point:/home。

EFI 分区处理

找到 Windows 已有的 EFI 分区,通常特征如下:

  • 大小约 100MB、260MB、300MB 或 512MB。
  • 文件系统 FAT32。
  • 标记可能是 EFI System Partition。

选择这个EFI分区,挂载点设为 /boot/efi。如果不进行这一步,后续可能开机就直接进入Windows,需要再次用U盘启动,重建启动Grub。

Boot loader 安装位置

底部 Device for boot loader installation 选择整个系统盘,而不是某个分区。示例:

/dev/nvme0n1

不要选成 /dev/nvme0n1p1 这类具体分区

最后确认

点击 Install Now 后,安装器会列出即将格式化的分区。你只应该看到新建的 ext4 和 swap 被格式化,不应该看到 Windows 的 NTFS 分区被格式化。

等待安装完成,首次启动与 GRUB 菜单设置

  1. 安装完成后点击重启。
  2. 看到提示时拔掉 U 盘并按 Enter。
  3. 电脑重启后通常会进入 GRUB 菜单。
  4. 菜单中应看到 Ubuntu 和 Windows Boot Manager。

如果直接进了 Windows 或直接进了 Ubuntu,通常是 BIOS 启动顺序问题。进入 BIOS,把 ubuntu 或 GRUB 对应启动项放到 Windows Boot Manager 前面。

设置默认启动 Windows 11(可选)

进入 Ubuntu,打开终端,执行:

grep -E "menuentry '" /boot/grub/grub.cfg

你会看到类似:

menuentry 'Ubuntu' ...menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' ...

修改 GRUB 配置:

sudo nano /etc/default/grub

找到以下配置并修改:

GRUB_DEFAULT=savedGRUB_SAVEDEFAULT=falseGRUB_TIMEOUT_STYLE=menuGRUB_TIMEOUT=5

保存:Ctrl + O,回车;退出:Ctrl + X。

执行命令设置默认启动项:把菜单名替换成一步看到的 Windows 菜单名称

sudo grub-set-default "Windows Boot Manager (on /dev/nvme0n1p1)"sudo update-grub

重启验证:

sudo reboot

最终效果:开机显示 GRUB 菜单,等待 5 秒,默认进入 Windows 11。你也可以手动选择 Ubuntu。

三、Ubuntu系统优化和环境搭建

1. 系统基础更新

sudo apt updatesudo apt upgrade -y

不做这个,后面很多包会冲突

2. 中文输入法

这里我直接用的Ubuntu自带的中文输入法,也挺好用的,安装第三方输入法反而设置起来比较麻烦。

3. 浏览器

我装的是 Edge(兼容性最好)

sudo apt install microsoft-edge-stable

4. 更新 显卡驱动(最关键)

直接通过界面操作,软件与更新 → 附加驱动 → 选择 535

这里需要和你的AI讨论一下,看你的显卡适合使用哪一版驱动

安装完成后先别急着重启,执行以下指令:

sudo update-initramfs -u

👉 这一句很关键,避免系统内核出现异常

5. 锁定内核(非常重要)

因为Linux下驱动比较容易出现差错,一旦升级内核,很容易再次出现驱动/模块问题,建议锁定当前内核:

sudo apt-mark hold linux-image-$(uname -r)sudo apt-mark hold linux-headers-$(uname -r)

👉 这样系统不会自动升级内核

6. 网络 + 代理 + Docker(现实问题)

你可以安装Clash让电脑用上代理,下载地址:

https://github.com/clash-verge-rev/clash-verge-rev/releases

接下来先安装Docker,因为Docker可能不会走全局代理,需要单独给Docker配置Clash。

安装Docker:

sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

配置代理:

sudo mkdir-p /etc/systemd/system/docker.service.dsudonano /etc/systemd/system/docker.service.d/proxy.conf

写入:

Environment="HTTP_PROXY=http://127.0.0.1:7897"Environment="HTTPS_PROXY=http://127.0.0.1:7897"Environment="NO_PROXY=localhost,127.0.0.1"

保存退出:

Ctrl + O → 回车 → Ctrl + X

重启 Docker:

sudo systemctl daemon-reloadsudosystemctl restart docker

7. GPU + Docker 验证(里程碑)

sudo docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

👉 成功标志:

  • 显示 RTX 3050
  • CUDA 正常
8. 优化Docker运行时目录,创建AI容器:
1. 平时在/home目录下建一个工作目录,将所有代码放到工作目录下面。
2. 新建一个docker容器作为AI运行环境,将容器的虚拟目录映射到工作目录,所有的python库都在容器内安装和执行
3. 此时docker本身的运行时文件仍然在/挂载点下面,而/目录主要存放系统文件、全局软件等,空间比较吃紧,并且未来docker内自动下载的Hugging Face大模型也会放到/下面,因此建议将docker运行时和Hugging Face路径目录映射到/home下面,具体路径可以自行指定。
以下为完整命令,建议分步执行,每一步执行成功后再执行下一条:
# 1. 停止 Dockersudo systemctl stop docker# 2. 在 home 下创建新的 Docker 数据目录sudo mkdir -p /home/{你的用户名}/docker-data# 3. 迁移现有数据sudo rsync -avxP /var/lib/docker/ /home/{你的用户名}/docker-data/# 4. 重命名原目录备份sudo mv /var/lib/docker /var/lib/docker.backup# 5. 创建软链接sudo ln -s /home/{你的用户名}/docker-data /var/lib/docker# 6. 重启 Dockersudo systemctl start docker# 7. 验证没问题后删除备份sudo rm -rf /var/lib/docker.backup// 这样以后所有 Docker 镜像和 Python 库都存储在 /home 分区// 创建工作目录:mkdir -p /home/{你的用户名}/development/gitspace/{你的AI项目名}mkdir -p /home/{你的用户名}/development/models/huggingfacemkdir -p /home/{你的用户名}/development/models/datasets// 创建docker容器作为AI运行环境,通过HF_HOME让hugging face大模型下载到指定目录sudo docker run -it -d \ --name ai_env \ --gpus all \ -v /home/{你的用户名}/development/gitspace/{你的AI项目名}:/workspace \ -v /home/{你的用户名}/development/gitspace:/gitspace \ -v /home/{你的用户名}/development/models:/models \ -e HF_HOME=/models/huggingface \ -e TRANSFORMERS_CACHE=/models/huggingface \ -e HF_DATASETS_CACHE=/models/datasets \ -e HUGGINGFACE_HUB_CACHE=/models/huggingface \ -w /workspace \pytorch/pytorch:2.1.0-cuda12.1-cudnn8-runtime \bash
8. 启动容器并安装AI工具包:
完成上述容器搭建后,就可以在容器内安装各种AI所需的Python代码库了:
// 启动容器sudo docker start ai_env// 进入容器内部sudo docker exec -it ai_env bash
pip install -U pippip install numpy pandas matplotlib jupyterpip install transformers datasets acceleratepip install langchain openai// 各个库的用途应用层(AI产品)    ├── LangChain    └── OpenAI模型层(AI能力)    ├── Transformers    ├── Datasets    └── Accelerate基础层(数据能力)    ├── NumPy    ├── Pandas    ├── Matplotlib    └── Jupyter

总结

到这里,整个双系统和 Linux AI开发环境就搭建好了,不过为了让Ubuntu使用更顺手,还可以做许多工作,比如优化密码设置,调整桌面、菜单、分辨率、优化命令行插件等设置,如果优化得当,可以带来接近于Mac OS的使用体验。

个人认为双系统比较适合于想将工作与生活彻底分开,同时想体验Linux纯粹用于AI研发的人。实际体验下来也确实能带来一台变两台电脑的使用感受,而且Linux系统本身运行功耗也会低一点,更适合长时间运行AI推理或模型微调。

最新文章

随机文章