菜鸟科技网

mount命令如何正确使用挂载点与设备?

mount 命令用于将文件系统(如硬盘分区、U盘、光盘、网络共享等)附加到 Linux 目录树的一个指定节点(即“挂载点”)上,挂载之后,你就可以通过访问该目录来使用文件系统中的数据。

mount命令如何正确使用挂载点与设备?-图1
(图片来源网络,侵删)

基本语法

mount [选项] [设备名] [挂载点]
  • 选项: 控制挂载行为的各种参数。
  • 设备名: 指定要挂载的设备或文件系统,可以是设备路径(如 /dev/sdb1)、卷标(如 LABEL=MY_DATA)或 UUID(如 UUID=a1b2c3d4-e5f6-...)。
  • 挂载点: 指定 Linux 目录树中的一个空目录,挂载成功后,对该目录的访问就是对设备文件系统的访问。

查看挂载信息

在挂载之前或之后,了解当前的挂载状态非常有用。

使用 mount 命令

直接输入 mount 命令会列出当前系统中所有已挂载的文件系统。

mount

输出示例:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=8155480k,nr_inodes=2038870,mode=755)
...
/dev/sda1 on / type ext4 (rw,relatime)
/dev/sdb1 on /mnt/data type ext4 (rw,nosuid,nodev,relatime)

每一列的含义:

mount命令如何正确使用挂载点与设备?-图2
(图片来源网络,侵删)
  • 设备名: 如 /dev/sda1, /dev/sdb1
  • 挂载点: 如 , /mnt/data
  • 文件系统类型: 如 ext4, sysfs, proc
  • 挂载选项: 如 (rw,relatime),表示可读写,相对时间访问。

使用 /proc/mounts 文件

mount 命令显示的信息其实来自 /proc/mounts 文件,你也可以直接查看这个文件,内容与 mount 命令的输出几乎一样。

cat /proc/mounts

使用 df 命令

df (disk free) 命令以更易读的方式显示每个挂载点的磁盘使用情况。

df -h

-h 选项表示 "human-readable"(人类可读),会使用 K, M, G 等单位。

输出示例:

mount命令如何正确使用挂载点与设备?-图3
(图片来源网络,侵删)
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.9G     0  7.9G   0% /dev/shm
...
/dev/sda1        50G   20G   28G  42% /
/dev/sdb1       500G   80G  395G  17% /mnt/data

常用挂载命令示例

挂载本地硬盘分区(最常用)

假设你有一个新的硬盘 /dev/sdb1,文件系统类型是 ext4,你想把它挂载到 /mnt/data 目录下。

步骤 1:创建挂载点 挂载点必须是一个已存在的空目录。

sudo mkdir -p /mnt/data

步骤 2:执行挂载

sudo mount /dev/sdb1 /mnt/data

挂载 U 盘或移动硬盘

当你插入 U 盘后,系统通常会自动挂载,你可以使用 dmesg | taillsblk 命令来查看新识别的设备名称,/dev/sdc1

假设 U 盘是 FAT32 格式,设备名为 /dev/sdc1

# 创建挂载点
sudo mkdir -p /media/usb
# 挂载 FAT32 文件系统
sudo mount -t vfat /dev/sdc1 /media/usb

-t vfat 指定了文件系统类型为 vfat(即 FAT32)。

挂载 ISO 镜像文件

有时你需要挂载一个 .iso 文件来访问其内容,例如安装软件。

假设你有一个 CentOS-7.iso 文件在 /home/user/Downloads 目录下。

# 创建挂载点
sudo mkdir -p /mnt/iso
# 挂载 ISO 文件(使用 loop 设备)
sudo mount -o loop /home/user/Downloads/CentOS-7.iso /mnt/iso

-o loop 选项告诉 mount 命令将一个普通文件当作一个块设备来处理。

挂载网络文件系统

挂载 NFS (Network File System): 假设有一台 NFS 服务器 168.1.100,其共享目录为 /home/share

# 首先需要安装 nfs-utils 包 (CentOS/RHEL) 或 nfs-common (Debian/Ubuntu)
# sudo yum install nfs-utils  (CentOS/RHEL)
# sudo apt-get install nfs-common (Debian/Ubuntu)
# 创建本地挂载点
sudo mkdir -p /mnt/nfs_share
# 挂载
sudo mount 192.168.1.100:/home/share /mnt/nfs_share

