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

有时候服务器可能没有必要的键盘等设备,此时就需要用到自动挂载命令了。下面由学习啦小编为大家整理了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

重启即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值