# Linux系统分区策略


本系列的AI-工作站的硬盘配置是SSD+HDD组合，合理分配和优化这些资源非常重要。

系统：Ubuntu-24.04

<!--more-->

{{< image src="./images/linux-partition-policy.png" alt="Linux System Partition Policy" caption="Linux System Partition Policy" width="60%" >}}

### 资源分配思路

核心思想是：速度最快的 SSD 用于系统和常用应用，次快的 SSD 用于高性能数据或备份，HDD 用于大容量冷存储。

#### SSD 1 (已安装 Ubuntu 系统，1TB)

用途： 操作系统、应用程序、少量常用个人文件。

分配方案：

- / (根目录): 分配 100GB - 200GB。这将包含 Ubuntu 系统本身、所有安装的软件、以及一些系统缓存。这个大小足以应对大多数用户的需求，甚至安装大量软件也绰绰有余。

- /home (用户主目录): 将 SSD 1 的剩余空间都分配给 /home。如果你想将一部分 /home 分区放在 HDD 上（比如仅将大媒体文件放在 HDD），则这里可以根据需求分配，但为了最大化个人文件访问速度，推荐将大部分个人常用文件放在这里。

- SWAP (交换空间): 不推荐使用。

#### SSD 2 (空闲，1TB)

用途： 高性能工作负载、重要项目、虚拟机、游戏库、频繁访问的大型数据集、快速备份、或作为 SSD 1 的扩展高速存储。

分配方案：

- 单个分区，挂载到 /mnt/ssd2 或 /data/ssd_fast 等自定义目录。 格式化为 ext4 文件系统。

具体用途示例：

- 虚拟机镜像： 如果你运行多个虚拟机，将它们放在这里能获得最佳性能。

- 大型游戏库： 将 Steam 库或其他游戏安装到此驱动器。

- 视频编辑/图形设计工作区： 临时存放项目文件和渲染输出。

- 代码仓库/开发环境： 如果你的项目依赖大量文件I/O。

- Dropbox/Nextcloud 等云同步文件夹： 如果你的云同步目录很大且需要快速访问。

- 缓存或临时目录： 某些应用程序的超大缓存，例如 Docker 镜像存储目录。

#### HDD (空闲，4TB)

用途： 大容量存储，不常用或对速度要求不高的数据，归档，媒体文件（电影、音乐）、长期备份。

分配方案：

- 单个分区，挂载到 /mnt/hdd_storage 或 /data/archive 等自定义目录。 格式化为 ext4 文件系统。

具体用途示例：

- 电影、电视剧、音乐库。

- 照片归档。

- 系统备份 (Timeshift 备份目标)。

- 不常用的旧项目文件。

- 软件安装包的归档。


### 安装过程指导

从头开始规划的效果是最好的，不用担心和处理复杂的修改分区和数据迁移的操作，推荐。

1. 备份所有重要数据！ 两次强调！
2. 创建 Ubuntu 安装 U 盘。
3. 从 U 盘启动，选择 "Something else" (其他选项) 进行手动分区。

分区步骤示例：

- SSD 1 (1TB)：

  - EFI System Partition (ESP): 512MB，FAT32，挂载点 /boot/efi 。

  - / (根目录): 100GB - 200GB，ext4，挂载点 / 。

  - /home (用户主目录): 剩余空间 (约 800GB - 900GB)，ext4，挂载点 /home 。


- SSD 2 (1TB)：

  - /mnt/ssd2_data (自定义目录): 整个 1TB，ext4，挂载点 /mnt/ssd2_data (你也可以选择 /data 或其他你喜欢的名字)。

- HDD (4TB)：

  - /mnt/hdd_archive (自定义目录): 整个 4TB，ext4，挂载点 /mnt/hdd_archive (你也可以选择 /data_archive 或 /media/storage 等)。


### 根目录 / 预留空间建议

在 Ubuntu 重装方案中，/ 根目录预留多少空间是一个常见的问题。这个目录包含了操作系统核心文件、大多数已安装的应用程序以及各种系统配置和临时文件。

对于你拥有两个 1TB SSD 和一个 4TB HDD 的情况，/ 根目录的合理预留空间建议是：

1. 推荐范围： 80GB - 150GB

    - 这个范围对于大多数用户来说是绰绰有余的。

    - 80GB: 对于安装标准 Ubuntu 系统和一些常用软件（如浏览器、办公套件、邮件客户端、一些开发工具）来说，80GB 已经非常宽裕。你会剩下大量空间来应对未来的软件安装和系统更新。

    - 100GB - 150GB: 如果你是一个软件爱好者，喜欢尝试各种工具、游戏，或者进行大量开发工作（例如安装Docker、多个IDE、虚拟机软件本身），那么这个范围会让你更安心，有足够的增长空间。

2. 为什么不建议更大？

    - 浪费空间： 考虑到你的第一个 SSD 有 1TB，如果你给 / 分配 300GB 甚至 500GB，那么这部分空间很可能永远都用不完。

    - 管理不便： 预留过大的 / 空间，可能会导致 /home 或其他数据分区（比如你计划在第二个 SSD 上创建的数据分区）的空间被挤压，或者无法进行更精细的分配。

3. 为什么不建议太小？

    - 未来扩展困难： 虽然 Linux 文件系统允许调整分区大小，但缩小或扩展根分区通常比较麻烦，最好在安装时就预留足够空间。

    - 更新问题： 系统更新，特别是内核更新，会占用一些空间。如果 / 太小，可能会导致更新失败。

    - 应用安装受限： 某些大型应用程序会默认安装到 /opt 或 /usr/local 下，这些都属于根目录。


### 针对 Workstation 的具体配置

实际分区如下：

- / 根目录：100GB

  - 这个大小能确保系统核心和所有可能安装的软件（CUDA系列）都有充足的空间。

- /home 用户主目录：将 SSD 1 的剩余空间全部给它

  - 例如，如果 / 是 100GB，那么 /home 将有大约 800GB 左右的可用空间（考虑到文件系统开销）。这个空间对于存放常用文档、项目文件、大部分照片都是非常理想的。

这样分配的好处是：

- 性能最大化： 操作系统、应用程序和你的日常使用文件都在最快的 SSD 上。

- 管理简洁： 无需担心哪些文件该放在哪个 SSD 的哪个分区，大部分文件都集中管理。

- 利用率高： 1TB 的 SSD 得到了充分利用。

至于第二个 1TB 的 SSD，它将专门作为高速数据盘，可以用于虚拟机、大型游戏库、视频编辑项目等，而 4TB 的 HDD 则用于海量冷存储和备份。

这就是我们的系统分区推荐策略啦！


---

> 作者: pr_zutto  
> URL: https://przutto.github.io/ai-server/aef70e5/  

