48.Linux-普通U盘以及多分区U盘自动挂载
在上章学习33.Linux-实现U盘自动挂载(详解)后,只是讲解了普通U盘挂载,并没有涉及到多分区U盘,接下来本章来继续学习
1.多分区U盘和普通U盘区别
- 1)U盘插上只会创建一个/dev/sda文件,这种一般表示该U盘没有分区,这个sda文件便代表该U盘总大小,我们只需要挂载/dev/sda即可
- 2)另一种U盘则会创建/dev/sda以及/dev/sda1文件,这种一般表示该u盘只有一个分区sda1,我们只需要挂载/dev/sda1即可
- 3)最后一种U盘则是多分区情况,会创建/dev/sda,/dev/sda1,/dev/sda2... .../dev/sdaN等,这种表示该U盘有sda1~sdaN多个分区,我们需要挂载/dev/sda1~sdaN才行
2.接下来重新修改/etc/mdev.conf文件
sd[a-z] : * if [ $ACTION = "add" ]; then /etc/hotplug/usb/udisk_insert.sh; else /etc/hotplug/usb/udisk_remove.sh; fi
sd[a-z][-]+ : * if [ $ACTION = "add" ]; then /etc/hotplug/usb/udisk_insert1.sh; else /etc/hotplug/usb/udisk_remove.sh; fi
上面表示:
- 当出现/dev/sda时,则会调用/etc/hotplug/usb/udisk_insert.sh,当移除/dev/sda时,则会调用/etc/hotplug/usb/udisk_remove.sh
- 当出现/dev/sda1~9时,则会调用/etc/hotplug/usb/udisk_insert1.sh,当移除/dev/sda1~9时,则会调用/etc/hotplug/usb/udisk_remove.sh
3.添加/etc/hotplug/usb/udisk_insert.sh文件
#!/bin/sh MOUNT_POINT=/mnt/usbdisk if [ ! -f $MDEV ]; then
if [ ! -d $MOUNT_POINT ]; then #判断挂载目录是否存在
mkdir -p $MOUNT_POINT
fi echo "${MDEV} usb insert"
sleep 0.5 #延时500ms,判断一下是否有sda1,如果没有,则表示没有分区 if [! -e "/dev/sda1"]; then #如果有/dev/sda1,则属于多分区U盘,所以不需要再挂载/dev/sda了
echo " ${MDEV} don't have to create " > /dev/console
exit
fi echo "create usb disk mount point: $MOUNT_POINT." > /dev/console mount -t vfat,exfat,ntfs /dev/$MDEV $MOUNT_POINT
if [ $? -ne ]; then
echo "mount usb disk ${MDEV} falied!" > /dev/console
else
echo "mount usb disk successfully!" > /dev/console
fi
fi
注意: 由于/dev/sda文件最先创建,所以上面需要延时500ms后,判断是否有/dev/sda1,来区别是否是多分区
4.添加/etc/hotplug/usb/udisk_insert1.sh文件
#!/bin/sh POINT_SOURCE=/mnt/usbdisk
num=${MDEV#*sda} #获取sda后缀数字 MOUNT_POINT=${POINT_SOURCE}${num} if [ ! -f $MDEV ]; then
if [ ! -d $MOUNT_POINT ]; then
mkdir -p $MOUNT_POINT
fi echo "${MDEV} usb insert1"
echo "create usb disk mount point: $MOUNT_POINT." > /dev/console mount -t vfat,exfat,ntfs /dev/$MDEV $MOUNT_POINT
if [ $? -ne ]; then
echo "mount usb disk ${MDEV} falied!" > /dev/console else
echo "mount usb disk successfully!" > /dev/console
fi
fi
5.添加/etc/hotplug/usb/udisk_remove.sh文件
#!/bin/sh
POINT_SOURCE=/mnt/usbdisk
num=${MDEV#*sda}
MOUNT_POINT=${POINT_SOURCE}${num} umount $MOUNT_POINT
if [ $? -ne ]; then
echo "umount usb disk falied! ${MDEV} " > /dev/console
else
echo "umount usb disk successfully!" > /dev/console
fi rm -rf $MOUNT_POINT
echo "remove usb disk mount point: $MOUNT_POINT." > /dev/console
48.Linux-普通U盘以及多分区U盘自动挂载的更多相关文章
- Linux添加新硬盘,设置分区和开机自动挂载之图文教程!
虚拟机添加硬盘的步骤就不多废话了,主要列出添加硬盘后要进行设置的几个详细步骤: 1.查看磁盘信息:fdisk -ls 添加前如下图所示: 添加后如下图: 也可以用:ls /dev/sd*查看,如下图: ...
- linux入门系列12--磁盘管理之分区、格式化与挂载
前面系列文章讲解了VI编辑器.常用命令.防火墙及网络服务管理,本篇将讲解磁盘管理相关知识. 本文将会介绍大量的Linux命令,其中有一部分在"linux入门系列5--新手必会的linux命令 ...
- aliyun添加数据盘parted方式分区格式化和lvm挂载及数据盘的扩容
一.普通磁盘分区管理方式 1.对磁盘进行分区 列出磁盘 # fdisk -l # fdisk /dev/vdb Welcome to fdisk (util-linux 2.23.2). Change ...
- CentOS Linux 加硬盘,分区和设置自动挂载
sda 表示第1块SCSI硬盘hda 表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上)scd0 表示第1个USB光驱当添加了新硬盘后,在/dev目录下会有相应的设备文件产生.ccis ...
- Linux运维实战之磁盘分区、格式化及挂载(一)
在网络系统中,磁盘和文件系统管理是两个非常基本.同时也是非常重要的管理任务,特别是文件系统管理,因为它与用户权限和整个网络系统的安全息息相关.本次博文的主题是关于Linux系统中磁盘分区.格式化及挂载 ...
- linux挂载新磁盘、分区和开机自动挂载
今天在阿里云虚拟主机里新加了一块磁盘,需要单独挂载到centos7. 挂载过程中遇到了不少问题,记录如下: 查看分区 fdisk -l 其中第一个框和第二个框,是已经分好区的磁盘,第三个硬盘没有分区. ...
- linux mount / umount 命令的基本用法 及 开机自动挂载
格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a 安装在/etc/fstab文件中类出的所有文件系统. -f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文 ...
- Linux:SAMBA共享、NFS共享、Autofs自动挂载
SAMBA.NFS共享区别 NFS开源文件共享程序:NFS(NetworkFile System)是一个能够将多台Linux的远程主机数据挂载到本地目录的服务,属于轻量级的文件共享服务,不支持Linu ...
- Ubuntu 增加全新硬盘 分区及开机自动挂载
安装新的硬盘后.可以安装Gparted, 或者从live cd启动,然后用Gparted工具对硬盘进行分区.然后进入系统,启动Disks, 找到对应硬盘, 选择Edit Mount Options, ...
随机推荐
- 《OpenCV3编程入门》学习笔记
把第一章的例程看完了,除了基本的操作函数,还了解了跟视频操作有关的函数,发现在自己的中心偏检测中,不仅可以处理图片,还可以对视频进行处理. 问题解决方案 1.0x7547d36f 处有未经处理的异常: ...
- eclipse不支持sun.*包的问题处理
在项目中使用BASE64Decoder,eclipse的编辑器莫名报错, Multiple markers at this line - Access restriction: The type BA ...
- beeline方式连接hive
什么是beeline 常用操作 https://www.cnblogs.com/xinfang520/p/7684598.html
- [转]Virtualization Basics
Virtualization Basics Virtualization is not a new concept, but its complexity has been growing, and ...
- Flutter介绍 - Flutter,H5,React Native之间的对比
Flutter介绍 Flutter是Google推出的开源移动应用开发框架.开发者可以通过开发一套代码同时运行在iOS和Android平台. 它使用Dart语言进行开发,并且最终编译成各个平台的Nat ...
- Open-Source Cybersecurity Infrastructure
https://www.linkedin.com/pulse/open-source-cybersecurity-infrastructure-adrian/ The increased maturi ...
- python 77种常用的基础函数
Python: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,’ ...
- c++模板参数——数值类型推断
模板类中,或模板函数中,若限定模板参数为数值类型,可以使用如下方式进行判断. template<typename T> Fmt::Fmt(const char *fmt, T val) { ...
- django- Vue.js 操作
安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 安装 vue.js cnpm install -g vue- ...
- C# 结合 using 语句块的三种实用方法
一.简介 阅读 Abp 源码的过程中,自己也学习到了一些之前没有接触过的知识.在这里,我在这儿针对研究学习 Abp 框架中,遇到的一些值得分享的知识写几篇文章.如果有什么疑问或者问题,欢迎大家评论指正 ...