飞牛OS挂载外接存储到我的文件

飞牛OS挂载外接存储到我的文件

以下是 带sudo权限的开机自启脚本+systemd服务配置(飞牛OS基于Linux,优先用systemd实现开机自启,稳定且权限可控),全程复制粘贴即可:

步骤1:创建执行脚本(/usr/local/bin/mount_disk.sh)

# 1. 创建脚本文件(用root权限,避免权限问题)
sudo vi /usr/local/bin/mount_disk.sh

i 进入编辑模式,粘贴以下内容(注意路径空格转义/引号包裹):

#!/bin/bash
# 功能:开机自动卸载旧挂载点→重载服务→重新挂载fstab
# 日志输出到/var/log/mount_disk.log,方便排查问题# 定义日志文件路径
LOG_FILE="/var/log/mount_disk.log"# 输出日志函数(带时间戳)
log() {echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" >> $LOG_FILE
}# 第一步:卸载旧挂载点(忽略"未挂载"错误,避免脚本中断)
log "开始卸载旧挂载点:/vol00/WDC WD4000F9YZ-09N20L1"
sudo umount "/vol00/WDC WD4000F9YZ-09N20L1" 2>> $LOG_FILE
if [ $? -eq 0 ]; thenlog "旧挂载点卸载成功"
elselog "旧挂载点未挂载或卸载失败(非致命错误,继续执行)"
fi# 第二步:重载systemd配置(防止服务配置未生效)
log "开始重载systemd daemon"
sudo systemctl daemon-reload 2>> $LOG_FILE
if [ $? -eq 0 ]; thenlog "systemd daemon重载成功"
elselog "systemd daemon重载失败(请检查服务配置)"
fi# 第三步:重新挂载fstab所有规则
log "开始执行mount -a挂载fstab配置"
sudo mount -a 2>> $LOG_FILE
if [ $? -eq 0 ]; thenlog "mount -a执行成功,硬盘挂载完成"
elselog "mount -a执行失败!请检查/etc/fstab配置"
filog "脚本执行完毕----------------------------------------"

Esc​ → 输入 :wq 保存退出。

步骤2:给脚本添加可执行权限(必须)

sudo chmod +x /usr/local/bin/mount_disk.sh

步骤3:创建systemd服务(实现开机自启+root权限)

# 创建服务文件
sudo vi /etc/systemd/system/mount_disk.service

i 进入编辑模式,粘贴以下内容:

[Unit]
Description=Auto mount NTFS disk after boot
After=multi-user.target local-fs.target  # 确保系统挂载完本地文件系统后执行
Requires=local-fs.target
ConditionPathExists=/etc/fstab  # 确保fstab文件存在才执行[Service]
Type=oneshot  # 一次性执行(开机只运行一次)
User=root     # 用root权限执行(等价于sudo)
ExecStart=/usr/local/bin/mount_disk.sh  # 脚本绝对路径
StandardOutput=append:/var/log/mount_disk.log  # 日志追加到文件
StandardError=append:/var/log/mount_disk.log[Install]
WantedBy=multi-user.target  # 开机多用户模式启动

Esc​ → 输入 :wq 保存退出。

步骤4:启用并测试服务(关键)

# 1. 重新加载systemd服务配置
sudo systemctl daemon-reload# 2. 设置开机自启
sudo systemctl enable mount_disk.service# 3. 手动测试脚本(先验证是否正常执行,避免开机出问题)
sudo systemctl start mount_disk.service# 4. 检查服务状态(无error则正常)
sudo systemctl status mount_disk.service# 5. 查看日志(确认每一步是否执行成功)
cat /var/log/mount_disk.log

