笔者在工作中遇到自动挂载U盘,于是在树莓派和红帽系统上研究了一下U盘实现自动挂载。总的来说,Linux gnome/kde窗口环境下有移动存储的管理程序,可以实现自动挂载移动存储设备,但是在命令行下 通常需要用mount命令手动挂载USB存储设备。第二种方法有风险,第三种是设备管理服务udev添加规则实现自动mount,第四种方法则进一步封装mount添加日志功能。
创新互联建站是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:成都网站设计、网站制作、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。
Raspberry Pi中USB设备的自动挂载由基于LXDE的GUI / DE处理,具体来说,由文件管理器PCManFM控制。若要禁用此行为,请打开“文件管理器”,然后从“编辑”菜单中选择“首选项”。选择“卷管理”选项卡,取消选中第二个选项“挂载可移动介质...” ,可以禁用第三个选项“显示可用选项...”设置,以防止弹出窗口提示可用程序。
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。使用检查UUID: sudo blkid,显示关于可用块设备的信息, 查找您的设备(如 / dev / sda1 )并复制其UUID。此方法只限于开机时已经插入U盘了,开机后再插入就不发自动挂载,需要执行sudo mount -a命令。
在文件/ etc / fstab底部添加:UUID={YOUR-UID} {/path/to/mount/point} {file-system-type} defaults,errors=remount-ro 0 1
倒数第二是dump备份设置,当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作。倒数第一是fsck磁盘检查设置,其值是一个顺序,当其值为0时,永远不检查;而 / 根目录分区永远都为1,其它分区从2开始,数字越小越先检查。
修改后保存,关闭,重新启动设备以检查或键入: sudo mount -a 。mount -a 是自动挂载 /etc/fstab 里面的东西,会忽略所有已经完成的操作。但是笔者认为在这里面添加太过于危险,不要轻易操作这个文件,有可能造成系统无法开机。外部设备在插入时挂载,在未插入时忽略,不然无法进入系统,这需要添加 nofail 选项,但是操作这个文件不太方便,有其他刚好的方法。
文件种有两种ACTION,add和remove。在U盘插入或者拔出时,自动激活mount和unmount,完成设备自动挂载。
KERNEL!="sd*", GOTO="media_by_label_auto_mount_end"
SUBSYSTEM!="block",GOTO="media_by_label_auto_mount_end"
IMPORT{program}="/sbin/blkid -o udev -p %N"
ENV{ID_FS_TYPE}=="", GOTO="media_by_label_auto_mount_end"
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="Untitled-%k"
ACTION=="add", ENV{mount_options}="relatime,sync"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="iocharset=utf8,umask=000"
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="iocharset=utf8,umask=000"
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}"
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}"
LABEL="media_by_label_auto_mount_end"
第三种方法中,mount或者unmount命令在实际运用中是无法记录日志的。在生产系统中就需要添加这个插入U盘和拔出U盘的动作,作为审核调查依据。将上面的mount -o或者unmount -l替换成usbhotplug.sh mount 和usbhotplug.sh unmount。
#!/usr/bin/bash
time=`date "+%Y%m%d"`
LOG_FILE="/home/pi/mount-usb-$time.log"
date=`date`
echo $date $LOG_FILE
CMD=$1
case $CMD in
'mount')
/bin/mkdir -p $4
echo "/bin/mkdir -p $4" $LOG_FILE
sleep 2
/bin/mount -o $2 $3 $4
echo "/bin/mount -o $2 $3 $4" $LOG_FILE
sync
echo "----------" $LOG_FILE
;;
'umount')
sync
/bin/umount -f $2
echo "/bin/umount $2" $LOG_FILE
sleep 2
/bin/rmdir $2
echo "/bin/rmdir $2" $LOG_FILE
echo "----------" $LOG_FILE
;;
esac
在linux当中所有的存储设备如u盘、光盘、硬盘等,都必须挂载之后才能正常使用。
其实挂载可以理解为windows当中的分配盘符,只不过windows当中是以英文字母ABCD等作为盘符,而linux是拿系统目录作为盘符,当然linux当中也不叫盘符,而是称为挂载点,而把为分区或者光盘等存储设备分配一个挂载点的过程称为挂载。
在安装linux系统时设立的各个分区,如根分区、/boot分区等都是自动挂载的,也就是说不需要我们人为操作,开机就会自动挂载。但是光盘、u盘等存储设备如果需要使用,就必须人为的进行挂载。其实我们在windows下插入U盘也是需要挂载(分配盘符)的,只不过windows下分配盘符是自动的。
mount #查询系统中已经挂载的设备
mount -a #依据配置文件/etc/fstab的内容,进行自动挂载
了解即可,不熟悉建议不要随意修改,使用默认值。
演示 exec 选项的作用,重新挂载 /home 分区,并设置不允许执行可执行文件
使用完光盘等存储设备后必须卸载,执行卸载命令时必须保证不在设备挂载的目录下,否则会提示设备正在使用。
umount 设备文件名或挂载点 #卸载命令
umount /mnt/cdrom #卸载光盘
因为u盘在linux中被当成硬盘看待,一般来说插入u盘后它的设备文件名应该是sdb1,但是这个也不是一定的,有可能系统不止一块硬盘,所以最好使用命令查看以下。
注意:linux默认是不支持NTFS文件系统的,vfat(相当于windows下的fat32),如果想要支持可以安装 ntfs -3g 这个软件。挂载U盘了解即可,实际很少使用。
在真实机中插入U盘后,可以在虚拟机 --可移动设备 --选择u盘 --连接
linux 重新挂载需要先卸载再重新挂载,如果要一条命令可以通过符号将两个命令组合到一个命令里,例如:
umount -l /mnt/test mount -o ro /dev/hda1 /mnt/test
linux中挂载命令是mount,卸载是umount,在命令行中使用可以将多条命令组合成一条命令并顺序执行,以达到快速执行的目的。
扩展资料
linux挂载命令mount的用法介绍:
1、语法
mount [-fnrsvw] [-t vfstype] [-o options] device dir
2、参数说明:
-V:显示程序版本
-h:显示辅助讯息
-v:显示较讯息,通常和 -f 用来除错。
-a:将 /etc/fstab 中定义的所有档案系统挂上。
-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。
-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。
-n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。
linux自动挂载u盘,原因是你把自动挂载写入了配置文件。
打开/etc找到里面的fstab文件进行编辑,如果你是以管理员身份登入的话,可以直接右键--打开方式--gedit,可以直接找到自动挂载u盘的代码,删除即可:
/dev/sad1 /mnt/usb vfat codepage=936,iocharset=cp936,defaults,umask=0 0 0
例如上面这个sad1是u盘的情况下,把这句删掉,然后linux就不会自动挂载u盘了。
; 挂载命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据。常用的命令有7种,下面是具体介绍:
1、-t指定挂载类型。
2、-l显示已加载的文件系统列表。
3、-h显示帮助信息并退出。
4、-V显示程序版本。
5、-n加载没有写入文件“/etc/mtab”中的文件系统。
6、-r将文件系统加载为只读模式。
7、-a加载文件“/etc/fstab”中描述的所有文件系统。
今天的分享就是这些,希望能帮助大家。
本文章基于thinkpadE15品牌、centos7系统撰写的。