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磁盘开机挂载的资料请关注脚本之家其它相关文章!

相关文章

  • Apache+Weblogic实现URL转发

    Apache+Weblogic实现URL转发

    由于项目部署在Weblogic应用服务器上,用户访问的时候需要加端口号,这就非常的不友好了,所以又架设了Apache,使用URL转发方式来处理这个问题,本文是记录一下方法,给需要的小伙伴参考下
    2014-11-11
  • centos8 安装 nginx的详细教程(图文)

    centos8 安装 nginx的详细教程(图文)

    Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,这篇文章主要介绍了centos8 安装 nginx ,需要的朋友可以参考下
    2019-11-11
  • linux NFS 学习笔记

    linux NFS 学习笔记

    通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件
    2014-07-07
  • 详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势

    详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势

    这篇文章主要介绍了详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Linux中rsync命令使用方式

    Linux中rsync命令使用方式

    rsync是一款高效的文件同步工具,支持增量同步、远程同步、文件压缩、权限保留等功能,它可以用于本地或远程文件夹的同步,支持断点续传和排除规则,在本地模式下,可以通过cp命令替代,实现数据的增量备份,在远程模式下
    2025-01-01
  • ubuntu系统修改时区和时间的方法

    ubuntu系统修改时区和时间的方法

    今天小编就为大家分享一篇关于ubuntu系统修改时区和时间的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 虚拟机Linux桥接模式下设置静态IP详解

    虚拟机Linux桥接模式下设置静态IP详解

    这篇文章主要介绍了虚拟机Linux桥接模式下设置静态IP详解,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Linux 逻辑卷管理(LVM)使用方法总结

    Linux 逻辑卷管理(LVM)使用方法总结

    这篇文章主要介绍了Linux 逻辑卷管理(LVM)的使用方法,文中命令十分详细,帮助大家更好的学习,感兴趣的小伙伴快来参考下
    2020-06-06
  • Linux执行可执行文件提示No such file or directory的解决方法

    Linux执行可执行文件提示No such file or directory的解决方法

    这篇文章主要介绍了Linux执行可执行文件提示No such file or directory的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Centos修改DNS重启或重启network服务后丢失问题解决方法

    Centos修改DNS重启或重启network服务后丢失问题解决方法

    这篇文章主要介绍了Centos修改DNS重启或重启network服务后丢失问题解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论