mount 命令(二) —— mount 命令介绍

本文最后更新于:2022年1月15日 下午

磁盘挂载可以有效解决数据同步与磁盘空间浪费的问题,而且支持不同操作系统之间挂载操作,核心命令为mount,本文介绍该命令。

挂载

权限

使用 mount 命令需要 root 权限,没有root权限的用户或没有使用 --privileged=true 创建的 docker 容器内无法使用 mount 命令挂载磁盘

使用

挂载常用的命令为mount,其命令格式为:

1
mount [args] device dir

args表示配置参数,其中最常用的为 -t-o参数:

-t

指定文件系统的类型,通常不必指定,mount 会自动选择正确的类型,常用类型有:

iso9660: 光盘或光盘镜像
msdos: DOS fat16文件系统
vfat: Windows 9x fat32文件系统
ntfs: Windows NT ntfs文件系统
smbfs: Mount Windows文件网络共享
nfs: UNIX(LINUX) 文件网络共享
ext2: linux目前常用的文件系统
auto: 自动检测文件系统
cifs: 通用Internet文件系统,广泛用于Windows系统文件交互

-o

主要用来描述设备或档案的挂接方式,常用的参数有:

defaults: 使用所有选项的默认值(autonouserrwsuid
auto/noauto: 允许/不允许以 –a选项进行安装
dev/nodev: 对/不对文件系统上的特殊设备进行解释
exec/noexec: 允许/不允许执行二进制代码
suid/nosuid: 确认/不确认suid和sgid位
user /nouser: 允许/不允许一般用户挂载
codepage=XXX: 代码页
remount: 重新安装已经安装了的文件系统
loop: 用来把一个文件当成硬盘分区挂接上系统
ro: 采用只读方式挂接设备
rw: 采用读写方式挂接设备
iocharset: 指定访问文件系统所用字符集

此外mount命令还有其他可选参数:

-a

安装在/etc/fstab文件中类出的所有文件系统。

-f

伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。

-n

不把安装记录在/etc/mtab 文件中。

-r

讲文件系统安装为只读。

-v

详细显示安装信息。

-w

将文件系统安装为可写,为命令默认情况。

  • 需要注意的是,挂载点必须是一个已经存在的目录,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。使用多个-o参数的时候,-o 只用一次,参数之间用半角逗号隔开。
  • 经常需要root权限才能执行该命令

其余的参数为需要挂载的设备和挂载点

device

要挂接(mount)的设备。

dir

设备在系统上的挂接点(mount point)。

示例

假设我们需要将一个镜像文件(*.iso)挂载到某个目录,需要执行以下操作:

1
2
$mkdir mnt 
$mount -o loop -t iso9660 my.iso ~/mnt

查看挂载情况

1
$df -h

查看某主机提供的nfs服务

1
$showmount  -e 192.168.1.1(ip)

1
$nc  -v -w 2  192.168.1.2 -z 2049

卸载

卸载使用umount命令

1
2
3
$umount dir
$umount device
$umount device dir

以上三个命令都可以。

常见问题

  • 在挂载点mnt路径下卸载会失败,提示Dev is busy

    • 解决方案:

      退出挂载点进行卸载操作

  • 其他程序访问挂载文件也会提示卸载失败

    • 解决方案:

      1. lsof mnt 查看是哪个进程占用了 mnt

      2. kill -9 $pid

      3. 重试卸载

  • 有没有‘咔嚓’卸载掉的方法

    • 解决方案:

      umount -l mnt

      其中 -l 的作用是卸载前检查占用该挂载文件的程序并迅速kill掉,以达到快速卸载的目的

  • Win 中如何挂载

    • 解决方案:

      可以在资源管理器-主页-轻松访问-映射为驱动器中挂载

      地址格式: \\192.168.1.2\disk\balabala

      也可以在cmd中使用mount命令

      mount \\192.168.1.2\disk\balabala V:\