首页 > 运维 > linux运维 > 正文

如何在Linux中挂载外部存储设备 Linux mount命令参数详解

P粉602998670
发布: 2025-08-23 08:06:02
原创
451人浏览过
识别外部设备使用lsblk或fdisk -l,通过sudo mount -t指定文件系统类型,-o设置挂载选项如rw、umask等;卸载时用umount命令,遇“device is busy”可用lsof或fuser排查占用进程,或使用umount -l懒惰卸载;为实现开机自动挂载,需编辑/etc/fstab文件,推荐使用UUID代替设备名,配置挂载点、文件系统类型、选项、dump和fsck字段,并用sudo mount -a测试配置正确性,避免系统启动失败。

如何在linux中挂载外部存储设备 linux mount命令参数详解

在Linux系统中,挂载外部存储设备,说白了,就是告诉操作系统:嘿,我这里有个新的硬盘、U盘或者其他什么存储介质,你得把它识别出来,然后指定一个地方(一个目录)让它能被访问。这个过程的核心就是

mount
登录后复制
命令,它把一个文件系统连接到你系统目录树的某个特定点上。没有挂载,这些设备里的数据对你来说就是隐形的,无法读写。

解决方案

要挂载一个外部存储设备,你通常需要知道两件事:设备本身的名字(比如

/dev/sdb1
登录后复制
)和你想把它挂载到哪里(一个空目录,比如
/mnt/usb
登录后复制
)。

一个最基本的挂载流程是这样的:

  1. 识别设备及分区: 使用
    lsblk
    登录后复制
    fdisk -l
    登录后复制
    找到你的设备,比如
    /dev/sdb1
    登录后复制
  2. 创建挂载点: 比如
    sudo mkdir /mnt/my_usb_drive
    登录后复制
  3. 执行挂载命令:
    sudo mount /dev/sdb1 /mnt/my_usb_drive
    登录后复制

当然,这只是最简单的情况,很多时候你还需要指定文件系统类型、挂载选项等等。

如何识别Linux中的外部存储设备及其分区?

识别外部存储设备,这在Linux下是个基础活儿,但有时候也挺让人头疼的,特别是当你插了好几个设备的时候。最常用的工具

lsblk
登录后复制
,它能以树状结构列出所有块设备,包括硬盘、U盘、光驱等,以及它们的分区。

当你输入

lsblk
登录后复制
,你可能会看到类似这样的输出:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 238.5G  0 disk
├─sda1        8:1    0   512M  0 part /boot/efi
├─sda2        8:2    0     1G  0 part /boot
└─sda3        8:3    0 237.1G  0 part /
sdb           8:16   1  14.9G  0 disk
└─sdb1        8:17   1  14.9G  0 part
登录后复制

这里,

sdb
登录后复制
就是我的U盘,而
sdb1
登录后复制
则是它上面的第一个分区。注意
RM
登录后复制
列,如果显示
1
登录后复制
,通常表示这是一个可移动设备。

另一个老牌工具是

fdisk -l
登录后复制
,它会列出所有硬盘的分区表信息,虽然输出可能有点啰嗦,但在某些情况下,比如需要看更详细的磁盘几何信息时,它还是很有用的。

如果你想知道某个分区是什么文件系统类型,

sudo blkid /dev/sdb1
登录后复制
是个好办法。它会告诉你设备的UUID、文件系统类型(
TYPE
登录后复制
),比如
ext4
登录后复制
vfat
登录后复制
(FAT32)、
ntfs
登录后复制
等。这个
TYPE
登录后复制
在你手动挂载时,如果文件系统不是Linux原生支持的,比如NTFS,就显得尤为重要。毕竟,Linux可不会魔法般地知道你插进来的是个什么格式的盘。

Linux mount命令的常用参数有哪些?

