Ubuntu Server多块数据盘挂载与fstab持久化方式

 更新时间:2026年05月28日 10:12:16   作者:黑风风  
本文详细记录了多块数据盘在Ubuntu、Proxmox及KVM/QEMU环境下的规范化挂载流程,包括分区、格式化、挂载及使用UUID写入/etc/fstab实现永久挂载,强调了UUID的稳定性和重要性

在服务器运维过程中,多块数据盘的规范化挂载几乎是必做工作之一。本文记录一次完整的实战流程:

从磁盘识别 → 分区 → 格式化 → 挂载 → 使用 UUID 写入 /etc/fstab 实现永久挂载

适用环境包括但不限于:

  • Ubuntu Server
  • Proxmox 虚拟机
  • 云主机 / KVM / QEMU 环境

一、磁盘背景

当前系统中新增了三块数据盘,系统识别信息如下:

Disk /dev/sdf: 1.5 TiB, 1649267441664 bytes
Disk model: QEMU HARDDISK

Disk /dev/sdg: 4.5 TiB, 4947802324992 bytes
Disk model: QEMU HARDDISK

Disk /dev/sdh: 1 TiB, 1099511627776 bytes
Disk model: QEMU HARDDISK

目标规划如下:

磁盘挂载点
/dev/sdf/data/bucket5
/dev/sdg/data/bucket6
/dev/sdh/data/bucket7

二、磁盘分区(GPT)

对每一块磁盘创建 GPT 分区表,并划分一个完整分区。

fdisk /dev/sdf
fdisk /dev/sdg
fdisk /dev/sdh

fdisk 交互中,基本流程一致:

g   # 创建 GPT 分区表
n   # 新建分区(默认即可,使用整块盘)
w   # 写入并退出

完成后,系统中会出现:

/dev/sdf1
/dev/sdg1
/dev/sdh1

三、格式化文件系统

这里统一使用 ext4,并保持简单可靠:

mkfs.ext4 /dev/sdf1
mkfs.ext4 /dev/sdg1
mkfs.ext4 /dev/sdh1

四、创建挂载目录并临时挂载

mkdir -p /data/bucket5
mkdir -p /data/bucket6
mkdir -p /data/bucket7

mount /dev/sdf1 /data/bucket5
mount /dev/sdg1 /data/bucket6
mount /dev/sdh1 /data/bucket7

验证挂载状态:

df -h

确认容量与挂载点正确后,再进行下一步。

五、为什么不用/dev/sdX,而要用 UUID?

结论先行:生产环境一律推荐使用 UUID。

原因很简单:

  • /dev/sdf/dev/sdg重启 / 热插拔 / 新增磁盘 后可能变化
  • UUID 是文件系统级别的唯一标识,稳定可靠
  • fstab 官方文档也明确推荐 UUID

六、查看磁盘 UUID 的正确方式

使用 blkid 命令:

blkid

示例输出:

/dev/sdf1: UUID="5fd3bf47-37ab-4bbc-a918-7f897b0a32dd" TYPE="ext4"
/dev/sdg1: UUID="b3e620ec-41b0-4995-b7fc-2ec8758026bb" TYPE="ext4"
/dev/sdh1: UUID="d329ccfd-f069-41a4-86e8-c5e21d265d1e" TYPE="ext4"

记录下对应关系即可。

七、写入 /etc/fstab 实现永久挂载

编辑 /etc/fstab

nano /etc/fstab

新增内容如下:

UUID=5fd3bf47-37ab-4bbc-a918-7f897b0a32dd  /data/bucket5  ext4  defaults,noatime,nofail  0  2
UUID=b3e620ec-41b0-4995-b7fc-2ec8758026bb  /data/bucket6  ext4  defaults,noatime,nofail  0  2
UUID=d329ccfd-f069-41a4-86e8-c5e21d265d1e  /data/bucket7  ext4  defaults,noatime,nofail  0  2

参数说明(重点)

  • noatime
    减少 inode 写入,适合数据盘,性能更友好

  • nofail
    即使磁盘异常,系统也能正常启动(非常重要

  • 0 2
    表示不做 dump,开机 fsck 顺序靠后

八、验证 fstab 是否正确

一定要做这一步:

mount -a

如果没有任何报错,说明 fstab 配置是正确的。

最后再次确认:

df -h

九、总结

这次多数据盘挂载的完整流程可以归纳为一句话:

分区 → 格式化 → 挂载 → 用 UUID 写入 fstab → mount -a 验证

几个实践中的经验结论:

  • 数据盘统一放在 /data/bucketX 结构下,后期扩展清晰
  • UUID + noatime + nofail 是非常稳妥的组合
  • mount -a 是防止“重启翻车”的最后一道保险

这套流程在 Proxmox 虚拟机、云服务器、裸金属 场景中都同样适用。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux线程退出方式总结(推荐)

    Linux线程退出方式总结(推荐)

    下面小编就为大家带来一篇Linux线程退出方式总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Linux定时任务Crontab的使用方法

    Linux定时任务Crontab的使用方法

    这篇文章主要为大家详细介绍了Linux定时任务Crontab的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • CentOS 6.5 web服务器apache的安装与基本设置

    CentOS 6.5 web服务器apache的安装与基本设置

    这篇文章主要介绍了CentOS 6.5 web服务器apache的安装与基本设置,需要的朋友可以参考下
    2017-09-09
  • Linux系统之主机网络配置方式

    Linux系统之主机网络配置方式

    这篇文章主要介绍了Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Linux下如何对端口流量进行统计

    Linux下如何对端口流量进行统计

    本篇文章主要介绍了Linux下如何对端口流量进行统计,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 在Linux中查找命令的执行时间的几种方法小结

    在Linux中查找命令的执行时间的几种方法小结

    在Linux系统中,了解命令的执行时间对于优化系统性能和提高效率至关重要,本文将介绍几种方法来查找命令的执行时间,包括内置的time命令、GNU time工具、strace以及perf工具,需要的朋友可以参考下
    2024-05-05
  • Linux系统中包管理RPM、YUM、DNF的使用方法

    Linux系统中包管理RPM、YUM、DNF的使用方法

    本文介绍了Linux系统中常用的包管理系统,包括Debian/Ubuntu、Hat/CentOS/Fedora、ArchLinux、openSUSE等,重点介绍了RPM、YUM/DNF的使用方法,包括安装、更新、移除软件包等操作
    2025-04-04
  • Linux服务器80端口无法访问的解决方案

    Linux服务器80端口无法访问的解决方案

    Linux服务器80端口无法访问问题多由权限不足、防火墙未开放或地址错误导致,解决步骤包括:切换root用户绑定端口、确认端口开放状态、检查访问地址正确性、测试HTTP请求处理及处理进程冲突
    2025-07-07
  • ubuntu系统下apache配置虚拟主机及反向代理详解

    ubuntu系统下apache配置虚拟主机及反向代理详解

    这篇文章主要介绍了ubuntu系统下apache配置虚拟主机及反向代理的相关资料,文中通过实例给大家演示的非常详细,对大家具有一定的参考学习价值,需要的朋友们下来一起学习学习吧。
    2017-06-06
  • 基于linux配置selenium环境并实现运行

    基于linux配置selenium环境并实现运行

    这篇文章主要介绍了基于linux配置selenium环境并实现运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论