#免费 苹果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 

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

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

相关文章

C#在既有数组中插入另一个数组:Array.Copy方法 vs 自定义插入方法

目录 一、使用的方法 1.使用Array.Copy方法 2.Copy(Array, Int32, Array, Int32, Int32) 3. 使用自定义的方法 二、实例 1.示例1&#xff1a;使用Array.Copy方法 2.示例2&#xff1a;使用自定义的方法 一、使用的方法 1.使用Array.Copy方法 首先定义了一个名为InsertAr…

CCF-CSP 202206-2 寻宝!大冒险!

CCF-CSP 202206-2 寻宝&#xff01;大冒险&#xff01; &#x1f638;题目要求&#x1f408;‍⬛题目背景&#x1f408;‍⬛问题描述&#x1f408;‍⬛输入格式&#x1f408;‍⬛输出格式&#x1f408;‍⬛样例说明&#x1f3b6;样例1输入&#x1f3b6;样例1输出&#x1f3b6;样…

容器库(4)-std::forward_list

std::forward_list是可以从任何位置快速插入和移除元素的容器&#xff0c;不支持快速随机访问&#xff0c;只支持正向迭代。 本文章的代码库&#xff1a; https://gitee.com/gamestorm577/CppStd 成员函数 构造、析构和赋值 构造函数 可以用元素、元素列表、迭代器或者另…

qt学习:arm摄像头+c调用v412框架驱动+qt调用v412框架驱动 显示摄像头画面

目录 跟内核进行数据通信的函数 编程步骤 c代码 头文件 打开摄像头文件 /dev/videox 获取当前主机上&#xff08;开发板&#xff09;摄像头列表信息 设置当前摄像头的画面格式 比如说 设置 采集图像的宽度为640 高度 480 在内核空间中&#xff0c;申请一个缓冲区队列…

【 buuctf-面具下的 flag】

直接 binwalk 提取图片内容其中 zip 为伪加密&#xff08;如下图&#xff09;&#xff0c;在 macOS 上当我运行 binwalk -e 指令来提取图片中内容是&#xff0c;zip可以自动解压出来 flag.vmdk&#xff0c;不需要修改压缩源文件目录区的全局方式位标记值。 在 kali Linux 下&am…

RabbitMQ-4.MQ的可靠性

MQ的可靠性 4.MQ的可靠性4.1.数据持久化4.1.1.交换机持久化4.1.2.队列持久化4.1.3.消息持久化 4.2.LazyQueue4.2.1.控制台配置Lazy模式4.2.2.代码配置Lazy模式4.2.3.更新已有队列为lazy模式 4.MQ的可靠性 消息到达MQ以后&#xff0c;如果MQ不能及时保存&#xff0c;也会导致消…

论文阅读-Automated Repair of Programs from Large Language Models

文章主旨&#xff1a;研究了Codex自动生成的程序中的错误&#xff0c;并探讨了现有的程序修复&#xff08;APR&#xff09;工具以及新发布的Codex-e是否能够修复自动生成的有缺陷的程序。 现在基于大语言模型&#xff0c;输入自然语言&#xff0c;生成代码的应用非常普遍。但是…

golang 中间件使用

