8.【Orangepi Zero2】UDEV的配置文件,自动挂载U盘

8.UDEV的配置文件,自动挂载U盘

  • UDEV的配置文件
  • udev 规则的匹配键
  • 挂载U盘
    • 手动挂载U盘
    • 自动挂载
      • usbpan.rules
  • tree命令

UDEV的配置文件

参考文章:Linux 基础 – udev 和 rules 使用规则5

规则文件是 udev 里最重要的部分,默认是存放在 /etc/udev/rule.d/ 下。
所有的规则文件必须以 “.rules” 为后缀名。

下面是一个简单的规则:

KERNEL=="sda", NAME="my_root_disk", MODE="0660"
KERNEL 是匹配键,NAME 和 MODE 是赋值键。

KERNEL 是匹配键,NAME 和 MODE 是赋值键。这条规则的意思是:如果有一个设备的内核名称为 sda,则该条件生效,执行后面的赋值:在 /dev 下产生一个名为my_root_disk 的设备文件,并把设备文件的权限设为 0660。

ls /dev/bus/usb/001/001
udevadm info --attribute-walk --name=/dev/设备名字

在这里插入图片描述

SUBSYSTEM=="usb", ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0002", MODE="0666"

udev 规则的匹配键

ACTION:事件(uevent)的行为,例如:add(添加设备)、remove(删除设备);
KERNEL:内核设备名称,例如:sda,cdrom;
DEVPATH:设备的 devpath 路径;
SUBSYSTEM:设备的子系统名称,例如:sda 的系统为 block;
BUS:设备在 devpath 里的总线名称,例如:usb;
DRIVER:设备在 devpath 的设备驱动名称,例如:ide-cdrom;
ID:设备在 devpath 里的识别号;
SYSFS{filename}:设备的 devpath 路径下,设备的属性文件 "filename" 里的内容;
ENV{key}:环境变量。在一条规则中,可以设定最多五条环境变量的 匹配键;
PROGRAM:调用外部命令;
RESULT:外部命令 PROGRAM 的返回结果。

挂载U盘

手动挂载U盘

sudo mount /dev/sda1 /mnt/
cd /mnt/

在这里插入图片描述

自动挂载

udevadm info --attribute-walk --name=/dev/sda1

在这里插入图片描述

usbpan.rules

ACTION=="add", SUBSYSTEMS=="usb", SUBSYSTEM=="block", RUN{program}+="/bin/mkdir /media/%k" ,RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode /media/%k"

这是一个udev规则,通常用于在插入USB存储设备时自动创建挂载点并挂载设备。这个规则的含义如下:

ACTION=="add": 规则只在添加设备时触发。
SUBSYSTEMS=="usb": 设备必须属于USB子系统。
SUBSYSTEM=="block": 设备必须是块设备。
RUN{program}+="/bin/mkdir /media/%k": 当设备满足规则条件时,运行命令创建 /media/ 目录下以设备名称(%k)命名的目录。
RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode /media/%k": 运行 systemd-mount 命令,将设备挂载到之前创建的目录。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_62140641/article/details/134329980

这个规则的效果是,当插入一个USB块设备时,udev将创建一个以设备名称为名字的目录(例如,如果设备名称是sdb1,那么将创建 /media/sdb1 目录),然后使用 systemd-mount 挂载设备。

请注意,使用 systemd-mount 需要系统使用systemd init 系统。此外,一般情况下,挂载点应该在 /mnt/ 目录下而不是 /media/ ,因为 /media/ 通常是由文件管理器等工具使用的默认挂载点。

cd /etc/udev/rules.d/
sudo vi usbpan.rules
sudo service udev restart

在这里插入图片描述

在这里插入图片描述

自动挂载成功

cd /media

在这里插入图片描述

tree命令

sudo apt-get install tree
tree /media/

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/7013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CVE-2019-19945漏洞复现 Openwrt针对uhttpd漏洞利用

根据官方漏洞的文档,该漏洞的复现工作我会基于openwrt的18.06.4这个版本进行测试。我选取的环境是渗透测试常用的kali-Linux系统,然后在其中搭建docker环境来完成相应的实验环境的部署。我通过这个核心命令获取docker环境: sudo docker impo…

OSINT技术情报精选·2024年4月第4周

OSINT技术情报精选2024年4月第4周 2024.4.30版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、山西证券:《边缘AI行业深度:边缘AI硬件,引领硬件创新时代》 边缘 AI 是云端算力的有效补充,…

自己写了一个jq的toast弹窗框架引入之后调用报错$.toast is not a function