核心说明(为什么这么配置)

  1. 权限问题

    • 服务文件中 User=root 直接以root权限执行,无需手动加sudo(等价于sudo权限);
    • 脚本放在 /usr/local/bin(系统默认可执行路径),避免路径权限问题。
  2. 容错性

    • umount命令后加 2>> $LOG_FILE,即使旧挂载点未挂载,脚本也不会中断;
    • 每一步都有日志输出,方便排查“卸载失败/挂载失败”问题。
  3. 时序问题

    • After=multi-user.target local-fs.target 确保脚本在系统基本启动完成、本地文件系统挂载后执行,避免“挂载点目录还没创建就执行mount”的问题。

验证开机自启效果

# 重启系统
sudo reboot# 重启后检查:
# 1. 服务是否执行过
sudo systemctl status mount_disk.service# 2. 查看日志确认执行结果
cat /var/log/mount_disk.log# 3. 检查硬盘是否挂载到目标路径
mount | grep /vol1/1000/myhd

常见问题排查

  1. 脚本执行无日志

    • 检查脚本权限:ls -l /usr/local/bin/mount_disk.sh​(需显示 -rwxr-xr-x);
    • 手动执行脚本测试:sudo /usr/local/bin/mount_disk.sh,看是否报错。
  2. mount -a执行失败

    • 查看日志:cat /var/log/mount_disk.log​,根据错误提示修正 /etc/fstab
    • 先手动执行 sudo mount -a,确认fstab无语法错误。
  3. 服务无法启用

    • 检查服务文件语法:sudo systemctl daemon-reload,看是否有报错;
    • 服务文件路径必须是 /etc/systemd/system/mount_disk.service(不能错)。

停止/删除自启服务(如需)

# 停止服务
sudo systemctl stop mount_disk.service# 禁用开机自启
sudo systemctl disable mount_disk.service# 删除服务文件
sudo rm /etc/systemd/system/mount_disk.service# 删除脚本
sudo rm /usr/local/bin/mount_disk.sh

有需要可以私聊 沟通,欢迎交流,绿泡泡 搜索:alerson的世界

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

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

相关文章

Spring BeanDefinitionRegistry 接口

Spring BeanDefinitionRegistry 接口 Registry 登记/注册 顾名思义, 该接口设计的目的是用于保存和管理 Bean定义描述(BeanDefinition) org.springframework.beans.factory.support.BeanDefinitionRegistry package or…

网络安全活动总结 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

11月30日总结 - 作业----

11月30日总结一直在写人机交互的两个实验和大作业

Milvus:利用Docker安装Milvus向量数据库(一)

Milvus:利用Docker安装Milvus向量数据库(一)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

重读《代码大全2》3

第三次重读最后几章,关注的焦点从具体技术转向了整体构建哲学。书中“软件构建如同城市建设”的比喻给了我新的启发——我们不仅是编码工人,更是软件城市的规划师。 这次阅读,我特别注意到之前忽略的“集成策略”部…

题解:P14623 [2018 KAIST RUN Fall] Coloring Roads

题意即为:给定一棵有根树,维护以下两种操作:将点 \(x\) 到根路径上所有边颜色改为 \(c\); 查询出现 \(k\) 次的颜色种数。考虑维护同色树上连续段。具体地,当修改 \(x\) 到根的路径时,将 \(x\) 到根上的所有点从…

Nordic nRF91系列化繁为简 nuSIM重塑蜂窝物联网连接