mount
登录后复制
命令的参数真是五花八门,但常用的也就那么几个,理解了它们,基本上就能应对绝大多数挂载场景了。

  1. -t <文件系统类型>
    登录后复制
    :指定文件系统类型。 这是最常用的一个。比如,你要挂载一个FAT32格式的U盘,你就得用
    -t vfat
    登录后复制
    ;如果是NTFS格式的,通常需要安装
    ntfs-3g
    登录后复制
    包,然后用
    -t ntfs-3g
    登录后复制

    sudo mount -t vfat /dev/sdb1 /mnt/usb
    sudo mount -t ntfs-3g /dev/sdb1 /mnt/data_drive
    登录后复制

    如果你不指定,

    mount
    登录后复制
    会尝试自动检测,但有时候它会猜错或者干脆猜不到。

  2. -o <挂载选项>
    登录后复制
    :指定挂载选项。 这个参数是
    mount
    登录后复制
    命令的精髓,它能让你精细控制挂载行为。选项之间用逗号分隔。

    • ro
      登录后复制
      :只读挂载。如果只是想看看里面的内容,不想误操作,这个选项很安全。
    • rw
      登录后复制
      :读写挂载。这是默认行为,但明确指定也无妨。
    • defaults
      登录后复制
      :这是最常用的一个,它包含了
      rw, suid, dev, exec, auto, nouser, async
      登录后复制
      等一系列默认选项。
    • noauto
      登录后复制
      :不要在启动时自动挂载(主要用于
      /etc/fstab
      登录后复制
      )。
    • user
      登录后复制
      /
      users
      登录后复制
      :允许普通用户挂载/卸载设备。
      user
      登录后复制
      只允许挂载者卸载,
      users
      登录后复制
      允许任何用户卸载。
    • exec
      登录后复制
      /
      noexec
      登录后复制
      :允许/禁止在挂载点执行程序。出于安全考虑,对于外部设备有时会用
      noexec
      登录后复制
    • sync
      登录后复制
      /
      async
      登录后复制
      :同步/异步写入。
      sync
      登录后复制
      写入会立即同步到磁盘,更安全但性能低;
      async
      登录后复制
      则相反。
    • uid=<用户ID>
      登录后复制
      ,
      gid=<组ID>
      登录后复制
      ,
      umask=<权限掩码>
      登录后复制
      :这些对于挂载FAT32或NTFS等不支持Linux权限的文件系统特别有用。它们能让你指定挂载后文件的所有者和权限。比如,
      uid=1000,gid=1000,umask=0022
      登录后复制
      就能让当前用户(通常UID是1000)拥有对设备的读写权限。

    举个例子,挂载一个NTFS分区,并允许当前用户读写:

    sudo mount -t ntfs-3g -o defaults,uid=$(id -u),gid=$(id -g) /dev/sdb1 /mnt/data_drive
    登录后复制

    这里

    $(id -u)
    登录后复制
    $(id -g)
    登录后复制
    会自动替换为当前用户的UID和GID,这比手动查找要方便得多。

如何卸载(umount)已挂载的设备以及常见问题?

挂载了设备,用完之后可不能直接拔掉,那样很容易导致数据损坏。正确的方式是先“卸载”它。

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图

卸载命令是

umount
登录后复制
。你可以通过两种方式指定要卸载的目标:

  1. 通过挂载点:
    sudo umount /mnt/my_usb_drive
    登录后复制
  2. 通过设备名:
    sudo umount /dev/sdb1
    登录后复制

通常推荐使用挂载点,因为它更直观,而且在某些情况下,设备名可能会变。

卸载时最常见的错误就是:“device is busy”(设备忙)。 这意味着有程序正在使用这个挂载点里的文件或者目录。遇到这种情况,你不能硬拔,得先找出是谁在“霸占”着它。

