Linux常用命令学习笔记:mount

1. 命令概述

  • 命令名称mount(英文全拼:mount)
  • 核心功能挂载文件系统
  • 主要用途:将设备(如硬盘分区、光盘、U盘等)挂载到指定目录,使其可访问
  • 特点:支持多种文件系统类型,可设置挂载选项

2. 语法格式

mount [选项] [设备名] [挂载点]
mount [选项] [挂载点]
mount [选项] [设备名]

3. 常用选项

选项说明
-t指定文件系统类型
-o指定挂载选项
-a挂载所有在 /etc/fstab 中定义的文件系统
-l显示已挂载的文件系统
-r以只读方式挂载
-w以读写方式挂载(默认)
-v显示详细信息
-n不将挂载信息写入 /etc/mtab
-f模拟挂载,不实际执行
--help显示帮助信息
--version显示版本信息

4. 基本操作

(1) 基本挂载操作

# 挂载设备到指定目录
mount /dev/sdb1 /mnt

# 指定文件系统类型挂载
mount -t ext4 /dev/sdb1 /mnt

# 以只读方式挂载
mount -r /dev/sdb1 /mnt

# 以读写方式挂载
mount -w /dev/sdb1 /mnt

# 显示详细信息挂载
mount -v /dev/sdb1 /mnt

(2) 挂载选项设置

# 设置挂载选项
mount -o ro /dev/sdb1 /mnt
mount -o rw /dev/sdb1 /mnt
mount -o noexec /dev/sdb1 /mnt
mount -o nosuid /dev/sdb1 /mnt
mount -o nodev /dev/sdb1 /mnt
mount -o remount /dev/sdb1 /mnt

# 设置多个挂载选项
mount -o ro,noexec,nosuid /dev/sdb1 /mnt
mount -o rw,exec,suid /dev/sdb1 /mnt
mount -o defaults /dev/sdb1 /mnt

(3) 查看挂载信息

# 查看所有已挂载的文件系统
mount

# 查看指定设备的挂载信息
mount | grep /dev/sdb1

# 查看指定挂载点的挂载信息
mount | grep /mnt

# 查看指定文件系统类型的挂载信息
mount -t ext4

# 查看指定挂载选项的挂载信息
mount -o ro

(4) 卸载文件系统

# 卸载指定挂载点
umount /mnt

# 卸载指定设备
umount /dev/sdb1

# 强制卸载
umount -f /mnt

# 懒卸载(延迟卸载)
umount -l /mnt

# 显示详细信息卸载
umount -v /mnt

5. 常用实例详解

(1) 基本挂载示例

# 挂载U盘(通常为/dev/sdb1)
mount /dev/sdb1 /mnt

# 挂载光盘(通常为/dev/cdrom)
mount /dev/cdrom /mnt/cdrom

# 挂载ISO镜像文件
mount -o loop /path/to/image.iso /mnt/iso

# 挂载网络文件系统(NFS)
mount -t nfs 192.168.1.100:/share /mnt/nfs

# 挂载Windows共享(CIFS/SMB)
mount -t cifs //192.168.1.100/share /mnt/smb -o username=user,password=pass

# 挂载内存文件系统(tmpfs)
mount -t tmpfs tmpfs /mnt/tmp

(2) 挂载选项示例

# 以只读方式挂载
mount -o ro /dev/sdb1 /mnt

# 以读写方式挂载
mount -o rw /dev/sdb1 /mnt

# 禁止执行二进制文件
mount -o noexec /dev/sdb1 /mnt

# 禁止设置SUID位
mount -o nosuid /dev/sdb1 /mnt

# 禁止创建设备文件
mount -o nodev /dev/sdb1 /mnt

# 重新挂载(修改挂载选项)
mount -o remount,ro /dev/sdb1 /mnt
mount -o remount,rw /dev/sdb1 /mnt
mount -o remount,noexec /dev/sdb1 /mnt

# 设置多个挂载选项
mount -o ro,noexec,nosuid,nodev /dev/sdb1 /mnt
mount -o rw,exec,suid,dev /dev/sdb1 /mnt
mount -o defaults /dev/sdb1 /mnt

(3) 查看挂载信息示例

# 查看所有已挂载的文件系统
mount
# 输出:
# /dev/sda1 on / type ext4 (rw,relatime)
# /dev/sdb1 on /mnt type ext4 (rw,relatime)
# /dev/cdrom on /mnt/cdrom type iso9660 (ro,relatime)

# 查看指定设备的挂载信息
mount | grep /dev/sdb1
# 输出:/dev/sdb1 on /mnt type ext4 (rw,relatime)

# 查看指定挂载点的挂载信息
mount | grep /mnt
# 输出:/dev/sdb1 on /mnt type ext4 (rw,relatime)

# 查看指定文件系统类型的挂载信息
mount -t ext4
# 输出:
# /dev/sda1 on / type ext4 (rw,relatime)
# /dev/sdb1 on /mnt type ext4 (rw,relatime)

# 查看指定挂载选项的挂载信息
mount -o ro
# 输出:/dev/cdrom on /mnt/cdrom type iso9660 (ro,relatime)

(4) 卸载示例

# 卸载指定挂载点
umount /mnt

# 卸载指定设备
umount /dev/sdb1

# 强制卸载(当设备忙时)
umount -f /mnt

# 懒卸载(延迟卸载,当设备忙时)
umount -l /mnt

# 显示详细信息卸载
umount -v /mnt
# 输出:/mnt unmounted

# 卸载所有挂载点(危险操作)
umount -a

6. 实际应用场景

场景一:U盘和移动硬盘挂载

# 查看可用设备
fdisk -l

