在Mac上插入一块移动 NTFS 硬盘(或U盘)时, 默认情况下此硬盘是仅可读的; 也就是说只能读取数据, 而不能写入数据
默认情况
NTFS 格式主要是 Windows 的文件系统格式, 如果在 Mac 下使用时, 默认只可以把文件拷贝出来, 但是无法写入
用过一些APP, 例如:
Paragon NTFS for MAC
, Tuxera NTFS for Mac
, 不足之处在于要安装后需要重启, 收费, 最后好像还卸载不干净…例如我的一块移动硬盘, 有2个分区: swapper 和 storehouse
分别使用
df
和 diskutil
命令进行查看$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk1s1 234Gi 202Gi 27Gi 89% 2354578 9223372036852421229 0% /
devfs 192Ki 192Ki 0Bi 100% 664 0 100% /dev
/dev/disk1s4 234Gi 3.0Gi 27Gi 10% 5 9223372036854775802 0% /private/var/vm
map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
/dev/disk2s1 120Gi 40Gi 80Gi 34% 16631 84099986 0% /Volumes/swapper
/dev/disk2s2 178Gi 138Gi 40Gi 78% 354782 42125198 1% /Volumes/storehouse
默认会被挂载到
/Volumes
目录下, 桌面也能同时看到相应的磁盘图标$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_APFS Container disk1 250.8 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +250.8 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 217.4 GB disk1s1
2: APFS Volume Preboot 24.0 MB disk1s2
3: APFS Volume Recovery 519.6 MB disk1s3
4: APFS Volume VM 3.2 GB disk1s4
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *320.1 GB disk2
1: Windows_NTFS swapper 128.8 GB disk2s1
2: Windows_NTFS storehouse 191.2 GB disk2s2
插入硬盘后, 即使已经 [推出] 硬盘了(线还没拔), 同样可以使用
diskutil
命令查看到如上内容, 此时是可以使用 mount
命令进行挂载的重新挂载磁盘
直接上代码
ntfs_mount.sh
#!/bin/bash
#author:xu3352@gmail.com
#desc: re-mount NTFS disk as rw type
TMP_SH=/tmp/ntfs_mount_rw_tmp.sh
diskutil list | grep NTFS | awk '{print "umount /Volumes/"$3"\n", "mkdir -p ~/Desktop/"$3"\n", "sudo mount -t ntfs -o rw,auto,nobrowse", "/dev/"$6, "~/Desktop/"$3"\n"}' > $TMP_SH
sudo sh $TMP_SH
步骤详解:
- 卸载硬盘
- 对于待挂载的磁盘, 如果没有对应的目录, 这需要先创建
- 挂载磁盘到指定的目录
记得给可执行权限:
chmod 755 ntfs_mount.sh
, 执行时需要输入一次密码不足之处
如果手动在桌面右键 [推出] 硬盘后, 桌面会保留硬盘对应的文件夹, 删除时一般还需要输入密码才行
当然, 也是可以做成脚本的:
ntfs_umount.sh
#!/bin/bash
#author:xu3352@gmail.com
#desc: umount NTFS disk in Desktop dir
TMP_SH=/tmp/ntfs_umount_tmp.sh
df -h | grep /Desktop/ | awk '{print $9}' > $TMP_SH
grep /Desktop/ $TMP_SH | xargs -n 1 sudo umount
grep /Desktop/ $TMP_SH | xargs -n 1 rm -rf
Mac 挂载可读写 NTFS 硬盘
之前遇到别人的 U 盘插入到 Mac 上居然无法写入文件,但是可以读取。当时没有仔细研究,后来买个移动硬盘,才知道了不同的格式化选项会在不同平台有差异。这里主要记录不借助第三方软件的情况下在 Mac 上挂载可读可写的硬盘。以后遇到 NTFS 格式的 U 盘也可以拷贝数据给别人。
不同格式
移动硬盘格式化的文件系统格式一般有 Fat32、NTFS、HFS+、exFAT 等。
其中 Fat32 的缺点就是不支持 4g 以上的文件;HFS+ 是 Mac 专有的文件系统格式;exFAT 不稳定,据说会丢数据。所以我选择 NTFS,NTFS 在 win 平台可读可写,但是在 Mac 平台就只能读,这其实是 macos 屏蔽了而已。
其中 Fat32 的缺点就是不支持 4g 以上的文件;HFS+ 是 Mac 专有的文件系统格式;exFAT 不稳定,据说会丢数据。所以我选择 NTFS,NTFS 在 win 平台可读可写,但是在 Mac 平台就只能读,这其实是 macos 屏蔽了而已。
挂载
上面说了其实 macos 已经具备了挂载可读可写 NTFS 硬盘的功能,只是需要手动开启。
首先插入 U 盘,查看挂在情况。
1
|
mount
|
然后取消挂载 U 盘。
1
|
sudo umount /Volumes/KINGSTON
|
在桌面创建文件夹 ntfs,为了让 U 盘重新挂在到这里。重新挂载即可。
1
|
sudo mount -t ntfs -o rw,auto,nobrowse /dev/disk2s1 ~/Desktop/ntfs
|
rw
参数代表可读写。auto
参数代表自动检测文件系统。nobrowse
代表不在 finder 里面显示挂载情况,必须要有这个参数。当然不用
-t
参数指定文件系统格式,也可以用 mount_ntfs
命令,都是一样的效果。
1
|
sudo mount_ntfs -o rw,auto,nobrowse /dev/disk2s1 ~/Desktop/ntfs
|