挂载 CIFS (Common Internet File System, 也叫 SMB): 假设有一台 Windows 共享,路径为 \\192.168.1.200\public,用户名是 user,密码是 password

# 首先需要安装 cifs-utils 包
# sudo yum install cifs-utils  (CentOS/RHEL)
# sudo apt-get install cifs-utils (Debian/Ubuntu)
# 创建本地挂载点
sudo mkdir -p /mnt/s_share
# 挂载
sudo mount -t cifs //192.168.1.200/public /mnt/s_share -o username=user,password=password

常用挂载选项

通过 -o 选项可以指定多个参数,用逗号隔开。

选项 全称 描述
ro read-only 以只读方式挂载。
rw read-write 以读写方式挂载(默认)。
defaults - 使用默认选项(rw, suid, dev, exec, auto, nouser, async)。
noexec - 禁止在文件系统中执行二进制文件。
exec - 允许执行二进制文件(默认)。
nosuid - 禁止 set-user-identifierset-group-identifier 位生效。
suid - 允许 suid 位生效(默认)。
nodev - 不解释设备文件。
dev - 解释设备文件(默认)。
auto - 可以用 mount -a 命令自动挂载(默认)。
noauto - 不能用 mount -a 命令自动挂载,只能手动挂载。
user - 允许普通用户挂载设备,卸载时也必须是该用户或 root。
nouser - 只有 root 用户可以挂载(默认)。
async - 异步写入数据,性能高但可能数据丢失(默认)。
sync - 同步写入数据,确保数据安全,但性能较低。

示例: 以只读方式挂载 U 盘:

sudo mount -o ro /dev/sdc1 /media/usb

卸载文件系统

使用 umount 命令来卸载一个文件系统,注意是 umount,而不是 unmount

umount [挂载点或设备名]

示例:

# 方法1:使用挂载点
sudo umount /mnt/data
# 方法2:使用设备名
sudo umount /dev/sdb1

常见错误: 如果设备正在被使用(比如有程序打开了该目录下的文件,或者你当前就在该目录下),umount 会失败并提示 device is busy。 解决方法:

  1. 离开挂载点所在的目录(cd /)。
  2. 结束占用该设备的进程(可以使用 lsof | grep /mnt/data 查找进程,然后用 kill 命令结束)。
  3. 使用强制卸载(不推荐,可能导致数据损坏):
    sudo umount -l /mnt/data  # (lazy unmount)

开机自动挂载 (/etc/fstab)

为了每次开机都能自动挂载设备,需要编辑 /etc/fstab (file system table) 文件。

文件格式:

# <设备>         <挂载点>   <文件系统类型>   <挂载选项>   <dump>   <fsck>
UUID=a1b2c3d4... /mnt/data   ext4            defaults    0        2
  • 设备: 推荐使用 UUIDLABEL,因为设备名(如 /dev/sdb1)可能会变。
    • 查找 UUID: sudo blkid /dev/sdb1
    • 查找 LABEL: sudo blkid /dev/sdb1
  • 挂载点: 设备挂载到的目录。
  • 文件系统类型: 如 ext4, vfat, ntfs, nfs 等。
  • 挂载选项: 可以是 defaults,也可以是具体的选项,如 rw,relatime
  • dump: dump 备份工具的开关。0 表示不备份,1 表示每天备份,通常设置为 0
  • fsck: 系统启动时用 fsck 检查文件系统的顺序。0 表示不检查,1 表示是根文件系统,2 表示其他需要检查的分区,通常根分区设为 1,其他设为 20

编辑 /etc/fstab 示例:

# 获取你的设备信息
sudo blkid /dev/sdb1
# 输出可能是: /dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4"
# 用文本编辑器打开 /etc/fstab
sudo nano /etc/fstab
# 在文件末尾添加下面一行
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/data ext4 defaults 0 2

保存后,可以测试 fstab 是否正确:

sudo mount -a

如果此命令没有报错,说明 fstab 语法正确,重启后,设备也会自动挂载,如果报错,请检查 /etc/fstab 文件的语法。

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