Linux磁盘开机挂载的实现步骤

 更新时间:2025年12月24日 08:49:17   作者:问道飞鱼  
在Linux系统中,通过修改/etc/fstab文件,可以实现磁盘开机自动挂载,文章详细介绍了挂载和开机自动挂载的基本概念,以及实现步骤,需要的朋友可以参考下

在 Linux 系统中,如果你希望将某块磁盘(或分区)开机自动挂载到指定的目录(比如 /mnt/data),你需要修改系统的 /etc/fstab 文件,这是控制开机自动挂载的核心配置文件。

一、基本概念

什么是挂载(mount)?

  • Linux 中,所有的硬件设备(比如硬盘、U盘、分区)都是以文件的形式存在于 /dev/ 目录下,如 /dev/sda1/dev/nvme0n1p2
  • 要使用这些存储设备上的文件系统,必须将其挂载(mount)到一个目录(称为挂载点,如 /mnt/mydisk),之后你才能通过该目录访问磁盘内容。

什么是开机自动挂载?

  • 手动挂载:每次重启后,你需要重新运行 mount 命令来挂载磁盘。
  • 自动挂载:通过在 /etc/fstab 文件中添加一行配置,系统在启动时会自动挂载你指定的磁盘到指定目录。

二、实现步骤

步骤 1:确认磁盘设备名和文件系统类型

1.1 查看当前系统中的磁盘和分区

lsblk

sudo fdisk -l

输出示例:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk 
├─sda1   8:1    0  512M  0 part /boot
└─sda2   8:2    0 99.5G  0 part /
sdb      8:16   0   50G  0 disk 
└─sdb1   8:17   0   50G  0 part 
  • 假设你想挂载的是 /dev/sdb1,它是一个 50G 的分区,目前没有挂载(没有 MOUNTPOINT)

1.2 查看该分区的文件系统类型

sudo blkid /dev/sdb1

输出示例:

/dev/sdb1: UUID="1234abcd-5678-efgh-9012-ijklmnopqrstuv" TYPE="ext4"
  • 重点关注:
    • UUID(推荐使用,比设备名更稳定,比如 /dev/sdb1 可能因硬件变动而改变)
    • TYPE:比如 ext4xfsntfsvfat

推荐使用 UUID 来标识磁盘,而不是 /dev/sdX 名称,因为设备名可能在重启后发生变化。

步骤 2:创建挂载目标目录

比如你想把 /dev/sdb1 挂载到 /mnt/mydata,先创建这个目录:

sudo mkdir -p /mnt/mydata

你可以自定义这个路径,比如 /data/media/disk1 等。

步骤 3:编辑/etc/fstab文件,添加自动挂载配置

使用你喜欢的编辑器(如 nanovi)编辑 fstab 文件:

sudo nano /etc/fstab

在文件末尾添加一行,格式如下:

UUID=<你的分区UUID>  <挂载点目录>  <文件系统类型>  <挂载选项>  <dump>  <fsck顺序>

举个例子:

假设:

  • UUID 是 1234abcd-5678-efgh-9012-ijklmnopqrstuv
  • 挂载到 /mnt/mydata
  • 文件系统是 ext4
  • 挂载选项用默认的 defaults
  • dump 和 fsck 都设为 0

那么添加的一行是:

UUID=1234abcd-5678-efgh-9012-ijklmnopqrstuv  /mnt/mydata  ext4  defaults  0  2

参数解释:

字段含义示例/推荐值
UUID=…磁盘分区的唯一标识符(推荐)使用 blkid 命令查看
/mnt/mydata本地挂载目标目录你自己创建的目录
ext4文件系统类型,如 ext4, xfs, ntfs, vfatblkid 查看 TYPE
defaults挂载选项:读写、可执行、suid等常用:defaults,也可用 noatime,nodiratime 等优化选项
0是否使用 dump 备份(一般填 0)0 表示禁用
2是否在启动时检查文件系统(ext*系列一般非根分区填 2,根分区为 1)根分区为 1,其他一般为 2,swap 为 0

如果你不确定文件系统类型,填 auto 也可以(但不够严谨,建议明确类型)。

其他常见例子:

挂载 NTFS 格式磁盘(如移动硬盘):

UUID=ABCD1234EF567890  /mnt/usb  ntfs-3g  defaults,uid=1000,gid=1000  0  0

