菜鸟科技网

mount命令的核心作用究竟是什么?

一句话概括

mount 命令的核心作用是:将一个存储设备(如硬盘分区、U盘、光盘)或一个网络文件系统(NFS)中的特定目录(称为“挂载点”)连接到 Linux/Unix 系统的目录树中,使得用户可以像访问普通目录一样访问该设备上的文件。

mount命令的核心作用究竟是什么?-图1
(图片来源网络,侵删)

详细解释

为了更好地理解,我们可以用一个生活中的比喻:

想象一下你的电脑是一个巨大的文件柜(整个根目录 ),这个文件柜有很多抽屉(各种目录,如 /home, /var),现在你买了一个新的移动硬盘(一个外部存储设备),它本身是一个独立的盒子,里面的文件你无法直接从文件柜里看到。

mount 命令的作用,就是把这个移动硬盘盒子,连接到文件柜的某个抽屉里,你把它连接到 /mnt/usb 这个抽屉,之后,你打开 /mnt/usb 抽屉,就能看到移动硬盘里的所有文件了,当你不再需要它时,你使用 umount 命令,就像把移动硬盘从抽屉里断开连接一样。

在这个过程中:

mount命令的核心作用究竟是什么?-图2
(图片来源网络,侵删)
  • 移动硬盘:要挂载的设备(如 /dev/sdb1)。
  • /mnt/usb 抽屉:挂载点。
  • 连接操作mount 命令。
  • 断开操作umount 命令。

mount 命令的主要作用

  1. 访问设备内容 这是最基本的作用,系统启动时,只有根文件系统 是被自动挂载的,其他所有设备,如额外的数据分区、Windows 的 C 盘、U盘、光盘等,都必须通过 mount 命令挂载后才能被访问。

  2. 组织和管理文件系统 通过将不同的设备挂载到不同的目录下,可以实现对磁盘空间的灵活管理。

    • /home 目录挂载到一个独立的、更大的硬盘分区上,这样即使系统盘出问题,用户数据也能安全保留。
    • /var 目录(存放日志、缓存等)挂载到另一个分区,防止日志文件占满系统盘。
  3. 实现网络文件共享 mount 命令不仅可以挂载本地设备,还可以挂载远程服务器上的文件系统,最常见的就是 NFS (Network File System),你可以将另一台 Linux 服务器上的共享目录挂载到本地,就像访问本地目录一样操作远程文件,非常方便。

  4. 挂载特殊文件系统 除了常规的硬盘文件系统(如 ext4, NTFS),mount 还可以用于挂载一些特殊的“虚拟”文件系统,这些文件系统不存储在物理设备上,而是由内核动态生成。

    mount命令的核心作用究竟是什么?-图3
    (图片来源网络,侵删)
    • proc:内核与进程信息相关的虚拟文件系统。
    • sysfs:设备和内核参数的虚拟文件系统。
    • tmpfs:基于内存的临时文件系统,重启后数据会丢失,但读写速度极快。

mount 命令的基本语法

mount [选项] [设备文件] [挂载点]
  • [设备文件]:要挂载的设备的路径,通常在 /dev 目录下,/dev/sda1, /dev/nvme0n1p2,也可以是一个网络路径,如 server:/share
  • [挂载点]:一个已经存在的、空的目录,挂载成功后,通过访问这个目录就可以访问设备内容,常见的挂载点有 /mnt, /media, /opt 等。
  • [选项]:用于指定文件系统类型或挂载行为,-t 指定文件系统类型,-o 指定挂载选项。

常用示例

示例1:挂载一个 U盘

假设 U盘 被识别为 /dev/sdb1,并且格式化为 ext4 文件系统。

  1. 创建挂载点

    sudo mkdir -p /mnt/usb
  2. 执行挂载

    sudo mount /dev/sdb1 /mnt/usb
  3. 访问 U盘 内容

    ls /mnt/usb
  4. 卸载 U盘

    sudo umount /mnt/usb

    注意:卸载时,确保没有任何程序正在使用 /mnt/usb 目录下的文件。

示例2:挂载 Windows 的 NTFS 分区

假设 Windows 的 C 盘被识别为 /dev/sda1

sudo mkdir -p /mnt/windows_c
sudo mount -t ntfs-3g /dev/sda1 /mnt/windows_c

这里使用了 -t ntfs-3g 选项,因为 Linux 默认可能不支持完整地读写 NTFS 文件系统,ntfs-3g 是一个常用的第三方驱动。

示例3:挂载 NFS 共享目录

假设有一台服务器 168.1.100,它共享了一个目录 /data

sudo mkdir -p /mnt/nfs_share
sudo mount 192.168.1.100:/data /mnt/nfs_share

示例4:查看当前已挂载的文件系统

mount
# 或者更友好的格式
mount | column -t

示例5:挂载 ISO 镜像文件(无需刻录光盘)

假设你有一个 CentOS.iso 文件。

sudo mkdir -p /mnt/iso
sudo mount -o loop CentOS.iso /mnt/iso

-o loop 选项告诉内核将这个文件当作一个循环设备来处理,从而实现“虚拟光驱”的效果。


mount/etc/fstab

每次开机后都需要手动 mount 非常麻烦,系统使用 /etc/fstab (file system table) 文件来定义哪些设备应该在启动时自动挂载。

/etc/fstab 文件中的每一行都代表一个挂载项,包含以下字段: 设备文件 挂载点 文件系统类型 挂载选项 dump fsck

为了让上面的 U盘 在每次开机时自动挂载,可以在 /etc/fstab 中添加一行:

/dev/sdb1   /mnt/usb   ext4   defaults   0   0

mount 命令是 Linux 系统中连接物理世界(存储设备)和逻辑世界(文件系统目录树)的桥梁,它是系统管理员和高级用户日常管理磁盘和文件系统最核心、最频繁使用的命令之一,掌握 mount 的使用,是深入理解 Linux 文件系统管理的关键一步。

分享:
扫描分享到社交APP
上一篇
下一篇