学习啦 > 学习电脑 > 操作系统 > Linux教程 >

Linux系统自动挂载u盘方法步骤介绍

时间: 加城1195 分享

学习啦在线学习网   自动挂载命令可以帮我们临时解决一些问题,如服务器没有输出设备,工具等,那么自动挂载命令具体怎么用呢。下面由学习啦小编为大家整理了Linux系统自动挂载U盘的命令详解,希望对大家有帮助!

  Linux系统自动挂载u盘的命令详解

学习啦在线学习网   格式:mount [-参数] [设备名称] [挂载点]

  其中常用的参数有:

学习啦在线学习网   -a 安装在/etc/fstab文件中类出的所有文件系统。

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

学习啦在线学习网   -n 不把安装记录在/etc/mtab 文件中。

学习啦在线学习网   -r 讲文件系统安装为只读。

  -v 详细显示安装信息。

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

学习啦在线学习网   -t <文件系统类型> 指定设备的文件系统类型,常见的有:

  ext2 是linux目前常用的文件系统

  msdos MS-DOS的fat,就是fat16

  vfat windows98常用的fat32

学习啦在线学习网   nfs 网络文件系统

  iso9660 CD-ROM光盘标准文件系统

学习啦在线学习网   ntfs windows NT/2000/XP的文件系统

  auto 自动检测文件系统

  -o <选项> 指定挂载文件系统时的选项,有些也可写到在 /etc/fstab 中。常用的有:

学习啦在线学习网   defaults 使用所有选项的默认值(auto、nouser、rw、suid)

  auto/noauto 允许/不允许以 –a选项进行安装

学习啦在线学习网   dev/nodev 对/不对文件系统上的特殊设备进行解释

学习啦在线学习网   exec/noexec 允许/不允许执行二进制代码

  suid/nosuid 确认/不确认suid和sgid位

  user/nouser 允许/不允许一般用户挂载

学习啦在线学习网   codepage=XXX 代码页

  iocharset=XXX 字符集

  ro 以只读方式挂载

学习啦在线学习网   rw 以读写方式挂载

学习啦在线学习网   remount 重新安装已经安装了的文件系统

  loop 挂载“回旋设备”以及“ISO镜像文件”

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

学习啦在线学习网   # mount –o remount,rw /

  Linux系统自动挂载u盘的方法步骤

  规则编写

  编写udev规则实现U盘插入时候的动作。规则文件写在/etc/udev/rules.d 下。

学习啦在线学习网   如上, 通过规则定义U盘插入与拔出的动作即可,动作的具体实现可以在规则中编写,也可以通过指定执行脚本来实现。本文的规则中仅指定执行脚本。

  规则如下:

学习啦在线学习网   ENV{DEVTYPE}="partition",RUN+="/lib/udev/automount.sh",ENV{REMOVE_CMD}="/lib/udev/autounmount.sh"11

  脚本编写

学习啦在线学习网   将脚本文件写在/lib/udev 下,根据上文规则,应该分别实现插入的动作脚本和拔出的动作脚本。

  插入动作脚本

  主要在于需要获取到设备的卷标,来确定挂载的路径(即$ID_FS_LABEL)

学习啦在线学习网   #!/bin/sh

学习啦在线学习网   mount_point=$ID_FS_LABEL

  if [ -z $mount_point ];then

  mount_point=${DEVNAME##*/}

  fi

  if [ -n $mount_point ];then

  mkdir -p /media/$mount_point

学习啦在线学习网   mount -t $ID_FS_TYPE -o gid=100,dmask=000,fmask=111,utf8,flush,rw,noatime,users $DEVNAME /media/$mount_point

  fi

学习啦在线学习网   1234567891012345678910

  拔出动作脚本

学习啦在线学习网   在U盘拔出时候,及时删掉挂载的路径

学习啦在线学习网   mount_point=$ID_FS_LABEL

  if [ -z $mount_point ];then

  mount_point=${DEVNAME##*/}

  fi

学习啦在线学习网   if [ -n $mount_point ];then

  umount -l /media/$mount_point

学习啦在线学习网   rm -r /media/$mount_point

  fi1234567812345678

  自动执行动作脚本

学习啦在线学习网   这样,当U盘插入时,/media/ 下就会出现于卷标相同的文件夹,并挂载上了U盘。因此,需要实现U盘插入自动执行的话,通过轮询探测/media/ 下相应目录是否存在即可。

  如:

  UDISK=$1

  # ---------------main control area ---------------

  while (true)

  do

  # probe mounted disk

  if [ -e "$UDISK" ];then

  echo "Mounted device [$UDISK] found !"

  else

学习啦在线学习网   echo "Device not found [$UDISK] !"

  fi

  echo "Sleep for sometime..."

  sleep 3s

  done

学习啦在线学习网   1234567891011121314151612345678910111213141516

学习啦在线学习网   补充:需要注意的问题

学习啦在线学习网   新版本的udev可能会遇到mount失效的问题,通过查询资料可知,udev的rules运行于独立的文件空间上,与用户的文件空间不同,因此及时挂载上了,用户也无法访问。因此需要将udev的运行方式改为共享。

  修改方式如下:

  拷贝一份 /usr/lib/systemd/system/systemd-udevd.service 到 /etc/systemd/system/ (推荐)

学习啦在线学习网   编辑/etc/systemd/system/ 将 MountFlags 改为 shared

  重启即可。

3973523