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

bash 复制代码
chmod +x ntfs.sh

如何使用脚本

  • 首先必须插入硬盘。

  • 打开(cd)脚本所在目录,执行脚本:

bash 复制代码
./ntfs.sh
  • NTFS重新挂载成功之后,会自动打开Finder所在目录。

参考资料

许可证

GNU Lesser General Public License v3.0

脚本内容ntfs.sh

请把脚本代码复制下来,以.sh脚本后缀保存到电脑上,在终端执行此脚本。

bash 复制代码
#!/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
then
    echo " "
else
    echo "---当前不存在只读方式的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
then
    echo "[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)"' >> ~/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
else
    echo "[Homebrew]已经安装。"
    echo "[Homebrew] is installed"
fi

# 检查 brew 中是否已安装 "macfuse"
if grep -q "macfuse" <<< "$(brew list)"
then
    echo "[macfuse]已安装"
    echo "[macfuse] is installed"
else
    echo "[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)"
then
    echo "[ntfs-3g-mac]已安装"
    echo "[ntfs-3g-mac] is installed"
else
    echo "[ntfs-3g-mac]尚未安装,即将开始自动安装"
    echo "[ntfs-3g-mac] is not installed. It'll start installing soon."
    brew tap gromgit/homebrew-fuse
    brew 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 
相关推荐
和沐阳学逆向2 小时前
iOS逆向_古法逆向_Instagram最新版抓包
macos·ios·cocoa
自学AI的鲨鱼儿7 小时前
mac npm 安装 codex 报错 npm ENOTEMPTY
macos·npm·codex
Sephiroth.Ma14 小时前
Mac 提示“Docker 已损坏,无法打开”?我这样排查后 10 分钟修好
macos·docker·容器
量子炒饭大师15 小时前
【OpenClaw修炼宝典】—— 【macOS安装篇】想玩《爪子船长》复刻版却卡在安装?OpenClaw 从零环境搭建与编译全攻略 (小白避坑指南)
macos·openclaw·小龙虾·龙虾
不才小强15 小时前
macOS 屏幕录制开发完全指南:ScreenCaptureKit与音频采集实战
macos·音视频
ShiLuoHeroKing1 天前
Mole:面向专业用户的Mac系统清理开源方案
macos
The森2 天前
macOS 26(M芯片)部署 cocos2d-x(C++)全链路指南——Xcode + Rosetta
c++·经验分享·笔记·macos·xcode·cocos2d
Roc-xb2 天前
Mac安装命令行工具的时候弹出:不能安装该软件,因为当前无法从软件更新服务器获得”的错误提示。
macos
带娃的IT创业者2 天前
课程表系统设计:iCalendar 标准与家庭生活日程管理
macos·生活·xcode·课程表·icalendar·日程管理·智能纠错