toast.js (function($) { $.toast function(message) {var toast $(#toast);toast.find(.toast-message).text(message);toast.fadeIn(function () {setTimeout(function () {toast.fadeOut();}, 3000); // 持续时间3秒})toast.click(function(){toast.fadeOut();}) } }) 页…

SDWebImage源码分析

[TOC](SDWebImage源码分析 基本框架UIKit层工具层SDWebImageManagerSDImageCacheSDWebImageDownloaderdownloadImageWithURL 基本框架 SDWebImage作为一个著名的iOS图像加载库,其源码主要包括以下几个核心部分: 图片下载管理:SDWebImageMan…

微信答题链接怎么做_新手也能快速上手制作

在数字营销日新月异的今天,如何有效吸引用户参与、提升品牌曝光度,成为了每一个营销人都在思考的问题。而微信答题链接,作为一种新兴的互动营销方式,正以其独特的魅力,在营销界掀起一股新的热潮。今天,就让…

从C向C++16——常见容器2

一.stack容器 1.stack理解 概念: stack是一种先进后出的数据结构,它只有一个出口。 它在C中也叫栈,类似于我们在《数据结构和算法》里面的栈,只不过在C中把其封装成库,我们可以直接使用。 注意:栈中只有…

【精品毕设推荐】搜索引擎的设计与实现

点击免费下载原文及代码 摘要 我们处在一个大数据的时代,伴随着网络信息资源的庞大,人们越来越多地注重怎样才能快速有效地从海量的网络信息中,检索出自己需要的、潜在的、有价值的信息,从而可以有效地在日常工作和生活中发挥作…

typescript中的BigInt,展开运算符,解构和可选链运算

BigInt,展开运算符,解构和可选链运算 BigInt javascript中支持两种数据类型, Number类型和BigInt类型。 JavaScript的七种原始数据类型,Undefined,Null,Boolean,String,Symbol,Number,BigInt JavaScript使用双精度64位浮点数格式…

【UnityRPG游戏制作】Unity_RPG项目之场景环境搭建和解析

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

事件知识图谱 - EventKGE_Event knowledge graph embedding with event causal transfer

EventKGE: Event knowledge graph embedding with event causal transfer 作者:Daiyi Li(南航) 来源:2023 Knowledge-Based Systems(中科院一区,影响因子8.8) 论文:[ScienceDirec…

开源聊天软件和 php版本的开源聊天软件的介绍

开源聊天软件 php 开源的PHP聊天软件有很多,这里我会列举几个常见的: Pidgin: 这是一个跨平台的即时消息客户端,它支持各种协议,包括XMPP协议。虽然它本身不是一个聊天软件,但它可以用来编写XMPP协议的聊天软件。 …

Linux中gcc/g++的使用

文章目录 前言gcc/g 前言 gcc和g即为编译器。其中gcc为c语言的编译器,只能编译c语言;g为c的编译器,既能编译c语言,又能编译c。 在前面的文章中,我们提到代码转换成可执行程序需要经过 预处理(进行宏替换)…

一、Vagrant搭建相关环境

目录 一、创建Vagrant相关环境1.下载安装VirtualBox2.在BlOS中设置CPU虚拟化3.使用Vagrant新建linux虚拟机3.1下载Vagrant3.2Vagrant官方镜像仓库3.3使用Vagrant初始化一个centos7的虚拟机 4.设置固定ip地址 二、安装docker1.按照docker 三、docker安装一些中间件1.mysql安装2.…

从零开始学AI绘画,万字Stable Diffusion终极教程(六)

【第6期】知识补充 欢迎来到SD的终极教程,这是我们的第六节课,也是最后一节课 这套课程分为六节课,会系统性的介绍sd的全部功能,让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 …

Linux环境创建普通用户,授权root权限。报错:usermod: group ‘sudo‘ does not exist

在Linux环境下,创建普通用户并授权root权限需要以下步骤: 1. 以root用户登录终端。 2. 执行以下命令创建一个新的用户,其中username为你想要创建的用户名,可根据实际情况自行更改。 adduser username 3. 设置该用户的密码&…

Stylus的引入

Stylus是一个CSS预处理器,它允许开发者使用更高级的语法来编写CSS,并提供了一些额外的功能来简化和增强CSS的编写过程。以下是关于Stylus的详解和引入方法的详细介绍: 一、Stylus的详解 特点和功能: 变量:允许你定义…

【C++】vector类的增删改查模拟实现(图例超详细解析!!!)

目录 一、前言 二、源码引入 三、vector的模拟实现 ✨实现框架 ✨前情提要 ✨Member functions —— 成员函数 ⚡构造函数 ⭐无参构造 ⭐迭代器区间构造 ⭐n个值构造 ⚡拷贝构造 ⚡运算符赋值重载 ⚡析构函数 ✨Element access —— 元素访问 ⚡operator[ ] …

springcloud整合nacos实现相同版本实例相互调用

springcloud整合nacos实现相同版本实例相互调用 注: 本文为自己学习研究总结,仅供参考,若有侵权,请及时联系本人 业务场景 有时候一些新的业务或者修改后的功能只开放给部分人访问,那么可以新老版本都部署,对于大多…

[AHK V2]WinEvent - 简单的检测窗口打开关闭、移动、最大化、最小化等

WinEvent简介 WinEvent 可以监视所有窗口或特定窗口的窗口事件。目前支持以下事件:显示、创建、关闭、激活、非激活、移动、开始移动、结束移动、最小化、还原、最大化。有关详细信息,请参见库中函数的注释。 该库最新版可在Git Hub上获得。 WinEvent.a…

VsCode插件 -- Power Mode

一、安装插件 1. 首先在扩展市场里搜索 Power Mode 插件,如下图 二、配置插件 设置 点击小齿轮 打上勾 就可以了 第二种设置方法 1. 安装完成之后,使用快捷键 Ctrl Shift P 打开命令面板,在命令行中输入 settings.json , 选择首…