如何在Ubuntu重启时自动执行ntfsfix修复指定NTFS分区?
我太懂这种糟心的情况了——双系统下Windows的快速启动或者休眠总能把NTFS分区搞成只读状态,每次都要手动敲命令修复,还要反复挂载,实在太折腾人了!下面给你两个靠谱的解决方案,选一个适合你的就行:
方案一:用systemd服务在开机时自动运行ntfsfix
这个方法会在Ubuntu启动、挂载分区之前自动执行ntfsfix,帮你搞定分区的只读问题。
创建一个systemd服务配置文件
打开终端,执行命令编辑服务文件:sudo nano /etc/systemd/system/ntfsfix-work.service然后把下面的内容粘贴进去,注意对应你自己的分区路径和挂载点(你的是
/dev/nvme0n1p4和/media/Work):[Unit] Description=Fix NTFS partition /dev/nvme0n1p4 before mount After=local-fs-pre.target Before=local-fs.target DefaultDependencies=no [Service] Type=oneshot ExecStart=/usr/bin/ntfsfix /dev/nvme0n1p4 ExecStartPost=/usr/bin/mount -o rw,uid=1000,gid=1000,umask=022,exec /dev/nvme0n1p4 /media/Work RemainAfterExit=yes [Install] WantedBy=multi-user.target简单解释下:
ExecStart负责修复分区,ExecStartPost负责修复完成后自动挂载分区,确保它以读写模式生效。启用并启动服务
执行下面的命令让系统识别这个服务,并且设置开机自启:sudo systemctl daemon-reload sudo systemctl enable ntfsfix-work.service之后重启Ubuntu,分区就会自动完成修复并挂载成读写模式了。
方案二:修改fstab挂载选项,自动处理休眠文件
其实还有更简单的方法——直接在/etc/fstab里添加remove_hiberfile选项,这样Ubuntu挂载时会自动移除Windows的休眠文件,不需要手动跑ntfsfix。
编辑fstab文件
打开终端执行:sudo nano /etc/fstab把你原来的那条挂载条目修改成:
/dev/nvme0n1p4 /media/Work ntfs-3g defaults,uid=1000,gid=1000,umask=022,exec,remove_hiberfile 0 0这里把
ntfs改成了ntfs-3g(Ubuntu现在默认用这个工具挂载NTFS分区),并且加上了remove_hiberfile选项——它会自动删除Windows的休眠文件,让分区能正常以读写模式挂载。测试挂载
执行下面的命令重新挂载分区,验证是否生效:sudo umount /dev/nvme0n1p4 sudo mount /media/Work之后重启系统,分区应该就能自动以读写模式挂载了。
⚠️ 注意:使用remove_hiberfile选项会丢失Windows的休眠状态,下次进Windows需要正常开机,而不是从休眠恢复。不过既然你本来就不想每次进Windows关机,这个应该是可以接受的。
备注:内容来源于stack exchange,提问作者Alex