nuSIM是集成SIM(iSIM)的开放标准方案,其中SIM凭证在设备的安全保护区域内进行加密和管理。通过在nRF91系列应用处理器的安全Arm TrustZone内作为专用软件组件运行,nuSIM消除了外部SIM硬件,从而直接降低物料清单(BOM…

告别频繁更换:Nordic nPM2100 PMIC 助力开发人员提升非充电电池项目设计

全球领先的低功耗无线连接解决方案供应商Nordic 已推出用于设计开发的nPM2100电源管理集成电路(PMIC)。自今年 1 月推出该器件以来,早期客户已开始将其设计到从个人健康监测到无线工业传感器的各种原电池应用中。现在…

QT程序启动流程

QMainWindow:菜单栏、任务栏 QWidget:空白窗口 int main(int argc ,char *argv[]) { //argc 是命令行参数个数,argv是命令行参数 //QApplication a( argc ,argv),管理Qt程序的运行,和设置Qt应用程序,针对QWidget应用…

787878[GESP202409 二级] 数位之和

787878[GESP202409 二级] 数位之和[GESP202409 二级] 数位之和 题目描述 小杨有 n 个正整数,他认为一个正整数是美丽数字当且仅当该正整数每一位数字的总和是 7 的倍数。 小杨想请你编写一个程序判断 n 个正整数哪些是…

十一月份《代码大全》观后感三

在接触这本书之前,我潜意识里认为编程是一项极其个人化、甚至有些孤僻的活动。一个人,一台电脑,一个世界。《代码大全2》却用大量篇幅讨论了协作、团队、文档,甚至程序员的性格。这让我恍然大悟:软件构建,本质上…

2025-12-02-Nature 本周最新文献速递

文章标题: Long-read metagenomics reveals phage dynamics in the human gut microbiome 中文标题: 宏基因组长读测序揭示人类肠道噬菌体“生存法则” 关键词: 肠道微生物组、噬菌体、长读测序、噬菌体-宿主相互作用、…

强制maven更新依赖并清除缓存

# 强制更新依赖(-U 强制更新快照/元数据,-X 打印调试日志,方便排查) mvn clean install -U -X我是个双鱼座的小王子,沉浸在自己的代码世界里,去探索这未知的世界,希望遇到更多的小伙伴一起前行!

在Google Pixel 10上“听诊”蓝牙信道?开源安卓应用实测揭秘

今年早些时候发布的Android 16系统首次引入了支持蓝牙信道探测的公共API,实现了智能手机的精准测距功能。然而直到近期,市面上仍未出现支持蓝牙6.0及信道探测技术的手机硬件。这一局面在2025年8月28日迎来转机——谷…

论文解读-《DiffGraph Heterogeneous Graph Diffusion Model》 - zhang

1. 论文介绍 论文题目:DiffGraph: Heterogeneous Graph Diffusion Model 论文领域:异构图神经网络 论文发表:WSDM 2025 论文地址:arxiv.org/2501.02313 论文代码:https://github.com/HKUDS/DiffGraph 论文背景:2…

四、Java方法

这篇博客全面介绍了Java方法的核心概念与应用,从基础的方法定义、调用机制和参数传递,到高级特性如方法重载、可变参数和递归调用,系统地讲解了如何设计和使用方法来提高代码的复用性和可维护性,帮助开发者掌握面向…

英氏米粉还能吃吗?央视网《超级工厂》携手老爸评测答案尽显安心

在婴幼儿辅食的选择上,家长们总是慎之又慎,英氏米粉作为市场上的热门产品,“英氏米粉还能吃吗”成了众多家长心中的关键疑问。从原料把控、严格检测、先进生产到权威认证等多个维度来看,英氏米粉不仅能吃,而且能让…

NOIP2025 退役记 OI回忆录

Day 0 考前复习了一些板子,上次被 CSP-S 考怕了,所以把贪心、字符串、一些必要的数据结构复习了,然后再次默写了模板,适应了一下 NOI Linux 的操作和编译方式,中午放学就回家了,在家里又看了一些代码和一些重要的…

想要会独立开发app,第一步应该学什么语言?

这个表格可以帮助你快速了解它们的特点和适用场景:语言/框架 主要应用平台 核心优势 ❤️ 需要注意 初学推荐指数JavaScript + React Native 跨平台 (iOS & Android) 一门语言开发多端;生态丰富,社区活跃;学习…

【二维前缀和与差分】LeetCode 2536. 子矩阵元素加 1

View Post【二维前缀和与差分】LeetCode 2536. 子矩阵元素加 1题目 https://leetcode.cn/problems/increment-submatrices-by-one/description/ 题解 这是一道二维差分的典题,但是为了实现二维差分,我们首先需要掌握…