1. “挂载”在 Ubuntu 中是什么意思?
挂载的意义与作用
在 Linux 和 Ubuntu 中,“挂载”指的是将存储设备附加到文件系统的过程。
例如,仅仅把 USB 闪存盘或外部硬盘插入电脑,并不会立刻让其内容可访问。Ubuntu 会执行一个称为“挂载”的过程,将该存储设备的内容显示在特定位置,如 /media 或 /mnt,这些位置被称为挂载点。
可以把它想象成把一个“组件”(存储设备)物理地连接到“主系统”(Ubuntu),从而最终能够使用其内容。
这一概念不仅适用于 USB 等可移动介质,也适用于内部硬盘分区、SSD,甚至网络共享文件夹。
文件系统与设备之间的关系
在 Linux(包括 Ubuntu)中,所有文件和目录都存在于从根目录 (/) 开始的单一层次结构中。
要将外部设备整合进来,需要先创建一个空目录作为挂载点,然后将设备“附加”到该目录。挂载后,系统会把该设备视为文件系统的一部分,就好像它一直存在一样。
例如,如果你在 /media/usb 处挂载一个 USB 驱动器,它的内容就会出现在该目录下,并且可以像其他文件一样进行复制、编辑或删除。
关键点在于 Ubuntu 必须先挂载设备才能访问它。即使系统已经识别到硬件,在挂载完成之前也无法进行文件的读写操作。
Ubuntu 与其他操作系统(Windows / macOS)的区别
在 Windows 中,插入 USB 设备通常会自动分配一个驱动器字母,如 D: 或 E:。而在 Ubuntu 中,设备是否自动挂载取决于系统设置。在桌面环境下,大多数存储设备会自动挂载,但在 服务器环境或以终端为主的设置中,往往需要手动挂载。
另一个区别是文件系统的认知。Windows 用户很少需要考虑 NTFS、FAT32 等文件系统类型,但在 Ubuntu 上,挂载选项和兼容性会因文件系统而异。例如,要完整支持 NTFS 设备,可能需要安装 ntfs-3g 包。
总之,Ubuntu 中的挂载不仅仅是连接硬件——它是一个 将存储整合进操作系统文件系统的关键过程。在接下来的章节中,我们将详细探讨实用的挂载方法和配置示例。
2. Ubuntu 手动挂载:基础方法
mount 命令的基本语法与用法
要在 Ubuntu 中手动挂载存储设备,需要使用 mount 命令。
虽然语法简洁,但功能极其强大且灵活。
sudo mount [options] device_path mount_point
例如,要将 USB 驱动器(/dev/sdb1)挂载到目录 /mnt/usb,可以使用以下命令:
sudo mount /dev/sdb1 /mnt/usb
执行该命令后,USB 驱动器上的文件将出现在 /mnt/usb 中,你即可对其进行读写操作。
请注意,挂载需要 root 权限,因此必须使用 sudo 来执行该命令。
创建与管理挂载点
挂载点是用于设备附加位置的 空目录。
需要提前创建该目录。
sudo mkdir -p /mnt/usb
-p 选项会在父目录不存在时自动创建它们。
临时的手动挂载通常放在 /mnt 或 /media 下,但你也可以使用任何自己喜欢的目录。
设备挂载后,挂载点目录会显示设备的文件。卸载后,它会恢复为一个空目录。
如何识别设备名称和 UUID
(此部分内容待续)
要挂载设备,必须知道它的 设备名称(例如 /dev/sdb1)。可以使用以下命令进行检查:
lsblk
lsblk 命令列出所有已连接的块设备(硬盘、固态硬盘、USB 驱动器等),包括它们的大小和挂载状态。
如果需要检查 UUID(通用唯一标识符),请使用:
sudo blkid
blkid 命令显示每个设备的 UUID 和文件系统类型(ext4、ntfs、fat32 等)。UUID 在使用 fstab 自动挂载时尤为重要,后面会详细讨论。
使用 umount 卸载设备
要安全地分离已挂载的设备,请使用 umount 命令。
例如,卸载挂载在 /mnt/usb 的设备:
sudo umount /mnt/usb
也可以直接指定设备名称:
sudo umount /dev/sdb1
在未先卸载的情况下物理拔除设备可能导致数据损坏。在断开连接前务必先卸载设备。
3. 开机时自动挂载(fstab)
什么是 /etc/fstab?
如果希望 Ubuntu 在启动时自动挂载设备,需要使用 /etc/fstab 文件。
该文件是一个 系统范围的配置文件,定义了在启动过程中挂载哪些设备。
例如,如果经常使用外部硬盘或额外的分区,并且想避免每次手动挂载,只需在 fstab 中添加相应条目即可实现自动化。
但请注意:错误的条目可能导致系统无法正常启动。
使用 UUID 进行更安全的配置
在 fstab 中可以使用设备名称(如 /dev/sdb1)或 UUID 来指定设备。强烈推荐使用 UUID。
设备名称可能会因连接顺序而变化,而 UUID 则保持不变。
首先,检查 UUID:
sudo blkid
示例输出:
/dev/sdb1: UUID="1234-ABCD" TYPE="vfat"
然后在 /etc/fstab 中添加如下行:
UUID=1234-ABCD /mnt/usb vfat defaults 0 0
各字段的含义如下:
| Field | Description |
|---|---|
| UUID=… | Unique identifier of the target device |
| /mnt/usb | Mount point |
| vfat | File system type |
| defaults | Standard mount options |
| 0 0 | Backup and filesystem check settings |
编辑 fstab 时避免错误的技巧
fstab 中的错误可能导致严重的启动问题。
为降低风险,请遵循以下注意事项:
- 始终创建备份:
sudo cp /etc/fstab /etc/fstab.bak - 确保挂载点已存在:使用
sudo mkdir -p /mnt/usb创建 - 使用以下命令测试配置:
sudo mount -a
该命令尝试挂载 fstab 中定义的所有条目。如果没有错误提示,则配置有效。
4. 如何挂载 USB 闪存驱动器和外部硬盘
FAT32、exFAT 与 NTFS 文件系统的区别
在 Ubuntu 中挂载 USB 闪存驱动器或外部硬盘时,需要检查 文件系统类型。以下三种是最常见的:
| File System | Characteristics | Ubuntu Support |
|---|---|---|
| FAT32 | Readable on almost all operating systems | Supported by default |
| exFAT | Supports large files, high compatibility | Supported by default on Ubuntu 20.04+, older versions require exfat-fuse |
| NTFS | Standard file system on Windows | Read support by default; ntfs-3g recommended for full write support |
要完整支持 NTFS 格式的设备,请安装 ntfs-3g:
sudo apt update
sudo apt install ntfs-3g
检查设备并手动挂载的步骤
连接 USB 设备后,首先使用以下命令检查设备名称:
lsblk
示例输出:
sdb 8:16 1 16G 0 disk
└─sdb1 8:17 1 16G 0 part /mnt/usb
此时,/dev/sdb1 为目标分区。创建挂载点:
sudo mkdir -p /mnt/usb
然后挂载设备:
sudo mount /dev/sdb1 /mnt/usb
设备内容将出现在 /mnt/usb 下,可正常访问。
自动挂载失效时的处理办法
在 GNOME 等桌面环境中,USB 设备通常会自动挂载。但在 服务器环境 或某些特定配置下,自动挂载可能失效。
尝试以下解决方案:
- 使用文件管理器重新连接(桌面环境)
- 使用
udisksctl命令:udisksctl mount -b /dev/sdb1
- 使用
dmesg检查内核信息:dmesg | tail
如果没有出现 “new USB device” 之类的消息,问题可能是电缆或物理连接故障。
安全移除设备 (umount)
在未卸载的情况下拔出 USB 设备可能导致数据损坏。拔出前请务必先卸载:
sudo umount /mnt/usb
如果不知道挂载点,可以直接指定设备:
sudo umount /dev/sdb1
卸载成功后,即可安全移除设备。

