ubuntu实现自动挂载u盘

news/2024/11/28 4:28:48/

ubuntu实现自动挂载u盘

但是,有些设施可以在没有图形工具的情况下进行复制,并且在系统上占用的空间非常小。
例如,在我的设置中,我已经实现了USB自动挂载服务,而无需使用任何外部工具/服务,只有udev和systemd。

编写shell脚本

nano /usr/local/bin/usb-mount.sh
#!/bin/bashACTION=$1
DEVBASE=$2
DEVICE="/dev/${DEVBASE}"# See if this drive is already mounted
MOUNT_POINT=$(/bin/mount | /bin/grep ${DEVICE} | /usr/bin/awk '{ print $3 }')do_mount()
{if [[ -n ${MOUNT_POINT} ]]; then# Already mounted, exitexit 1fi# Get info for this drive: $ID_FS_LABEL, $ID_FS_UUID, and $ID_FS_TYPEeval $(/sbin/blkid -o udev ${DEVICE})# Figure out a mount point to useLABEL=${ID_FS_LABEL}if [[ -z "${LABEL}" ]]; thenLABEL=${DEVBASE}elif /bin/grep -q " /media/${LABEL} " /etc/mtab; then# Already in use, make a unique oneLABEL+="-${DEVBASE}"fiMOUNT_POINT="/media/${LABEL}"/bin/mkdir -p ${MOUNT_POINT}# Global mount optionsOPTS="rw,relatime"# File system type specific mount optionsif [[ ${ID_FS_TYPE} == "vfat" ]]; thenOPTS+=",users,gid=100,umask=000,shortname=mixed,utf8=1,flush"fiif ! /bin/mount -o ${OPTS} ${DEVICE} ${MOUNT_POINT}; then# Error during mount process: cleanup mountpoint/bin/rmdir ${MOUNT_POINT}exit 1fi}do_unmount()
{if [[ -n ${MOUNT_POINT} ]]; then/bin/umount -l ${DEVICE}fi# Delete all empty dirs in /media that aren't being used as mount points. for f in /media/* ; doif [[ -n $(/usr/bin/find "$f" -maxdepth 0 -type d -empty) ]]; thenif ! /bin/grep -q " $f " /etc/mtab; then/bin/rmdir "$f"fifidone
}
case "${ACTION}" inadd)do_mount;;remove)do_unmount;;
esac
chmod 777 /usr/local/bin/usb-mount.sh

编写服务

nano /etc/systemd/system/usb-mount@.service
[Unit]
Description=Mount USB Drive on %i[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/local/bin/usb-mount.sh add %i
ExecStop=/usr/local/bin/usb-mount.sh remove %i

(我们使用“@”文件名语法,以便我们可以将设备名称作为参数传递)

编写udev规则

nano /etc/udev/rules.d/99-local.rules
KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/bin/systemctl start usb-mount@%k.service"
KERNEL=="sd[a-z][0-9]", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/systemctl stop usb-mount@%k.service"
KERNEL=="sd[a-z]", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/bin/systemctl start usb-mount@%k.service"
KERNEL=="sd[a-z]", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="/bin/systemctl stop usb-mount@%k.service"

更新配置

udevadm control --reload-rules
systemctl daemon-reload

在这里插入图片描述


http://www.ppmy.cn/news/749430.html

相关文章

机器学习(ML)策略

目录 1、正交化的概念 2、单一数字评估指标(Single number evaluation metric) 3、训练/开发/测试集划分 4、迁移学习 5、多任务学习 6、端到端深度学习 1、正交化的概念 正交化是机器学习中一种常用的数据预处理技术,用于减少特征之间…

电梯门机机构SW金属板材CNC数控等离子切割机SW雷恩MW54燃气涡轮发动机SW印刷贴标机UG非标转盘式锁螺丝机SW全自动打标机stpFPC裁切检测机屏幕排线裁切断设备FPC软排线裁切机S

电梯门机机构SW金属板材CNC数控等离子切割机SW雷恩MW54燃气涡轮发动机SW印刷贴标机UG非标转盘式锁螺丝机SW全自动打标机stpFPC裁切检测机屏幕排线裁切断设备FPC软排线裁切机SWJM9T武汉埃瑞特的液压台式铆接机旋铆机3D模型三维图纸8宇球244系列HDMI测试包装机三维图轴承输送阻挡…

关于MacBook屏幕黑线问题之记录

2017年入的 MacBook Pro with Touch Bar,近日居家办公期间,每天到下午6点左右,屏幕上方区域菜单栏附近出现横向的条状黑色阴影,边缘呈现黑线状,外接显示器显示正常。 尝试关机重启,黑线并未消失、而且呈动态…

imac2017拆机

操蛋的设计啊!!!imac2017不能通过后壳更换内存条,只能拆下屏幕取下主板更换内存条,整个过程几乎将内部的零件全部拆下,真是要命。这两天为了这件事真是好一顿折腾,不过还好,最后总算…

lvds接口屏线安装图解_lvds液晶屏幕接口详细讲解

. . .. .. 1 . LVDS 输出接口概述 液晶显示器驱动板输出的数字信号中,除了包括 RGB 数据信号外,还包括行同步、场同步、 像素时钟等信号,其中像素时钟信号的最高频率可超过 28MHz 。采用 TTL 接口,数据传输速率不高, 传输距离较短,且抗电磁干扰( EMI )能力也比较差,会对…

嵌入式linux屏幕显示,嵌入式Linux下竖屏显示配置

摘要:目前大多数设备的显示器是横屏,例如高清分辨率19201080、笔记本14寸显示器1366768以及最近很热门的 4K 分辨率38402160。另外一种则是竖屏显示器,常见于娱乐、广告设备,手机最为常见的竖屏设备,以及户外的广告牌、售货机以及汽车的中控显示台等。大部分显示器控制器都…

常见的屏幕接口

常见的屏幕接口 常见的屏幕接口有: 6800、8080、RGB、I2C、SPI、MIPI-SDI、LVDS等 今天聊一聊我最近想手动给我的esp8266开发板加一块LCD裸屏,网上找了有一遍绝大部分都是LCD屏幕模块,于是自己查了一通资料整理一下。 我们平时用的大部分都是…

更换戴尔成就3350屏幕排线

趁着夜黑风高,哦不对不对,晴空万里,哦也不对也不对 反正今天天气一般,万里无云的天空上飘着朵朵白云 所以,我又来晒(Pian)帖(Jin)了(Bi) 同事小…