记一次ntfs3挂载移动硬盘问题

问题记录

我有一块2T的移动硬盘,系统下显示是sda,但是sda2 的 ntfs 分区没法用 ntfs3挂载,只能通过ntfs-3g 挂载,但是 nvme1n1p3 又可以通过 ntfs3挂载。
之前一直没在意,就按照 nfts-3g 挂载使用了,国庆后面几天有点无聊了,又想整一下。

NAME        FSTYPE FSVER LABEL     UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                    
├─sda1                                                                                 
└─sda2      ntfs         游戏      4AB8C892B8C87E47                          1T    44% /share/game
nvme0n1                                                                                
├─nvme0n1p1 vfat   FAT32           5161-B451                              89.5M    82% /boot
└─nvme0n1p2 btrfs        HSC40002T eb5854b8-8187-4c50-a209-ced5cf0add4b  515.2G    72% /var/log
                                                                                       /var/lib/libvirt/images
                                                                                       /var/cache
                                                                                       /swap
                                                                                       /home
                                                                                       /.snapshots
                                                                                       /
nvme1n1                                                                                
├─nvme1n1p1                                                                            
├─nvme1n1p2 ntfs                   B0A807A5A8076964                                    
├─nvme1n1p3 ntfs                   0C785B6D785B5494                        844G    11% /share/Windows
└─nvme1n1p4 ntfs                   D2884B8D884B6F53  

下面是mount 的输出

/dev/nvme1n1p3 on /share/Windows type ntfs3 (rw,nosuid,nodev,relatime,uid=1000,gid=1000,dmask=0000,fmask=0000,iocharset=utf8,user)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=9658352k,nr_inodes=2414588,mode=700,uid=1000,gid=1000,inode64)
portal on /run/user/1000/doc type fuse.portal (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
/dev/sda2 on /share/game type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,user)

手动指定 ntfs3挂载会出错,文件目录确定是有的,并且dmesg 也没有相关的输出。指定 ntfs-3g 挂载是正常的。

➜  ~ sudo umount /share/game 
[sudo] sukanka 的密码:
➜  ~ sudo mount -t ntfs3 /dev/sda2 /share/game 
mount: /share/game: fsconfig() failed: 没有那个文件或目录.
       dmesg(1) may have more information after failed mount system call.
➜  ~ sudo mount -t ntfs-3g /dev/sda2 /share/game

问题解决

本来是想发出来问一下的,结果自己找相关帖子试了下就解决了。根据这个帖子里面给的 wiki链接,我重启到windows 下跑了一下 chkdsk,确实扫描出来很多错误,然后执行 chkdsk D: /F 修复就好了。(虽然实际上可能不用重启到win).

不过我到现在也没有想明白为什么 ntfs-3g 挂载就是正常的,没有提示只读,也没有提示我要跑 fsck ,而 ntfs3 就直接给一个不知所云的报错。

看起来是因为 NTFS 有错误导致 ntfs3 挂载失败,ntfs-3g 会尝试force或者只读挂载,ntfs3不会。这个报错确实比较诡异,也许是因为 mount 调用失败了?
试试关闭快速启动,也许会好点。

快速启动一直是关闭的。