cndaqiang / dell-14-7460-hackintosh

dell燃7000 I代 黑苹果记录 如何使用MacOS Issues
2 stars 0 forks source link

文件系统 分区 读写 NTFS #1

Open cndaqiang opened 5 years ago

cndaqiang commented 5 years ago

🙂我劝你别让MAC和Win共用一块分区

权限问题气死人 在win下,把mac修改过的文件所在文件夹整体复制一遍,复制体没有权限问题

cndaqiang commented 5 years ago

###########################

~更推荐下面的brew方法~

使用brew也可以,但是挂载后,编辑器不能保存文本,但是vscode能,迷? ##############################

使用fstab挂载windows系统分区

查看磁盘名称

cndaqiangdeMacBook-Pro:data cndaqiang$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *128.0 GB   disk0
   1:                        EFI ESP                     524.3 MB   disk0s1
   2:         Microsoft Reserved                         134.2 MB   disk0s2
   3:       Microsoft Basic Data OS                      113.5 GB   disk0s3
   4:           Windows Recovery                         514.9 MB   disk0s4
   5:           Windows Recovery                         12.1 GB    disk0s5
   6:           Windows Recovery                         1.2 GB     disk0s6

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *512.1 GB   disk1
   1:                        EFI                         1.0 GB     disk1s1
   2:       Microsoft Basic Data data                    322.1 GB    #这个是我要挂载的data分区
   3:                 Apple_APFS Container disk2         179.0 GB   disk1s3

/dev/disk2 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +179.0 GB   disk2
                                 Physical Store disk1s3
   1:                APFS Volume mac                     14.7 GB    disk2s1
   2:                APFS Volume Preboot                 45.5 MB    disk2s2
   3:                APFS Volume Recovery                509.7 MB   disk2s3
   4:                APFS Volume VM                      1.1 GB     disk2s4

查看UUID,为了使用UUID挂载(也可以使用磁盘名挂载)

cndaqiangdeMacBook-Pro:data cndaqiang$ diskutil info disk1s2 | grep UUID
   Volume UUID:               573A8178-EB46-4474-8DF9-4A822A2CB2EA #这个是我们想要的
   Disk / Partition UUID:     44E23EA3-9B16-4598-A2FD-38A0DC4017DC

卸载与可读写的形式挂载磁盘

sudo umount /dev/disk1s2 
sudo umount /dev/disk1s2 
#需要先mkdir 一个~/data
sudo mount -t ntfs -o nobrowse,rw /dev/disk1s2 /Users/cndaqiang/data/

添加到开机自动挂载

sudo vi /etc/fstab中加入

#UUID=UUID名 挂载目录(需提前mkdir) 格式 读写,自动挂载,ntfs必须加的选项
UUID=573A8178-EB46-4474-8DF9-4A822A2CB2EA /Users/cndaqiang/data ntfs rw,auto,nobrowse
cndaqiang commented 5 years ago

MAC 读写NTFS分区文件 Input/output error

类似于

rm: cannot remove `.Trash-1000/files/Anglit.Mipooee/J.wma': Input/output error

以及文本编辑等app不可写入文件

解决方案

在windows下磁盘检查,修复ntfs的错误即可

cndaqiang commented 5 years ago

brew 实现读写ntfs

brew install ntfs-3g
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs

重启,使用brew安装的挂载器挂载,就不用fstable那么复杂的设置了
参考mac使用开源方案实现读取ntfs
恢复

sudo cp  /sbin/mount_ntfs.original  /sbin/mount_ntfs

!!!我把/sbin/mount_ntfs误删了,居然还可以支持fstab形式的挂载

cndaqiang commented 5 years ago
sudo rm /sbin/mount_ntfs #使用系统默认,不可读写, fatable可读写
sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs  #使用brew

猜测 使用brew 开机后重新挂载ntfs分区(noauto) 果然usb开机自动挂载,文本都不可以

什么鬼现象

当使用brew替代了默认的mount_ntfs后 系统默认挂载的能读写,但是文本编辑器会报无法写入
但是,可以用mount再次挂载(不用卸载),从挂载的入口进去文本编辑器读写无误
可以挂载命令无限次。。。。。,有无限多个入口!!!
每次卸载,卸载上一次的挂载入口

sudo mount -t ntfs /dev/disk0s2 ~/data
sudo mount -t ntfs /dev/disk0s2 ~/data1
sudo umount /dev/disk0s2 
sudo umount /dev/disk0s2 

目前方案

fatab禁止本地ntfs自动挂载noauto

UUID=573A8178-EB46-4474-8DF9-4A822A2CB2EA /Users/cndaqiang/data ntfs rw,noauto,nobrowse
UUID=9D32AD60-4F15-4327-AC63-BCE07DE0F6A2 /Users/cndaqiang/data ntfs rw,noauto,nobrowse

开机启动挂载命令,使用brew版的mount_ntfs

data=$(diskutil list |grep "Microsoft Basic Data data"| awk '{printf  $NF }')
sudo mount -t ntfs /dev/$data /Volumes/data
sudo mount -t ntfs /dev/$data /Users/cndaqiang/data
winos=$(diskutil list |grep "Microsoft Basic Data OS"| awk '{printf  $NF }')
sudo mount -t ntfs /dev/$winos  /Volumes/OS

可在Finder卸载上述挂载