5. 挂载网络驱动器 (NAS)
挂载 Windows 共享 (SMB / CIFS)
Ubuntu 可以使用 SMB/CIFS 协议挂载来自 Windows 系统或 NAS 设备的共享文件夹,使其像本地目录一样访问。
首先,安装所需的软件包:
sudo apt update
sudo apt install cifs-utils
创建挂载点:
sudo mkdir -p /mnt/share
然后挂载共享文件夹:
sudo mount -t cifs //192.168.1.100/share /mnt/share -o username=USERNAME,password=PASSWORD,iocharset=utf8
关键点:
//192.168.1.100/share: IP 地址和共享名称/mnt/share: 本地挂载点-o选项:用户名、密码、字符编码iocharset=utf8: 防止日文文件名出现乱码
如果不想在命令行中暴露密码,请参阅下面的安全凭据管理章节。
挂载 NFS 共享
NFS(网络文件系统)非常适合在 Linux 系统之间进行文件共享。
安装所需的客户端软件包:
sudo apt install nfs-common
创建挂载点:
sudo mkdir -p /mnt/nfs
挂载 NFS 共享:
sudo mount -t nfs 192.168.1.200:/export/share /mnt/nfs
根据服务器配置调整路径。
要在启动时自动挂载,请在 /etc/fstab 中添加以下条目:
192.168.1.200:/export/share /mnt/nfs nfs defaults 0 0
安全管理凭据(用户名 / 密码)
直接在挂载命令中包含密码出于安全考虑并不推荐。相反,您可以使用 凭据文件。
- 创建凭据文件(例如):
sudo nano /etc/samba/credentials
文件内容:
username=your_username
password=your_password
- 限制文件权限:
sudo chmod 600 /etc/samba/credentials
- 在
fstab中添加以下条目://192.168.1.100/share /mnt/share cifs credentials=/etc/samba/credentials,iocharset=utf8 0 0
这使得在启动时自动挂载而不暴露密码。
防止日文文件名乱码(区域设置)
如果在挂载 SMB 共享时,日文文件名显示为 “????.txt”,通常是 字符编码 的问题。
确保指定了以下选项:
iocharset=utf8
同时检查系统的区域设置:
locale
如果没有 ja_JP.UTF-8,请安装并启用日文区域设置:
sudo apt install language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8
注销或重启以应用更改。
6. 常见错误与故障排除
当出现 “Target Is Busy” 时
错误信息:
umount: /mnt/usb: target is busy.
当您尝试卸载的设备 正被一个或多个进程使用 时会出现此错误。
常见原因:
- 另一个终端当前
cd到该目录 - 有文件在图形界面应用中打开
- 后台进程正在访问设备上的文件
解决方案:
- 确认使用该挂载点的进程:
lsof /mnt/usb
终止或关闭这些进程
如果问题仍然存在,使用
fuser:sudo fuser -km /mnt/usb
此命令会强制终止使用该挂载点的进程。请谨慎使用。
解决 “Permission Denied” 错误
错误信息:
mount: /mnt/share: permission denied.
此错误表示挂载点或设备权限不足。
解决方案:
- 确保使用
sudo:sudo mount /dev/sdb1 /mnt/usb
- 如有必要,调整挂载点所有权:
sudo chown $USER:$USER /mnt/usb
- 对于 SMB 共享,在服务器上验证凭据和访问权限
自动挂载无效时
即使配置了 fstab,设备也可能在启动时无法自动挂载。
要检查的事项:
- fstab 中的语法错误(间距、文件系统类型)
- 正确的 UUID(使用
sudo blkid验证) - 挂载点存在(使用
mkdir创建) - 网络共享在启动时尚未可用(SMB / NFS)
调试:
sudo mount -a
如果出现错误,请更正相应的 fstab 条目。
使用 dmesg 和 journalctl 检查日志
详细的错误信息通常记录在系统日志中。
dmesg | tail -n 20
对于更详细的日志:
journalctl -xe
这些日志有助于识别硬件问题或无效的挂载选项。
其他常见的挂载相关错误
| Symptom | Cause | Solution |
|---|---|---|
| mount: unknown filesystem type ‘exfat’ | exFAT not supported | sudo apt install exfat-fuse exfat-utils |
| I/O error when mounting SMB | SMB version mismatch | Add vers=1.0 or vers=3.0 to mount options |
| Filenames appear as ???? | Locale / encoding issue | Add iocharset=utf8 or review locale settings |
7. 参考:常见的挂载命令和用法
■ 检查设备
lsblk
显示连接的设备和分区结构。
lsblk
示例:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 16G 0 disk
└─sdb1 8:17 1 16G 0 part /mnt/usb
blkid
显示 UUID 和文件系统类型。
sudo blkid
■ 挂载和卸载
mount
用于挂载存储的基本命令。
sudo mount /dev/sdb1 /mnt/usb
指定文件系统和选项:
sudo mount -t vfat -o uid=1000,gid=1000 /dev/sdb1 /mnt/usb
umount
卸载已挂载的设备。
sudo umount /mnt/usb
或者指定设备:
sudo umount /dev/sdb1
■ 自动挂载
/etc/fstab
用于在系统启动时挂载设备的配置文件。
sudo nano /etc/fstab
示例条目:
UUID=1234-ABCD /mnt/usb vfat defaults 0 0
mount -a
验证并挂载 fstab 中定义的所有条目。
sudo mount -a
■ 故障排除工具
dmesg
检查内核日志中的挂载相关错误。
dmesg | tail -n 20
journalctl
显示详细的系统日志。
journalctl -xe
lsof
识别使用挂载点的进程。
lsof /mnt/usb
fuser
强制终止使用挂载点的进程。
sudo fuser -km /mnt/usb
■ 网络共享
cifs-utils
用于 SMB/CIFS 挂载所需。
sudo apt install cifs-utils
nfs-common
用于 NFS 挂载所需。
sudo apt install nfs-common
udisksctl
在非 GUI 环境中进行简单的挂载/卸载。
udisksctl mount -b /dev/sdb1
udisksctl unmount -b /dev/sdb1
8. 常见问题解答:Ubuntu 中的挂载常见问题
Q1. 为什么我的 USB 设备没有自动挂载?
A. USB 设备通常在桌面环境中自动挂载,但以下情况下自动挂载可能失败:
- 您正在使用 Ubuntu Server 或非 GUI 环境
- 设备未被正确识别(电缆或硬件问题)
- 设备没有文件系统或已损坏
使用 lsblk 或 dmesg 检查设备识别,然后尝试手动挂载。
Q2. 编辑 fstab 后 Ubuntu 无法启动。我该怎么办?
A. 不正确的 fstab 条目可能导致系统停止在维护模式。
恢复步骤:
- 登录维护模式并编辑
fstab:sudo nano /etc/fstab
- 使用
#注释掉不正确的行 - 运行
mount -a以确认无错误 - 重启系统
编辑前始终创建备份:
sudo cp /etc/fstab /etc/fstab.bak
Q3. 如何自动挂载 Windows 共享文件夹?
A. 使用凭据文件向 /etc/fstab 添加条目。
//192.168.1.100/share /mnt/share cifs credentials=/etc/samba/credentials,iocharset=utf8 0 0
使用 sudo mount -a 验证功能是否正常。
Q4. 如何在每次挂载时免输入密码?
A. 对 SMB 挂载使用凭据文件。对于本地存储设备,正确配置 fstab 可消除密码提示。
Q5. 如何列出当前已挂载的设备?
A. 使用以下任意命令:
mount | column -t
或使用更直观的方式查看:
lsblk -f
Q6. 即使关闭应用程序后仍出现 “Target is busy”
A. 查找残留的进程:
lsof /mnt/usb
或强制终止它们:
sudo fuser -km /mnt/usb
然后重新尝试 umount。
9. 总结
在 Ubuntu 中挂载是 有效管理存储设备和网络共享的基础技能。
本文涵盖了从基本概念到高级配置及故障排除的全部内容。
关键要点
- 挂载将设备整合进 Linux 文件系统
- 手动挂载提供灵活性和可控性
fstab实现可靠的自动挂载- USB、外部硬盘和 NAS 需要针对文件系统的处理
- 正确卸载可防止数据损坏
- 故障排除工具帮助高效解决常见问题
掌握后,Ubuntu 的挂载系统将提供 卓越的灵活性和强大功能。
运用本指南中的命令和概念,构建一个稳定高效、符合您需求的存储环境。
这些知识将支持从日常文件管理到服务器运维及 NAS 集成的所有工作,帮助您自信、精准地使用 Ubuntu。



