当前位置: 代码网 > 服务器>服务器>Linux > Linux磁盘开机挂载的实现步骤

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

2025年12月24日 Linux 我要评论
在 linux 系统中,如果你希望将某块磁盘(或分区)开机自动挂载到指定的目录(比如/mnt/data),你需要修改系统的/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磁盘开机挂载的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com