![在启动时通过 fstab 挂载 NTFS 分区仍然可以正常工作,但进程永远不会终止](https://linux22.com/image/197730/%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E9%80%9A%E8%BF%87%20fstab%20%E6%8C%82%E8%BD%BD%20NTFS%20%E5%88%86%E5%8C%BA%E4%BB%8D%E7%84%B6%E5%8F%AF%E4%BB%A5%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%EF%BC%8C%E4%BD%86%E8%BF%9B%E7%A8%8B%E6%B0%B8%E8%BF%9C%E4%B8%8D%E4%BC%9A%E7%BB%88%E6%AD%A2.png)
mount.ntfs
如果分区似乎已正确安装,为什么操作永远不会完成(继续烧毁 CPU)?这怎么调试呢?
在 Linux Mint 19.3 上,我的 fstab(如下)已经正常运行了很长时间。它安装了我与 Windows 共享的 NTFS 数据分区。好久没用windows了,肯定不是冬眠。启动时,它会正确安装驱动器(并绑定某些文件夹),并且我可以访问所有数据。像往常一样,它似乎完全有效,但这是我在网上找不到任何其他参考的地方。
登录后启动后,root 进程mount.ntfs
会继续消耗/消耗一个核心的 CPU 使用量。我无法弄清楚是什么原因造成的(因为它似乎已经安装了),但该过程确实来自 fstab: cat /proc/[id of mount.ntfs process]/cmdline
: /sbin/mount.ntfs /dev/sda7 /mnt/DATA -o rw,noatime,locale=en_US.utf8,umask=007,uid=1000,gid=1000
。
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda9 during installation
UUID=xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 noatime,errors=remount-ro 0 1
# /boot/efi was on /dev/sda2 during installation
UUID=xxxx-xxxx /boot/efi vfat umask=0077 0 1
# swap was on /dev/sda10 during installation
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0
# Data Partition, on /dev/sda7
UUID=xxxxxxxxxxxxxxxxx /mnt/DATA ntfs noatime,defaults,locale=en_US.utf8,umask=007,uid=1000,gid=1000 0 2
# Bind directories correctly
/mnt/DATA/Downloads /home/me/Downloads none bind,x-systemd.requires=/mnt/DATA 0 0
/mnt/DATA/Desktop/LinDesktop /home/me/Desktop none bind,x-systemd.requires=/mnt/DATA 0 0
/mnt/DATA/Documents /home/me/Documents none bind,x-systemd.requires=/mnt/DATA 0 0
/mnt/DATA/Media/Music /home/me/Music none bind,x-systemd.requires=/mnt/DATA 0 0
/mnt/DATA/Media/Pictures /home/me/Pictures auto bind,x-systemd.requires=/mnt/DATA 0 0
/mnt/DATA/Media/Videos /home/me/Videos auto bind,x-systemd.requires=/mnt/DATA 0 0
/mnt/DATA/Workspace /home/me/Workspace auto bind,x-systemd.requires=/mnt/DATA 0 0
看看 strace,它似乎成功地进行了写入和读取......这是值得的。
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
30.51 1.392332 3 518018 pread64
26.86 1.225702 3 416749 pwrite64
18.16 0.828499 4 232782 1 writev
15.72 0.717149 3 236584 read
7.22 0.329389 86 3846 fsync
0.98 0.044537 3 15188 sendto
0.55 0.025258 2 15188 getpid
------ ----------- ----------- --------- --------- ----------------
100.00 4.562866 1438355 1 total
我能找到的安装(在 syslog/dmesg 中)的唯一错误只是在启动时重新安装 root / ,早在安装其他驱动器之前:[ 4.155258] EXT4-fs (sda9): re-mounted. Opts: errors=remount-ro
编辑(在此处移动带有更多信息的注释):
如果我注释掉 fstab 中的安装并重新启动,它只会在用户登录后挂起。 (必须下降到 root shell 才能从启动重新启用安装)。umount -av
会说 /mnt/DATA 正忙且无法卸载。我认为这个问题也是我无法暂停的原因,因为 1 个进程(这个)拒绝休眠。
umount 将建议(从选项卡完成)/mnt/DATA 作为目标的挂载,但如果我终止 mount.ntfs 进程,那么它也会将其作为要卸载的挂载删除。现在我仔细观察,有一个 dconf 服务从一开始就使用大量 CPU 运行,我不知道它为什么/在做什么,如果我强行杀死挂载,它(如前所述)会飙升。 ntfs进程。
尝试强制卸载sudo umount -f /mnt/DATA
也会报告目标正忙;这会导致该mount.ntfs
过程消失,但会使dconf-service
尖峰变热。它的 /proc/cmdline 只是/usr/lib/dconf/dconf-service
;我不知道如何获得更多关于它在这个问题上实际做了什么的信息。此卸载(和其他操作)也会导致此消息发送到 stderr:fatal: unable to access '/[path to now-broken symlink to drive subfolder]': Transport endpoint is not connected