需要安装 ntfs-3g 软件包(Ubuntu/Debian: sudo apt install ntfs-3g

挂载NAS盘

# 添加以下行(根据需求选择配置)
# 基础配置
nas-server.local:/export/data /mnt/nas/data nfs defaults 0 0

# 带超时和重试的配置
nas-server.local:/export/data /mnt/nas/data nfs defaults,timeo=300,retrans=3,_netdev 0 0

# 高性能配置(适合千兆网络)
nas-server.local:/export/data /mnt/nas/data nfs rw,hard,intr,rsize=32768,wsize=32768,_netdev 0 0

# 软挂载(对网络波动敏感的应用不推荐)
nas-server.local:/export/data /mnt/nas/data nfs rw,soft,timeo=100,retrans=3,_netdev 0 0

挂载为只读:

UUID=...  /mnt/readonly_disk  ext4  ro  0  2

挂载时不自动挂载(比如用于手动挂载):

如果某行不想开机挂载,可以暂时注释掉(行首加 #)。

步骤 4:测试 fstab 配置是否正确(重要!)

在重启之前,强烈建议先测试 fstab 配置是否有误:

sudo mount -a
  • 如果配置正确,此命令会按照 /etc/fstab 的内容挂载所有未挂载的磁盘,且不会报错
  • 如果有错误(比如 UUID 错了、目录不存在、文件系统类型不对),系统会提示你哪一行有问题。

你可以通过以下命令检查是否挂载成功:

df -h

lsblk

你应该能看到 /dev/sdb1 已经挂载到了 /mnt/mydata

步骤 5:重启系统,验证自动挂载

sudo reboot

重启后,运行:

df -h

检查你的目标挂载点(如 /mnt/mydata)是否已经成功挂载,且来自正确的磁盘分区。

三、补充说明

1. 为什么推荐使用 UUID,而不是 /dev/sdX?

  • /dev/sda1/dev/sdb1 这类名称可能因硬件插拔顺序、BIOS、磁盘热插拔等因素发生变化,导致系统启动时挂载错设备。
  • UUID 是分区/磁盘的全球唯一标识符,不会变化,更加可靠。

你可以通过以下命令获取磁盘的 UUID:

sudo blkid

输出示例:

/dev/sda1: UUID="abcd1234..." TYPE="ext4"
/dev/sdb1: UUID="1234abcd-5678..." TYPE="ext4"

2. 如何找到磁盘的 UUID 和 文件系统类型?

sudo blkid

或者针对某个分区:

sudo blkid /dev/sdb1

3. 如果磁盘是新的/未格式化的,需要先格式化!

如果你要挂载的磁盘是新磁盘或未格式化的,你需要先:

  1. 确认磁盘没有被使用/挂载
  2. 格式化磁盘(谨慎操作,会清空数据!)

例如,格式化为 ext4:

sudo mkfs.ext4 /dev/sdb1

或者格式化为 xfs:

sudo mkfs.xfs /dev/sdb1

格式化会清空该分区上所有数据,请确保你选择了正确的设备!

四、总结:Linux 开机自动挂载磁盘的完整流程

步骤操作内容
1️⃣使用 lsblkfdisk -l 找到你想要挂载的磁盘分区(如 /dev/sdb1
2️⃣使用 sudo blkid /dev/sdb1 获取该分区的 UUID文件系统类型(如 ext4)
3️⃣创建本地挂载目录,如 sudo mkdir -p /mnt/mydata
4️⃣编辑 /etc/fstab 文件,添加一行类似:
UUID=xxxxxx /mnt/mydata ext4 defaults 0 2
5️⃣测试 fstab 是否正确:sudo mount -a,然后用 df -h 检查
6️⃣重启系统,验证是否自动挂载成功

以上就是Linux磁盘开机挂载的实现步骤的详细内容,更多关于Linux磁盘开机挂载的资料请关注脚本之家其它相关文章!

相关文章

  • Linux虚拟机&Docker安装RabbitMQ方式

    Linux虚拟机&Docker安装RabbitMQ方式

    这篇文章主要介绍了Linux虚拟机&Docker安装RabbitMQ方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • apache访问根目录 配置作用域的相关资料

    apache访问根目录 配置作用域的相关资料

    最近安装环境为 wdlinux 集成包,后台有非常好的网站管理,并且每一个网站都会给设置一个 单独的 apache 配置文件,非常方便
    2013-02-02
  • 使用 Apache Web 服务器配置两个或多个站点的方法

    使用 Apache Web 服务器配置两个或多个站点的方法

    这篇文章主要介绍了使用 Apache Web 服务器配置多个站点的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • linux查看服务器开放的端口和启用的端口多种方式

    linux查看服务器开放的端口和启用的端口多种方式

    Nmap可以扫描网络中的处于活动状态的主机、开放端口、操作系统版本和服务检测以及执行隐匿方式的信息扫描,这篇文章主要介绍了linux查看服务器开放的端口和启用的端口五种方式,需要的朋友可以参考下
    2022-08-08
  • Ubuntu上释放空间的5种简单方法

    Ubuntu上释放空间的5种简单方法

    这篇文章主要给大家介绍了关于Ubuntu上释放空间的5种简单方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Ubuntu系统具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 关于Linux搭建RabbitMQ集群环境图文详解

    关于Linux搭建RabbitMQ集群环境图文详解

    这篇文章主要介绍了关于Linux搭建RabbitMQ集群环境图文详解,RabbitMQ天然支持集群,集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量能力的目的,需要的朋友可以参考下
    2023-05-05
  • win7中VMware安装CentOs7搭建Linux环境教程

    win7中VMware安装CentOs7搭建Linux环境教程

    这篇文章主要为大家详细介绍了win7中VMware虚拟机安装CentOs7搭建Linux环境教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • CentOS 7 中firewall-cmd命令详细介绍

    CentOS 7 中firewall-cmd命令详细介绍

    这篇文章主要介绍了 CentOS 7 中firewall-cmd命令详细介绍的相关资料,这里对CentOS 7的firewall-cmd命令一一介绍,希望能帮助开始使用的朋友,需要的朋友可以参考下
    2016-11-11
  • Linux借助信号机制回收进程的方法

    Linux借助信号机制回收进程的方法

    在Linux系统中,进程管理是系统管理员和开发者的核心技能之一,本文将深入探讨如何利用信号机制来优雅地回收进程,确保系统资源的有效释放和应用程序的平稳终止,需要的朋友可以参考下
    2025-12-12
  • httpd.conf 二级域名设置方法

    httpd.conf 二级域名设置方法

    首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com 其次,在 httpd.conf 中打开 mod_rewrite
    2009-02-02

最新评论