#免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
Mac电脑苹果芯片读写NTFS硬盘bash脚本
(ntfs.sh脚本内容在本文最后面)
ntfs.sh脚本可以将Mac系统(苹果M系芯片)上的NTFS硬盘改成可读写的挂载方式,从而可以直接往NTFS硬盘写入数据。此脚本免费,使用过程中无需下载任何收费软件。 每次插入NTFS硬盘之后,都需要执行此脚本,才可以往硬盘中写入数据。
初次运行准备工作
-
将电脑的安全策略设置为“降低安全性”,并允许用户管理来自被认可开发者的内核扩展。
-
首先将电脑关机。
-
按住触控ID或电源按钮,至少10秒,直到出现正在载入启动选项(适用Apple芯片)。
-
点按选项-继续-(左上角)实用工具-启用安全性实用工具-安全策略。
-
选择降低安全性,勾选允许用户管理来自被认可开发者的内核扩展,点击好。
-
设置成功之后,点击屏幕左上角的苹果标志重启电脑,重启即可
-
具体步骤可参考:https://support.apple.com/guide/mac-help/mchl768f7291/mac
-
-
初次运行此脚本前,需要运行以下指令授权此脚本(假设此脚本名称是ntfs.sh):
chmod +x ntfs.sh
如何使用脚本
-
首先必须插入硬盘。
-
打开(cd)脚本所在目录,执行脚本:
./ntfs.sh
-
NTFS重新挂载成功之后,会自动打开Finder所在目录。
参考资料
-
在搭载 Apple 芯片的 Mac 上更改启动磁盘的安全性设置
-
mac 系统 安装macfuse 支持NTFS写入
-
Homebrew
-
osxfuse/osxfuse/NTFS 3G
许可证
GNU Lesser General Public License v3.0
脚本内容ntfs.sh
请把脚本代码复制下来,以.sh脚本后缀保存到电脑上,在终端执行此脚本。
#!/bin/bash
# charset=utf-8
# @author: aqvdrt
# @date: 20240206
# 功能:在搭载Apple芯片的Mac上,取消NTFS硬盘默认的只读挂载方式,改成可读写的挂载方式。
#
# 【重要】执行此脚本的前置条件:
# 1.将安全策略设置为“降低安全性”,并允许用户管理来自被认可开发者的内核扩展。具体步骤参考:https://support.apple.com/guide/mac-help/mchl768f7291/mac
# - 按住触控ID或电源按钮,至少10秒,直到出现“正在载入启动选项”(适用Apple芯片)。
# - 点按“选项”-“继续”-(左上角)“实用工具”-“启用安全性实用工具”-“安全策略”。
# - 选择[降低安全性],勾选“允许用户管理来自被认可开发者的内核扩展”,点击[好]。
# - 设置成功之后,点击屏幕左上角的苹果标志重启电脑,重启即可
# 2.初次运行此脚本前,需要运行以下指令授权此脚本(假设此脚本名称是ntfs.sh):`chmod +x ntfs.sh`
# 3.必须要先插入硬盘再执行此脚本.
#
# 其他说明:
# - 该功能需要借助第三方软件,此脚本会自动检查或安装这些软件:homebrew,macfuse,ntfs-3g-mac。
# - (可选)如果在中国brew安装速度太慢,可以尝试修改brew镜像源:https://ken.io/note/macos-homebrew-install-and-configuration# =============以下是需要执行的指令================# 第一步:检查是否有只读的NTFS硬盘
if mount | grep ntfs | grep read-only
thenecho " "
elseecho "---当前不存在只读方式的NTFS硬盘.---"echo "---No read-only NTFS hard drive found.---"mount | grep -E 'ntfs|macfuse'exit
fi# 第二步:确保所需环境已经安装
echo "[重要] 请确保安全策略已设置为“降低安全性”,并允许用户管理来自被认可开发者的内核扩展。"
echo "[IMPORTANT] Make sure the security options is set to 'Reduced Security', and allow user management of kernel extensions from identified developers"
echo "[重要] 要先将硬盘插入到电脑且识别成功,才可以重新挂载成功。"
echo "[IMPORTANT] The hard drive must be connected to the computer and recognized successfully before it can be remounted successfully."
# 关闭系统的Gatekeeper安全功能,才能运行从非官方来源(如App Store和已知开发者)安装的应用程序
sudo spctl --master-disable
# 检查homebrew,如果不存在就安装
if ! command -v brew &> /dev/null
thenecho "[Homebrew]尚未安装,即将开始自动安装。官网:https://brew.sh/"echo "[Homebrew] is not installed. It'll start installing soon. website: https://brew.sh/"# 使用官网的脚本自动安装homebrew/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 全局配置brew使其生效echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofileeval "$(/opt/homebrew/bin/brew shellenv)"
elseecho "[Homebrew]已经安装。"echo "[Homebrew] is installed"
fi# 检查 brew 中是否已安装 "macfuse"
if grep -q "macfuse" <<< "$(brew list)"
thenecho "[macfuse]已安装"echo "[macfuse] is installed"
elseecho "[macfuse]尚未安装,即将开始自动安装"echo "[macfuse] is not installed. It'll start installing soon."brew install --cask macfuse
fi# 检查 brew 中是否已安装 "ntfs-3g-mac"
if grep -q "ntfs-3g-mac" <<< "$(brew list)"
thenecho "[ntfs-3g-mac]已安装"echo "[ntfs-3g-mac] is installed"
elseecho "[ntfs-3g-mac]尚未安装,即将开始自动安装"echo "[ntfs-3g-mac] is not installed. It'll start installing soon."brew tap gromgit/homebrew-fusebrew install ntfs-3g-mac
fi# 第三步:开始重新挂载硬盘
echo "============读写NTFS的环境已准备好============"
echo "============It's ready to change NTFS mount method============"
echo "开始重新挂载NTFS硬盘,将只读硬盘改成读写方式,成功之后会自动打开finder"
echo "Starting to change NTFS to read-write mode. Finder will be opened once succeed."
mount | grep ntfs | grep read-only | while read -r line;
do# line: /dev/disk4s1 on /Volumes/EXTERNAL_USB (ntfs, local, nodev, nosuid, read-only, noowners, noatime, nobrowse)((index++))echo "【第${index}个NTFS设备】------------------:"echo "【${index}-NTFS device】------------------:"echo "原始挂载方式:"${line}echo "Original mount:"${line}# 提取设备真实地址device_path=`echo $line | awk '{print$1}'`echo "设备真实地址:"${device_path}echo "Device real path:"${device_path}# 提取设备挂载地址mount_path=`echo $line | awk '{print$3}'`echo "设备挂载地址:"${mount_path}echo "Device mount path:"${mount_path}# 提取设备挂载的根目录mount_dir=`dirname $mount_path`# 提取设备挂载名称mount_name=`basename $mount_path`echo "设备挂载名称:"${mount_name}echo "Device mount name:"${mount_name}# 取消原有的硬盘挂载方式sudo umount $device_path# 以可读写方式重新挂载硬盘sudo -S $(which mount_ntfs) ${device_path} ${mount_path} # 此命令可以成功修改硬盘文件内容# sudo -S $(which ntfs-3g) ${device_path} ${mount_path} -o local -o allow_other -o auto_xattr -o volname=${mount_name} # 此命令无法成功修改硬盘文件内容echo "新设备[${mount_name}]已可读写!"echo "即将自动打开finder (${mount_path})..."echo "Hard drive [${mount_name}] is allowed to write and read!"echo "Opening finder (${mount_path})..."# 打开硬盘所挂载的根目录open ${mount_dir}echo '----------------------------------'echo " "
done
相关文章:
#免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
Mac电脑苹果芯片读写NTFS硬盘bash脚本 (ntfs.sh脚本内容在本文最后面) ntfs.sh脚本可以将Mac系统(苹果M系芯片)上的NTFS硬盘改成可读写的挂载方式,从而可以直接往NTFS硬盘写入数据。此脚本免费,使用过程中无需下载任何收费软件。…...
PPT录屏功能在哪?一键快速找到它!
在现代办公环境中,ppt的录屏功能日益受到关注,它不仅能帮助我们记录演示文稿的播放过程,还能将操作过程、游戏等内容完美录制下来。可是很多人不知道ppt录屏功能在哪,本文将为您介绍ppt录屏的打开方法,以帮助读者更好地…...
Linux下的多线程
前面学习了进程、文件等概念,接下里为大家引入线程的概念 多线程 线程是什么?为什么要有线程?线程的优缺点Linux线程操作线程创建线程等待线程终止线程分离 线程间的私有和共享数据理解线程库和线程id深刻理解Linux多线程(重点&a…...
Nginx+React在Docker中实现项目部署
一、引言 Nginx 是一个高性能的 HTTP 和反向代理服务器,也能够处理 IMAP/POP3/SMTP 服务,由 Igor Sysoev 开发并在 2004 年首次公开发布。它以处理静态内容、提供反向代理服务以及其高稳定性、低资源消耗而广受欢迎。Nginx 能够通过非阻塞方式处理多个连…...
Centos 7.5 安装 NVM 详细步骤
NVM(Node Version Manager)是一个用于管理Node.js版本的工具,它可以让你轻松地在多个版本之间切换。NVM 通过下载和管理 Node.js 的多个版本,为用户提供了一种灵活的方式来使用不同版本的 Node.js。如果你需要更多关于NVM的信息&a…...
【python】绘制春节烟花
一、Pygame库春节烟花示例 下面是一个使用Pygame实现的简单春节烟花效果的示例代码。请注意,运行下面的代码之前,请确保计算机上已经安装了Pygame库。 import pygame import random import math from pygame.locals import *# 初始化pygame pygame.ini…...
ChatPromptTemplate和AI Message的用法
ChatPromptTemplate的用法 用法1: from langchain.chains import LLMChain from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate from langchain_community.tools.tavily_search import TavilySear…...
Terraform实战(三)-在AWS上尝试Terraform的Vault Provider
使用自Terraform 0.8起添加的Vault Provider后,aws云基础设施尝试从Vault而不是tfvars或环境变量中读取AWS凭证。 1 什么是vault? vault是一种由Hashicorp发布的用于管理机密信息的工具。 2 aws使用Terraform的Vault Provider 2.1 创建静态密钥 以开…...
【Nicn的刷题日常】之有序序列合并
1.题目描述 描述 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。 数据范围: 1≤�,�≤1000 1≤n,m≤1000 , 序列中的值满足 0≤���≤30000 0≤val≤30000 输入描述…...
PostgreSql与Postgis安装
POstgresql安装 1.登录官网 PostgreSQL: Linux downloads (Red Hat family) 2.选择版本 3.安装 ### 源 yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm ### 客户端 yum install postgresql14 ###…...
【Spring连载】使用Spring Data访问Redis(九)----Redis流 Streams
【Spring连载】使用Spring Data访问Redis(九)----Redis流 Streams 一、追加Appending二、消费Consuming2.1 同步接收Synchronous reception2.2 通过消息监听器容器进行异步接收Asynchronous reception through Message Listener Containers2.2.1 命令式I…...
MySQL:从基础到实践(简单操作实例)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 下载前言一、MySQL是什么?二、使用步骤1.引入库2.读入数据 提交事务查询数据获取查询结果总结 下载 点击下载提取码888999 前言 在现代信息技术的世界…...
Flink流式数据倾斜
1. 流式数据倾斜 流式处理的数据倾斜和 Spark 的离线或者微批处理都是某一个 SubTask 数据过多这种数据不均匀导致的,但是因为流式处理的特性其中又有些许不同 2. 如何解决 2.1 窗口有界流倾斜 窗口操作类似Spark的微批处理,直接两阶段聚合的方式来解决…...
零基础学编程系列,从入门到精通,中文编程开发语言工具下载,编程构件容器件之控制面板构件用法
零基础学编程系列,从入门到精通,中文编程开发语言工具下载,编程构件容器件之控制面板构件用法 一、前言 编程入门视频教程链接 https://edu.csdn.net/course/detail/39036 编程工具及实例源码文件下载可以点击最下方官网卡片——软件下载…...
使用PowerBI 基于Adventure Works案例分析
Adventure Works案例分析 前言 数据时代来临,但一个人要顺应时代的发展是真理。 数据分析的核心要素 那数分到底是什么? 显然DT 并不等同于 IT,我们需要的不仅仅是更快的服务器、更多的数据、更好用的工具。这些都是重要的组成部分&…...
人工智能之估计量评估标准及区间估计
评估估计量的标准 无偏性:若估计量( X 1 , X 2 , ⋯ , X n X_1,X_2,\cdots,X_n X1,X2,⋯,Xn)的数学期望等于未知参数θ,即 E ( θ ^ ) = θ E(\hat\theta)=\theta E(θ^)=θ 则称 θ ^ \hat\theta θ^为θ的无偏估计量。 估计量 θ ^ \hat\theta θ^的值不一定就是…...
Ubuntu权限相关命令
文章目录 文件夹/文件带锁(图标) 解锁无密码访问文件/目录sudo usermod -aG sudo your_username其他后记 命令参考: https://www.cnblogs.com/alongdidi/p/linux_ownership_permission.html 文件夹/文件带锁(图标) 解锁 递归解锁当前路径下的所有文件夹以及文件(包括子文件)su…...
RTE2023第九届实时互联网大会:揭秘未来互联网趋势,PPT分享引领行业新思考
随着互联网的不断发展,实时互动技术正逐渐成为新时代的核心驱动力。 在这样的背景下,RTE2023第九届实时互联网大会如期而至,为业界人士提供了一个探讨实时互联网技术、交流创新理念的绝佳平台。 本文将从大会内容、PPT分享价值等方面&#…...
Hadoop-生产调优
第1章 HDFS-核心参数 1.1 NameNode内存生产配置 1)NameNode 内存计算 每个文件块大概占用 150 byte,一台服务器 128G 内存为例,能存储多少文件块呢? 128 * 1024 * 1024 * 1024 / 150byte ≈ 9.1 亿G MB KB Byte 2)…...
Elasticsearch基于分区的索引策略
分区索引,或者更常见的说法,基于分区的索引策略,是一种按照特定规则(如时间、地理位置、业务线等)将数据分散到多个不同的索引中的方法。这种做法可以提高Elasticsearch的性能和可管理性,尤其是在处理大量数…...
论人机协同中的模糊性与不确定性
在人工智能从"工具辅助"向"智能伙伴"演进的过程中,人机协同正突破传统"人主导-机执行"的单向模式,形成双向认知交互的新型协作关系。这种关系的复杂性远超简单的人机分工——人类认知的模糊性(Fuzziness&#…...
如何利用OpenCode实现高效专业的AI驱动开发工作流?
如何利用OpenCode实现高效专业的AI驱动开发工作流? 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手,模型灵活可选,可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 在当今快速迭代的软件开发…...
Open SWE 协作层:GitHub 深度集成与人在回路(HITL)设计
Open SWE 协作层:GitHub 深度集成与人在回路(HITL)设计Open SWE 不是一个孤立的系统,它的真正力量来自于与现有开发工作流的深度整合。从 GitHub Issue 触发任务到自动创建 Pull Request,从计划审批到执行干预——「人…...
Vivado工程移植遇IP核被锁?手把手教你从源码重建自定义IP(附路径避坑指南)
Vivado工程移植遇IP核被锁?手把手教你从源码重建自定义IP(附路径避坑指南) 当你从同事或开源社区获取一个Vivado工程时,最令人头疼的问题莫过于打开后发现关键IP核显示为锁定状态。那些灰色的锁形图标不仅意味着无法查看源码&…...
保姆级教程:用ONNXRuntime对比YOLO11的PyTorch与ONNX输出差异
保姆级教程:用ONNXRuntime对比YOLO11的PyTorch与ONNX输出差异 在模型部署的实践中,PyTorch到ONNX的转换是常见需求,但转换后的模型输出是否与原始模型一致却容易被忽视。本文将手把手教你如何通过ONNXRuntime对比YOLO11模型在PyTorch和ONNX两…...
【2026年小红书春招- 3月25日 -第二题- 互评操作】(题目+思路+JavaC++Python解析+在线测试)
题目内容 现在有 n n n 条$ Plog$ 在首页上排成一列,队尾在下侧,队头在上侧。 用长度为 n n n 的$ 01 $串 s = s 1 , s 2 , … , s n s=s_1,s_2,…,s_n...
lychee-rerank-mm与PyTorch集成:构建自定义多模态模型
lychee-rerank-mm与PyTorch集成:构建自定义多模态模型 1. 引言 多模态AI正在改变我们处理信息的方式,但如何让模型真正理解图文之间的复杂关系,一直是个技术难点。想象一下这样的场景:你的电商平台需要将用户上传的商品图片与海…...
移动UI自动化测试架构选型:Maestro微内核架构与性能基准方法论
移动UI自动化测试架构选型:Maestro微内核架构与性能基准方法论 【免费下载链接】maestro Painless Mobile UI Automation 项目地址: https://gitcode.com/GitHub_Trending/ma/maestro 在当今快速迭代的移动应用开发环境中,UI自动化测试已成为保障…...
先收藏 | OWASP Top10 第二坑:Java开发踩过的配置漏洞
OWASP 2025最新风险榜单出炉,安全配置错误稳居第二,数据戳破行业假象:100%被测Java应用全中招,总漏洞数超71.9万次。很多Java程序员自嘲:写得了高并发、调得通分布式,却栽在最基础的配置细节上。这些看似不…...
IC设计工程师必看:ESD测试四大组合详解与实战避坑指南
IC设计工程师必看:ESD测试四大组合详解与实战避坑指南 在集成电路设计领域,静电放电(ESD)防护能力是衡量芯片可靠性的关键指标之一。据统计,超过35%的芯片失效案例与ESD事件相关,而设计阶段的防护策略直接影…...
