Linux 磁盘挂载

点击上方"程序猿技术大咖",关注并选择"设为星标"

回复"加群"获取入群讨论资格!

在 Linux 中,磁盘不像 Windows 那样自动分配盘符,而是需要手动或配置自动"挂载"到某个目录。理解挂载机制,是每位 Linux 运维人员的必备技能。

1 什么是磁盘挂载?

Linux 使用统一的目录树结构,所有存储设备(硬盘、U盘、光驱)都必须挂载到某个目录节点,才能被系统访问。这个过程称为"挂载"(mount),被挂载的目录称为"挂载点"。

与 Windows 的 C盘、D盘不同,Linux 将 /dev/sdb1 这样的设备文件挂载到 /data 目录,访问 /data 即访问该磁盘。可以理解为:把一块磁盘"接入"到目录树的某个节点上。

2 查看磁盘与分区信息

在挂载之前,先确认系统识别到了哪些磁盘和分区。

bash 复制代码
# 查看所有磁盘和分区(树形结构)lsblk# 查看分区详情(含UUID和文件系统类型)lsblk -f# 查看磁盘使用情况df -h# 查看分区表(需要 root 权限)fdisk -l
powershell 复制代码
# lsblk 输出示例NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda      8:0    0   50G  0 disk├─sda1   8:1    0    1G  0 part /boot└─sda2   8:2    0   49G  0 part /sdb      8:16   0  100G  0 disk└─sdb1   8:17   0  100G  0 part

其中 sdb1 的 MOUNTPOINT 列为空,说明尚未挂载,接下来我们对它操作。

3 格式化分区(创建文件系统)

新磁盘或新分区在挂载前通常需要格式化,即创建文件系统(如果是已有数据的磁盘则跳过此步)。

bash 复制代码
# 格式化为 ext4mkfs.ext4 /dev/sdb1# 格式化为 xfsmkfs.xfs /dev/sdb1# 格式化为 vfat(U盘常用)mkfs.vfat /dev/sdb1

⚠️ 格式化会清除分区上的所有数据,操作前请务必确认设备路径正确,并做好数据备份!

4 临时挂载(mount 命令)

使用 mount 命令可以立即挂载磁盘,但重启后失效,适合临时使用或测试。

  • 1

    创建挂载点目录挂载点必须是一个已存在的空目录,建议放在 /mnt 或 /data 下

  • 2

    执行挂载命令将设备文件挂载到指定目录,可选择指定文件系统类型

  • 3

    验证挂载结果用 df -h 或 mount 命令确认挂载成功,可进入目录读写数据

bash 复制代码
# 第一步:创建挂载点mkdir -p /data/disk1# 第二步:挂载磁盘mount /dev/sdb1 /data/disk1# 指定文件系统类型(推荐加上 -t)mount -t ext4 /dev/sdb1 /data/disk1# 第三步:验证挂载df -h /data/disk1mount | grep sdb1

5 永久挂载(配置 /etc/fstab)

要让挂载在重启后依然生效,需要编辑 /etc/fstab 文件。该文件是 Linux 的"自动挂载配置表",系统每次启动都会读取并自动执行其中的挂载指令。

强烈建议使用 UUID 而非设备名(如/dev/sdb1)来标识磁盘。设备名在磁盘增减后可能发生变化,UUID 则是磁盘格式化时生成的唯一标识符,永久固定。

bash 复制代码
# 方法一:blkid 命令blkid /dev/sdb1/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-1234567890ef" TYPE="ext4"# 方法二:lsblk -f(更直观)lsblk -f
apache 复制代码
CONFIG --- /etc/fstab 写法# 格式:设备  挂载点  文件系统  选项  dump  fsckUUID=a1b2c3d4-e5f6-7890-abcd-1234567890ef  /data/disk1  ext4  defaults  0  2

fstab 各字段含义

  • 1

    设备标识UUID=xxx 或 /dev/sdb1,推荐使用 UUID

  • 2

    挂载点目标目录,如 /data/disk1,必须提前创建

  • 3

    文件系统类型ext4、xfs、vfat 等,与格式化时保持一致

  • 4

    挂载选项defaults 即可满足大多数场景;只读可用 ro

  • 5

    dump 备份0 = 不备份(一般填 0)

  • 6

    fsck 检查顺序0 = 不检查;根分区填 1;其他分区填 2

bash 复制代码
SHELL --- 验证 fstab 配置# 验证 fstab 语法是否有误findmnt --verify# 挂载 fstab 中所有未挂载的条目mount -a# 检查 /data/disk1 是否挂载成功df -h /data/disk1

⚠️ fstab 配置错误可能导致系统无法正常启动!修改前请先备份原文件:cp /etc/fstab /etc/fstab.bak

6 卸载磁盘(umount)

当不再需要某个挂载时,使用 umount 命令卸载(注意:是 umount,不是 unmount)。卸载后该设备可安全拔除或重新分配。

bash 复制代码
# 按挂载点卸载umount /data/disk1# 按设备名卸载umount /dev/sdb1# 强制卸载(设备繁忙时,谨慎使用)umount -f /data/disk1# 卸载失败时------查看谁在占用lsof /data/disk1fuser -m /data/disk1

7 常见问题与排查

问题排查速查表

8 操作总结

掌握磁盘挂载是 Linux 系统管理的重要基础。建议在虚拟机中完整练习一遍:新建磁盘 → lsblk 确认 → mkfs 格式化 → mount 临时挂载 → 写入 /etc/fstab 永久挂载,形成完整操作链路。


感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!

喜欢就点个"在看"呗,留言、转发朋友圈

相关推荐
Dontla2 小时前
santifer/career-ops介绍(使用Claude Code自动化搜索招聘岗位并分析)(Playwright、Chromium)
运维·自动化
LoneEon2 小时前
Kubernetes高可用集群部署教程
linux·docker·kubernetes
小羽网安2 小时前
Linux 服务器如何进行安全加固?
linux·服务器·安全
倔强的胖蚂蚁3 小时前
AI 人工智能配置管理 Nginx
运维·nginx·云原生
上海云盾安全满满3 小时前
服务器如果做好日常维护,有什么作用
运维·服务器
正在走向自律3 小时前
企业级数据库存储运维实战:表空间自动创建与存储架构深度优化
运维·数据库·架构·表空间
csdn_aspnet3 小时前
.Net 解决 Web API 中的“服务器响应状态码为 405(方法不允许)”错误
服务器·.net·webapi
念风3 小时前
[Linux学习笔记]Uboot-DM的分析过程
linux
想唱rap3 小时前
计算机网络基础
linux·计算机网络·mysql·ubuntu·bash