# 创建挂载点
mkdir /mnt/usb

# 挂载U盘
mount /dev/sdb1 /mnt/usb

# 访问U盘内容
cd /mnt/usb
ls -l

# 卸载U盘
umount /mnt/usb

# 安全移除U盘
eject /dev/sdb1

场景二:光盘挂载

# 创建挂载点
mkdir /mnt/cdrom

# 挂载光盘
mount /dev/cdrom /mnt/cdrom

# 访问光盘内容
cd /mnt/cdrom
ls -l

# 卸载光盘
umount /mnt/cdrom

# 弹出光盘
eject /dev/cdrom

场景三:ISO镜像挂载

# 创建挂载点
mkdir /mnt/iso

# 挂载ISO镜像
mount -o loop /path/to/image.iso /mnt/iso

# 访问ISO内容
cd /mnt/iso
ls -l

# 卸载ISO镜像
umount /mnt/iso

场景四:网络文件系统挂载

# 创建挂载点
mkdir /mnt/nfs

# 挂载NFS共享
mount -t nfs 192.168.1.100:/share /mnt/nfs

# 访问NFS共享
cd /mnt/nfs
ls -l

# 卸载NFS共享
umount /mnt/nfs

# 挂载Windows共享
mkdir /mnt/smb
mount -t cifs //192.168.1.100/share /mnt/smb -o username=user,password=pass

# 访问Windows共享
cd /mnt/smb
ls -l

# 卸载Windows共享
umount /mnt/smb

场景五:临时文件系统挂载

# 创建挂载点
mkdir /mnt/tmp

# 挂载tmpfs(内存文件系统)
mount -t tmpfs tmpfs /mnt/tmp

# 访问tmpfs
cd /mnt/tmp
ls -l

# 在tmpfs中创建文件
touch test.txt
echo "Hello World" > test.txt

# 查看文件
cat test.txt

# 卸载tmpfs
umount /mnt/tmp

7. 与其他命令的区别

命令特点适用场景
mount挂载文件系统将设备挂载到目录
umount卸载文件系统卸载已挂载的设备
fdisk磁盘分区管理创建、删除、修改分区
df显示磁盘空间使用情况查看文件系统使用情况
lsblk列出块设备信息查看块设备信息
blkid显示块设备属性查看块设备UUID和类型

8. 注意事项

  1. 权限问题:普通用户需要sudo权限才能挂载设备
  2. 挂载点存在:挂载点必须是一个已存在的空目录
  3. 设备忙:卸载设备时,如果设备正在使用,需要先停止使用
  4. 文件系统类型:需要指定正确的文件系统类型
  5. 挂载选项:根据需求设置合适的挂载选项

9. 常见问题解决

(1) 权限不足

# 错误:权限不足
mount /dev/sdb1 /mnt  # 报错:Permission denied

# 正确:使用sudo
sudo mount /dev/sdb1 /mnt

# 正确:修改fstab文件,添加user选项
# 在/etc/fstab中添加:
# /dev/sdb1 /mnt ext4 defaults,user 0 0

# 正确:使用mount命令的user选项
sudo mount -o user /dev/sdb1 /mnt

(2) 挂载点不存在

# 错误:挂载点不存在
mount /dev/sdb1 /nonexistent  # 报错:No such file or directory

# 正确:创建挂载点
sudo mkdir /mnt
sudo mount /dev/sdb1 /mnt

# 正确:使用存在的目录
sudo mount /dev/sdb1 /media

# 正确:使用用户主目录
mkdir ~/mnt
sudo mount /dev/sdb1 ~/mnt

(3) 设备不存在

# 错误:设备不存在
mount /dev/nonexistent /mnt  # 报错:No such file or directory

# 正确:查看可用设备
fdisk -l
lsblk

# 正确:使用正确的设备名
sudo mount /dev/sdb1 /mnt

# 正确:使用设备UUID
sudo mount UUID=xxxx-xxxx /mnt

# 正确:使用设备标签
sudo mount LABEL=MYDISK /mnt

(4) 文件系统类型错误

# 错误:文件系统类型错误
mount -t ext4 /dev/sdb1 /mnt  # 报错:Wrong fs type

# 正确:查看文件系统类型
sudo blkid /dev/sdb1

# 正确:使用正确的文件系统类型
sudo mount -t ntfs /dev/sdb1 /mnt

# 正确:自动检测文件系统类型
sudo mount /dev/sdb1 /mnt

# 正确:安装文件系统支持包
sudo apt-get install ntfs-3g  # 对于NTFS文件系统

(5) 设备忙

# 错误:设备忙
umount /mnt  # 报错:Device is busy

# 正确:查看哪个进程在使用设备
lsof /mnt
fuser -m /mnt

# 正确:终止使用设备的进程
fuser -k /mnt

# 正确:强制卸载
sudo umount -f /mnt

# 正确:懒卸载
sudo umount -l /mnt

# 正确:切换到其他目录后卸载
cd /
sudo umount /mnt

核心要点总结

  • mount是挂载文件系统的命令,用于将设备挂载到指定目录
  • 常用选项-t(指定文件系统类型)、-o(指定挂载选项)、-a(挂载所有文件系统)、-l(显示已挂载的文件系统)
  • 实际应用:U盘和移动硬盘挂载、光盘挂载、ISO镜像挂载、网络文件系统挂载、临时文件系统挂载
  • 注意事项:需要root权限,挂载点必须存在且为空,设备忙时需要先停止使用

mount命令是Linux系统文件系统管理的基础工具,熟练掌握可以大大提高系统管理效率。


作 者:南烛
链 接:https://www.itnotes.top/archives/483
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