# ntfsfix命令

# 问题背景

最近遇到了一个什么问题呢,linux自动挂载硬盘后,变成了只读文件系统,无法创建和修改文件
查看挂载信息,

mount | grep data

# /dev/sdb3 on /media/lx/data type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

手动umount然后mount时报错,

# The disk contains an unclean file system (0, 0).
# Metadata kept in Windows cache, refused to mount.
# Falling back to read-only mount because the NTFS partition is in an
# unsafe state. Please resume and shutdown Windows fully (no hibernation
# or fast restarting.)
# Could not mount read-write, trying read-only
# ntfs-3g-mount: failed to access mountpoint /media/lx/data: No such file or directory

以上报错的背景是,这个电脑是双系统,这个分区在windows下也能访问,从报错信息来看是Metadata kept in Windows cache, refused to mount.磁盘的元数据没有被正常的释放。查了很多资料都没有讲明白。

# 解决办法

ubuntu论坛上搜到一个有用的回答https://askubuntu.com/questions/462381/cant-mount-ntfs-drive-the-disk-contains-an-unclean-file-system

使用ntfsfix命令来对有问题的分区进行修复

sudo ntfsfix /dev/sdb3

修复后,再次挂载

mount /dev/sdb3 /media/mount_point

# 命令详解

ntfsfix是一个用于修复NTFS文件系统的命令行工具,属于ntfs-3g软件包。它主要用于在Linux环境中处理NTFS分区的常见问题,尤其是在Windows系统未正常关机后,导致NTFS分区出现不一致或“脏”标志的情况。

ntfsfix命令可以执行以下操作:

  • 修复基本的NTFS不一致性
  • 重置NTFS日志文件
  • 清除“脏”标志,使得NTFS分区可以在Linux下正常挂载
    安装方法
    在使用ntfsfix之前,需要确保ntfs-3g软件包已安装。可以通过以下命令在Ubuntu或Debian系统上安装:
sudo apt-get install ntfs-3g

NTFS(New Technology File System)是由微软开发的一种文件系统,主要用于Windows NT及其后续版本(如Windows 2000XPVista、7、8和10)。它于1993年首次引入,旨在取代较旧的FAT(File Allocation Table)文件系统,提供更高的性能、可靠性和安全性。

# reference