当前位置:   article > 正文

#免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程_mac电脑如何写入ntfs

mac电脑如何写入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所在目录。

参考资料

许可证

GNU Lesser General Public License v3.0

脚本内容ntfs.sh

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

  1. #!/bin/bash
  2. # charset=utf-8
  3. # @author: aqvdrt
  4. # @date: 20240206
  5. # 功能:在搭载Apple芯片的Mac上,取消NTFS硬盘默认的只读挂载方式,改成可读写的挂载方式。
  6. #
  7. # 【重要】执行此脚本的前置条件:
  8. # 1.将安全策略设置为“降低安全性”,并允许用户管理来自被认可开发者的内核扩展。具体步骤参考:https://support.apple.com/guide/mac-help/mchl768f7291/mac
  9. # - 按住触控ID或电源按钮,至少10秒,直到出现“正在载入启动选项”(适用Apple芯片)。
  10. # - 点按“选项”-“继续”-(左上角)“实用工具”-“启用安全性实用工具”-“安全策略”。
  11. # - 选择[降低安全性],勾选“允许用户管理来自被认可开发者的内核扩展”,点击[好]。
  12. # - 设置成功之后,点击屏幕左上角的苹果标志重启电脑,重启即可
  13. # 2.初次运行此脚本前,需要运行以下指令授权此脚本(假设此脚本名称是ntfs.sh):`chmod +x ntfs.sh`
  14. # 3.必须要先插入硬盘再执行此脚本.
  15. #
  16. # 其他说明:
  17. # - 该功能需要借助第三方软件,此脚本会自动检查或安装这些软件:homebrew,macfuse,ntfs-3g-mac。
  18. # - (可选)如果在中国brew安装速度太慢,可以尝试修改brew镜像源:https://ken.io/note/macos-homebrew-install-and-configuration
  19. # =============以下是需要执行的指令================
  20. # 第一步:检查是否有只读的NTFS硬盘
  21. if mount | grep ntfs | grep read-only
  22. then
  23. echo " "
  24. else
  25. echo "---当前不存在只读方式的NTFS硬盘.---"
  26. echo "---No read-only NTFS hard drive found.---"
  27. mount | grep -E 'ntfs|macfuse'
  28. exit
  29. fi
  30. # 第二步:确保所需环境已经安装
  31. echo "[重要] 请确保安全策略已设置为“降低安全性”,并允许用户管理来自被认可开发者的内核扩展。"
  32. echo "[IMPORTANT] Make sure the security options is set to 'Reduced Security', and allow user management of kernel extensions from identified developers"
  33. echo "[重要] 要先将硬盘插入到电脑且识别成功,才可以重新挂载成功。"
  34. echo "[IMPORTANT] The hard drive must be connected to the computer and recognized successfully before it can be remounted successfully."
  35. # 关闭系统的Gatekeeper安全功能,才能运行从非官方来源(如App Store和已知开发者)安装的应用程序
  36. sudo spctl --master-disable
  37. # 检查homebrew,如果不存在就安装
  38. if ! command -v brew &> /dev/null
  39. then
  40. echo "[Homebrew]尚未安装,即将开始自动安装。官网:https://brew.sh/"
  41. echo "[Homebrew] is not installed. It'll start installing soon. website: https://brew.sh/"
  42. # 使用官网的脚本自动安装homebrew
  43. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  44. # 全局配置brew使其生效
  45. echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
  46. eval "$(/opt/homebrew/bin/brew shellenv)"
  47. else
  48. echo "[Homebrew]已经安装。"
  49. echo "[Homebrew] is installed"
  50. fi
  51. # 检查 brew 中是否已安装 "macfuse"
  52. if grep -q "macfuse" <<< "$(brew list)"
  53. then
  54. echo "[macfuse]已安装"
  55. echo "[macfuse] is installed"
  56. else
  57. echo "[macfuse]尚未安装,即将开始自动安装"
  58. echo "[macfuse] is not installed. It'll start installing soon."
  59. brew install --cask macfuse
  60. fi
  61. # 检查 brew 中是否已安装 "ntfs-3g-mac"
  62. if grep -q "ntfs-3g-mac" <<< "$(brew list)"
  63. then
  64. echo "[ntfs-3g-mac]已安装"
  65. echo "[ntfs-3g-mac] is installed"
  66. else
  67. echo "[ntfs-3g-mac]尚未安装,即将开始自动安装"
  68. echo "[ntfs-3g-mac] is not installed. It'll start installing soon."
  69. brew tap gromgit/homebrew-fuse
  70. brew install ntfs-3g-mac
  71. fi
  72. # 第三步:开始重新挂载硬盘
  73. echo "============读写NTFS的环境已准备好============"
  74. echo "============It's ready to change NTFS mount method============"
  75. echo "开始重新挂载NTFS硬盘,将只读硬盘改成读写方式,成功之后会自动打开finder"
  76. echo "Starting to change NTFS to read-write mode. Finder will be opened once succeed."
  77. mount | grep ntfs | grep read-only | while read -r line;
  78. do
  79. # line: /dev/disk4s1 on /Volumes/EXTERNAL_USB (ntfs, local, nodev, nosuid, read-only, noowners, noatime, nobrowse)
  80. ((index++))
  81. echo "【第${index}个NTFS设备】------------------:"
  82. echo "【${index}-NTFS device】------------------:"
  83. echo "原始挂载方式:"${line}
  84. echo "Original mount:"${line}
  85. # 提取设备真实地址
  86. device_path=`echo $line | awk '{print$1}'`
  87. echo "设备真实地址:"${device_path}
  88. echo "Device real path:"${device_path}
  89. # 提取设备挂载地址
  90. mount_path=`echo $line | awk '{print$3}'`
  91. echo "设备挂载地址:"${mount_path}
  92. echo "Device mount path:"${mount_path}
  93. # 提取设备挂载的根目录
  94. mount_dir=`dirname $mount_path`
  95. # 提取设备挂载名称
  96. mount_name=`basename $mount_path`
  97. echo "设备挂载名称:"${mount_name}
  98. echo "Device mount name:"${mount_name}
  99. # 取消原有的硬盘挂载方式
  100. sudo umount $device_path
  101. # 以可读写方式重新挂载硬盘
  102. sudo -S $(which mount_ntfs) ${device_path} ${mount_path} # 此命令可以成功修改硬盘文件内容
  103. # sudo -S $(which ntfs-3g) ${device_path} ${mount_path} -o local -o allow_other -o auto_xattr -o volname=${mount_name} # 此命令无法成功修改硬盘文件内容
  104. echo "新设备[${mount_name}]已可读写!"
  105. echo "即将自动打开finder (${mount_path})..."
  106. echo "Hard drive [${mount_name}] is allowed to write and read!"
  107. echo "Opening finder (${mount_path})..."
  108. # 打开硬盘所挂载的根目录
  109. open ${mount_dir}
  110. echo '----------------------------------'
  111. echo " "
  112. done

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/875424
推荐阅读
相关标签
  

闽ICP备14008679号