1、自定义中间件函数 func CustomMiddleware() gin.HandlerFunc {return func(c *gin.Context) {// 在请求之前执行的逻辑fmt.Println("执行自定义中间件 - 请求之前")// 调用链中的下一个处理程序c.Next()// 在请求之后执行的逻辑fmt.Println("执行自定义中间…

立足智能存取解决方案|HEGERLS智能托盘四向车储存制动能量 实现能源回收

对于商业配送和工业生产的企业而言&#xff0c;如何能高效率、低成本进行低分拣、运输、码垛、入库&#xff0c;用以提升仓库空间的利用效率&#xff0c;是现在大多企业急需要解决的行业痛点。对此&#xff0c;为了解决上述痛点&#xff0c;近年来&#xff0c;物流仓储集成商、…

常用TS总结

基本用法 普通 const num: number 10const isStop: boolean falseconst title: string 常用TS总结const curName: null nullconst curType: undefined undefinedconst birthday: Date new Date() 对象 // typetype LoginParams {account: string}// interfaceinterfac…

docker常用10条容器操作命令

Docker 中一些常用的容器操作命令&#xff0c;我们可以根据需要使用这些命令来管理和操作 Docker 容器。我们这次以Hell-world这个镜像为例来说明&#xff1a; 1. docker pull hello-world #拉取hell-world镜像 2. docker images # 查看本地拉取的镜像 3. docker run hello…

Maven:项目无法产生Maven Dependencies且无法update project报cannot nest错误

找自己出错项目的.classpath文件&#xff0c;打开&#xff0c;ctrlf&#xff0c;找是否有以下文件&#xff0c;如果没有在末尾加进去&#xff0c;再refresh项目即可&#xff1a; <classpathentry kind"con" path"org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINE…

【python】绘制爱心图案

以下是一个简单的Python代码示例&#xff0c;它使用turtle模块绘制一个代表爱和情人节的心形图案。 首先&#xff0c;请确保计算机上安装了Python和turtle模块。然后&#xff0c;将以下代码保存到一个.py文件中&#xff0c;运行它就可以看到爱心图案的绘制过程。 import turt…

20240203在Ubuntu20.04.6下配置stable-diffusion-webui.git

20240203在Ubuntu20.04.6下配置stable-diffusion-webui.git 2024/2/3 11:55 【结论&#xff1a;在Ubuntu20.04.6下&#xff0c;生成512x512分辨率的图像&#xff0c;大概需要11秒钟&#xff01;】 前提条件&#xff0c;可以通过技术手段上外网&#xff01;^_首先你要有一张NVID…

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024) 会议简介 2024年清洁能源、环境与智慧城市国际研讨会&#xff08;ISCEESC2024&#xff09;将在中国丽江举行。本次会议主要围绕清洁能源、环境和智慧城市等研究领域&#xff0c;旨在为该研究领域的专家学者提供一个国际…

用云手机打造tiktok账号需要注意些什么?

随着tiktok平台的火热&#xff0c;越来越多的商家开始尝试更高效的tiktok运营方法。其中&#xff0c;tiktok云手机作为一种新科技引起了很多人的注意&#xff0c;那么用云手机运营tiktok需要注意些什么&#xff1f;下文将对此进行详细解析。 1. 不是所有的云手机都适合做tiktok…

【分享】如何运用数字I/O来保护继电器

1.简述 在开关系统中&#xff0c;短路或者是开路的情况下&#xff0c;由于存在着额外的电流或者是电压&#xff0c;继电器往往会过载。所有的继电器都有一个最大的承载电流和热切换功率&#xff0c;如果超出了这个范围&#xff0c;会增加继电器焊接在一起的风险&#xff0c;从…

项目02《游戏-10-开发》Unity3D

【完成本集功能后共享1-10集整套代码】 基于 项目02《游戏-09-开发》Unity3D &#xff0c; 任务&#xff1a;传送至其他场景&#xff0c; 首先在场景中加入传送门&#xff0c; 设置人物标签&#xff0c; using UnityEngine; using UnityEngine.SceneManagement; u…

代码随想录算法训练营第三十七天|1049. 最后一块石头的重量 II ,494. 目标和 , 474.一和零

1049. 最后一块石头的重量 II 视频讲解&#xff1a;https://www.bilibili.com/video/BV14M411C7oV https://programmercarl.com/1049.%E6%9C%80%E5%90%8E%E4%B8%80%E5%9D%97%E7%9F%B3%E5%A4%B4%E7%9A%84%E9%87%8D%E9%87%8FII.html 本题其实就是尽量让石头分成重量相同的两堆&a…

2024-02-05(Hive)

1.Hive中抽样表数据 对表进行随机抽样是非常有必要的。 大数据体系下&#xff0c;在真正的企业环境中&#xff0c;很容易出现很大的表&#xff0c;比如体积达到TB级别的。 对这种表一个简单的SELECT * 都会非常的慢&#xff0c;哪怕LIMIT 10想要看10条数据&#xff0c;也会走…