Linux下自动挂载U盘或者USB移动硬盘

最近在折腾用树莓派(实际上是平替香橙派orangepi zero3)搭建共享文件服务器,有一个问题很重要,如何在系统启动时自动挂载USB移动硬盘。

1 使用/etc/fstab

最开始尝试了用/etc/fstab文件下增加:"/dev/sda1 /home/orangepi/sharing ext4 defaults 0 0"的方式,结果系统直接起不来了,查看log后,发现挂载失败了,猜想是因为系统启动到读取fstab去做挂载时,usb硬盘还没有启动好,所以导致挂载失败。

/etc/fstab文件的每一行都遵循以下格式:

2 使用udev rule

尝试在/etc/udev/rules.d目录下增加99-usb-hdd.rules规则里面写上:
KERNEL==“sda1”, ACTION==“add”, RUN+=“/usr/bin/mount /dev/sda1 /home/orangepi/sharing”
在这里插入图片描述
系统提示挂载失败failed with exit code 32,查找资料后发现在新的ubuntu系统中,udev 服务设置的挂载命名空间是私有的,仅对该服务内部可用,对其他服务不可访问。ubuntu系统推荐先用udev rule启动一个服务,再用这个服务去做自动挂载: Start a custom systemd service from the Udev rule; the systemd service can invoke a script which can start any number of long-running processes.
嫌弃麻烦(不知道怎么用udev rule去启动一个一个服务),没有搞(以后再试)。

3 使用udev-media-automount

这是一个开源项目,本质上是借udev rule 检测到usb设备的接入与断开事件,然后调用service里去自动挂载和卸载USB硬盘到指定目录下,详细见 https://github.com/Ferk/udev-media-automount

3.1 下载软件包:

https://github.com/Ferk/udev-media-automount/archive/refs/heads/master.zip

3.2 安装:

unzip master.zip
cd udev-media-automount-master
sudo make install
sudo udevadm control --reload-rules
sudo udevadm trigger

4 使用udevil

查找过程中,发现也有人推荐用udevil工具直接来做这个事情,但这个项目很久没有更新了,不知道是不是废弃了

4.1 安装udevil

sudo apt install udevil

4.2 创建服务

sudo vi /etc/systemd/system/devmon.service
[Unit]
Description=Automounting usb drives.
After=network.target[Service]
Type=simple
User=pi
Restart=on-abort
ExecStart=/usr/bin/devmon[Install]
WantedBy=multi-user.target

4.3 开启服务

sudo systemctl enable devmon.service
sudo systemctl start devmon.service

3.4 插入usb硬盘

可以看到如下的设备挂载

sudo df -l

在这里插入图片描述
断电重启后,挂载关系依然如此。

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

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

相关文章

Java 反射机制详解

目录 一. 前言 二. 反射基础 2.1. Class 类 2.2. 类加载 三. 反射的使用 3.1. Class类对象的获取 3.2. Constructor类及其用法 3.3. Field类及其用法 3.4. Method类及其用法 四. 反射机制执行的流程 4.1. 反射获取类实例 4.2. 获取构造器的过程 4.3. 反射获取方法…

javaEE -8(9000字详解网络编程)

一:网络编程基础 1.1 网络资源 所谓的网络资源,其实就是在网络中可以获取的各种数据资源,而所有的网络资源,都是通过网络编程来进行数据传输的。 用户在浏览器中,打开在线视频网站,如优酷看视频&#xff…

什么?Postman也能测WebSocket接口了?

01、WebSocket 简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直…

PyCharm社区版安装

PyCharm社区版安装 到中国官网下载 https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows 首次创建项目,会自动下载安装Python 3.9 社区版的区别 社区版的区别

数据结构 C语言 2.1 线性表抽象数据类型 2.2 小议顺序表

一、线性表抽象数据类型 线性表的定义 定义:零个或多个数据元素的有限序列 线性表的特点: 1.它是一个序列 数据元素之间是有序的 数据元素之间是一对一的关系 2.有限性 线性表的数据元素个数是有限的 注意:零个数据元素的有限序列又…

可图性判断(图论)

如图所示: 1.去arr[i]首元素, 后面arr[i]个元素减一 2.排序,以此类推 3.最后如果出现负数则不可图 4.最后元素为0,则可图 问题 L: Degree Sequence of Graph G代码如下:

机器视觉3D项目评估的基本要素及测量案例分析

目录 一. 检测需求确认 1、产品名称:【了解是什么产品上的零件,功能是什么】 2、*产品尺寸:【最大兼容尺寸】 3、*测量项目:【确认清楚测量点位】 4、*精度要求:【若客户提出的精度值过大或者过小,可以和客…

hadoop使用简介

git clone hadoop源码地址:https://gitee.com/CHNnoodle/hadoop.git git clone错误: Filename too long错误,使用git config --global core.longpaths true git clone https://gitee.com/CHNnoodle/hadoop.git -b rel/release-3.2.2 拉取指定…

echarts中横向柱状图的数字在条纹上方

实现效果: 数字在条纹的上方 实现方法:这些数字是用新添加一个坐标轴来实现的 直接添加坐标轴数字显示是在条纹的正右边 所以需要配置一下偏移 完整代码 var option {grid: {left: "3%",right: "4%",bottom: "3%",cont…

常用的网络攻击手段

前言:本文旨在介绍目前常用的网络攻击手段,分享交流技术经验 目前常用的网络攻击手段 社会工程学攻击物理攻击暴力攻击利用Unicode漏洞攻击利用缓冲区溢出漏洞进行攻击等技术 社会工程学攻击 社会工程学 根据百度百科定义: 社会工…

730. 机器人跳跃问题--二分

题目: 730. 机器人跳跃问题 - AcWing题库 思路: 二分 1.当起始能量E大于最大建筑高度1e5 时,E的能量在整个条约过程中全程递增,则大于E的初始能量也必然成立(满足二段性)。故最小初始能量范围为[0,1e5]&a…

代码随想录算法训练营第3天| 203.移除链表元素 、 707.设计链表 、 206.反转链表

JAVA代码编写 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示…