Article

从零开始学Astro, 完全掌握自己的博客系统

2025/7/11#AI#Linux#分区

Ubuntu AI 服务器磁盘规划:从 Windows D 盘划分独立 ext4 AI 数据盘(ComfyUI 最佳实践)

环境

  • 主机:AMD Ryzen 7 7700
  • GPU:RTX 4070 Ti SUPER 16GB
  • 系统:
    • Windows 11
    • Ubuntu 24.04 LTS
  • SSD:Samsung 990 EVO Plus 2TB
  • AI:Docker + ComfyUI + Ollama

一、为什么不要把模型放 Ubuntu 系统盘

刚开始安装 Ubuntu 时,我给 Ubuntu 分配了 200GB

目录类似:

/
├── Docker
├── Conda
├── AI Project
├── ComfyUI
└── Models

刚开始足够。

但是随着模型越来越多:

FLUX Dev FP8          15GB+
Wan2.2                30GB+
Qwen Image            20GB+
SDXL                  7GB+
ControlNet            30GB+
LoRA                  100GB+
Upscaler              20GB+

很快:

200GB

就不够用了。


为什么不用 NTFS?

很多人会想到:

Windows D:
    AI Models

然后 Ubuntu 挂载 NTFS。

虽然可以,但是并不是最佳方案。

原因:

  • Docker 权限容易出问题
  • Linux 文件权限不完整
  • Symbolic Link 支持不好
  • inode 不完整
  • 性能略差
  • 容易因为 Windows Fast Startup 导致只读

官方也更推荐:

Linux
    ext4

二、最终磁盘规划

我的 SSD:

Samsung 990 EVO Plus
2TB

最终规划:

EFI                 200MB

Windows C           200GB

Recovery            872MB

Windows D           863GB

AI Data             600GB  (ext4)

Ubuntu              200GB

其中:

Ubuntu

只负责:

  • 系统
  • Docker
  • Conda
  • 项目代码

而:

AI Data

专门负责:

  • ComfyUI Models
  • Ollama Models
  • Dataset
  • Cache
  • Output

这是最合理的 Linux AI 工作站布局。


三、查看当前分区

首先查看:

lsblk

或者:

lsblk -f

查看磁盘布局。

再查看未分配空间:

sudo parted /dev/nvme0n1 unit GiB print free

我的结果:

Partition 5
Windows D
863GiB

Free Space
600GiB

Partition 6
Ubuntu
200GiB

说明:

600GiB

已经是未分配状态。

无需再回 Windows。


四、创建新的 Linux 分区

进入 parted:

sudo parted /dev/nvme0n1

进入以后:

unit GiB

创建分区:

mkpart ai-data ext4 1063 1663

退出:

quit

刷新分区:

sudo partprobe /dev/nvme0n1

再次查看:

lsblk

会看到:

nvme0n1p7
600G

五、格式化 ext4

确认:

lsblk -f

确定:

nvme0n1p7

就是刚创建的新分区。

格式化:

sudo mkfs.ext4 -L ai-data /dev/nvme0n1p7

完成以后:

lsblk -f

可以看到:

LABEL

ai-data

六、创建挂载目录

建立:

sudo mkdir /data

挂载:

sudo mount /dev/nvme0n1p7 /data

修改权限:

sudo chown -R $USER:$USER /data

验证:

touch /data/test

rm /data/test

说明:

读写正常

七、设置开机自动挂载

查询 UUID:

sudo blkid /dev/nvme0n1p7

例如:

UUID="xxxxxxxx"

备份:

sudo cp /etc/fstab /etc/fstab.bak

编辑:

sudo nano /etc/fstab

加入:

UUID=xxxxxxxx /data ext4 defaults,noatime,nofail 0 2

保存。

测试:

sudo umount /data

sudo mount -a

如果没有任何报错:

说明:

自动挂载成功

查看:

findmnt /data

八、迁移 ComfyUI Models

停止 ComfyUI:

docker stop comfyui

创建目录:

mkdir -p /data/ai/models/comfyui

迁移:

rsync -avh \
~/ai/models/comfyui/ \
/data/ai/models/comfyui/

保留旧目录:

mv ~/ai/models/comfyui \
~/ai/models/comfyui.backup

建立软链接:

ln -s \
/data/ai/models/comfyui \
~/ai/models/comfyui

查看:

readlink -f \
~/ai/models/comfyui

输出:

/data/ai/models/comfyui

说明:

ComfyUI 已经完全使用新的 AI 数据盘。


九、重新启动 ComfyUI

启动:

docker start comfyui

浏览器打开:

http://IP:8188

确认:

  • Checkpoint 正常
  • LoRA 正常
  • VAE 正常
  • ControlNet 正常

即可删除:

~/ai/models/comfyui.backup

十、推荐目录结构

/data
└── ai
    ├── models
    │   └── comfyui
    │       ├── checkpoints
    │       ├── diffusion_models
    │       ├── text_encoders
    │       ├── vae
    │       ├── clip
    │       ├── controlnet
    │       ├── loras
    │       ├── upscale_models
    │       └── embeddings

    ├── ollama

    ├── dataset

    ├── output

    └── cache

以后:

  • ComfyUI
  • Ollama
  • 训练数据

全部放这里。

Ubuntu 系统盘保持干净。


十一、为什么这是最佳方案

相比直接挂载 Windows NTFS:

方案 推荐程度 原因
Ubuntu ext4 独立 AI 数据盘 ⭐⭐⭐⭐⭐ 权限完整、性能最佳、Docker 兼容性最好
Windows NTFS 挂载 ⭐⭐⭐ 可用,但存在权限和休眠等问题
SMB/NAS 共享存储 ⭐⭐ 适合归档,不适合作为热点模型目录

对于长期使用 ComfyUI、Ollama、PyTorch、Docker 的 AI 工作站,独立 ext4 AI 数据盘 是最稳定、最易维护的方案。


十二、后续规划

目前目录规划:

Ubuntu(200GB)
├── OS
├── Docker
├── Conda
├── Projects

AI Data(600GB)
├── ComfyUI Models
├── Ollama Models
├── Dataset
├── Output
├── Cache

未来如果增加第二块 NVMe SSD,可以直接把 /data 整体迁移到新硬盘,仅需修改 /etc/fstab 中的 UUID,即可完成迁移,项目目录和 Docker 配置无需改动。