解决“设备忙”问题,有几个办法:

  1. 找出占用进程:

    • lsof <挂载点>
      登录后复制
      :列出所有打开指定挂载点下文件的进程。
    • fuser -m <挂载点>
      登录后复制
      :显示所有访问指定挂载点的进程ID。 找到进程ID后,你可以尝试关闭相关程序,或者直接
      kill <进程ID>
      登录后复制
      。 比如,
      fuser -m /mnt/usb
      登录后复制
      可能会输出一些PID,然后
      sudo kill <PID>
      登录后复制
  2. 懒惰卸载(Lazy Unmount): 如果实在找不到或者无法关闭占用进程,

    umount -l <挂载点>
    登录后复制
    是个救命稻草。这个命令会立即将文件系统从文件系统层次结构中分离,但会等到所有对该文件系统的引用都结束后才清理所有数据结构。它不会强制终止任何进程,只是让挂载点看起来被卸载了。但请注意,这可能会导致数据丢失或损坏,所以只在万不得已时使用。

  3. 确保数据同步: 在卸载之前,尤其是对U盘这类可移动设备,最好先运行一下

    sync
    登录后复制
    命令。
    sync
    登录后复制
    会强制将内存中所有未写入的数据块写入磁盘,确保数据完整性。虽然现代Linux系统通常会处理得很好,但多一步
    sync
    登录后复制
    总归是更保险的做法。

记住,安全卸载是保护数据完整性的关键步骤,千万不能省。

如何配置fstab实现开机自动挂载?

对于那些你需要长期固定使用的外部存储设备,比如一个专门的数据盘,每次开机都手动挂载显然不现实。这时,

/etc/fstab
登录后复制
文件就派上用场了。它是Linux系统启动时自动挂载文件系统的配置文件。

编辑

/etc/fstab
登录后复制
需要非常小心,一个错误的配置可能导致系统无法启动。在修改之前,务必备份
/etc/fstab
登录后复制
sudo cp /etc/fstab /etc/fstab.bak
登录后复制

/etc/fstab
登录后复制
文件的每一行代表一个要挂载的文件系统,包含六个字段:

  1. 文件系统设备: 最好使用设备的UUID而不是
    /dev/sdX
    登录后复制
    ,因为
    /dev/sdX
    登录后复制
    可能会在设备插拔或系统启动时发生变化,而UUID是设备独一无二的标识符,更稳定。你可以用
    sudo blkid
    登录后复制
    命令来获取设备的UUID。 例如:
    UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    登录后复制
  2. 挂载点: 设备将要挂载到的目录。这个目录必须存在。
  3. 文件系统类型: 例如
    ext4
    登录后复制
    ntfs-3g
    登录后复制
    vfat
    登录后复制
  4. 挂载选项:
    mount -o
    登录后复制
    后面的选项类似,比如
    defaults
    登录后复制
    ro
    登录后复制
    noauto
    登录后复制
    user
    登录后复制
    等。对于数据盘,
    defaults
    登录后复制
    通常就够了。如果希望在启动时检查文件系统错误,可以加上
    errors=remount-ro
    登录后复制
  5. dump选项: 用于
    dump
    登录后复制
    命令,通常设为
    0
    登录后复制
    (不备份)。
  6. fsck选项: 用于
    fsck
    登录后复制
    命令在启动时检查文件系统。根文件系统通常设为
    1
    登录后复制
    ,其他文件系统设为
    2
    登录后复制
    (表示在根文件系统检查完毕后检查),不检查设为
    0
    登录后复制

一个典型的

/etc/fstab
登录后复制
条目可能像这样:

UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /mnt/data_disk ext4 defaults 0 2
登录后复制

这行配置的意思是:将UUID为

a1b2c3d4-e5f6-7890-1234-567890abcdef
登录后复制
的设备,以
ext4
登录后复制
类型挂载到
/mnt/data_disk
登录后复制
目录,使用默认选项,不进行
dump
登录后复制
备份,并在启动时进行文件系统检查(优先级为2)。

配置完成后,不要急着重启! 你可以用

sudo mount -a
登录后复制
命令来测试你的
fstab
登录后复制
配置是否正确。这个命令会尝试挂载所有在
fstab
登录后复制
中但尚未挂载的文件系统。如果没有报错,说明你的配置基本没问题。如果报错,你就能及时发现并修正,避免重启后无法进入系统。

自动挂载虽然方便,但一不小心写错了,那开机就可能直接进到紧急模式了。所以,理解每个字段的含义,并且在修改后进行测试,是至关重要的。

以上就是如何在Linux中挂载外部存储设备 Linux mount命令参数详解的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号