如何在 Ubuntu 上挂载一块单独的数据盘?
你的结构现在是:
sdb→ 128G SSD(系统盘)sda→ 1T HDD(空盘)
我们把 sda 做成 /data,专门存:
- docker
- 数据库
- 日志
- 备份
我给你一套 干净、可长期使用的标准流程。
一、确认目标磁盘
先确认 1T 盘确实是 sda:
lsblk
你之前看到:
sda 931.5G
└─sda1 931.5G
说明:
sda是 1T 盘- 现在只有一个分区
sda1 - 没挂载
如果确认无误,继续。
二、重新分区(可选,但建议)
虽然已有 sda1,但建议重新干净建一次。
⚠️ 会清空数据(你现在是空盘没关系)
sudo fdisk /dev/sda
进入后按:
d 删除旧分区
n 新建分区
p 主分区
1 分区号
回车 默认起始
回车 默认结束(用满)
w 写入
完成后:
lsblk
确认 sda1 存在。
三、格式化为 ext4
sudo mkfs.ext4 /dev/sda1
执行完成。
四、创建挂载目录
sudo mkdir /data
五、手动挂载测试
sudo mount /dev/sda1 /data
确认:
df -h
你应该看到:
/dev/sda1 915G ... /data
六、设置开机自动挂载(重要)
先获取 UUID:
sudo blkid /dev/sda1
输出类似:
UUID="abcd-1234-xxxx"
编辑 fstab:
sudo vim /etc/fstab
在最后添加一行:
UUID=你的UUID /data ext4 defaults 0 2
保存退出。
测试是否有语法错误:
sudo mount -a
如果没报错,就安全了。
七、优化目录结构(标准服务器结构)
建议这样划分:
sudo mkdir -p /data/docker
sudo mkdir -p /data/mysql
sudo mkdir -p /data/logs
sudo mkdir -p /data/backup
八、把 Docker 数据迁移到 HDD
默认 Docker 在:
/var/lib/docker
我们改到 /data/docker
1️⃣ 停止 Docker
sudo systemctl stop docker
2️⃣ 移动数据
sudo rsync -aP /var/lib/docker/ /data/docker/
3️⃣ 修改配置
编辑:
sudo vim /etc/docker/daemon.json
写入:
{
"data-root": "/data/docker"
}
4️⃣ 重启 Docker
sudo systemctl start docker
确认:
docker info | grep "Docker Root Dir"
应该显示:
/data/docker
成功。
九、数据库放 HDD 的原则
以后:
- MySQL data dir 改到
/data/mysql - PostgreSQL data dir 改到
/data/pg - Mongo 改到
/data/mongo
不要让数据库写 SSD 系统盘。
SSD 主要负责:
- 系统
- 小文件
- 可执行程序
十、权限问题(很多人会踩坑)
如果你普通用户需要写:
sudo chown -R allen:allen /data
或者按服务单独给权限。
十一、长期建议(前瞻性)
你现在是:
- SSD:系统
- HDD:数据
未来如果你要跑:
- 量化回测
- 大量日志
- AI训练数据
- docker集群
1T HDD 会成为瓶颈。
建议未来升级:
把 1T HDD 换成 1T SSD
IO性能会提升 5-10 倍。
最终结构会变成
SSD
└── Ubuntu 系统
HDD
└── /data
├── docker
├── mysql
├── logs
└── backup
干净、稳定、可扩展。
如果你愿意,我可以再给你:
- 一套“生产级服务器目录规范”
- 或者一套“适合你做量化 / VPN / 游戏服务器的磁盘规划”
你现在这台机器,其实可以当一个小型实验服务器玩很久。

浙公网安备 33010602011771号