ntfs-3g 里面的 ntfsfix 并没有真正的 NTFS 文件系统修复功能,它只会简单地移除 dirty 标记,假装修好,接着将就用。这样会造成错误积累,最终危及数据安全。所以,NTFS 文件系统出现问题,一般建议回到 Windows 下用 chkdsk 工具检查修复。
ntfs-3g 对有 dirty 标记的问题 NTFS 分区也会假装看不到问题,继续挂载。而内核里的 ntfs3 模块则出于数据安全考虑直接拒绝挂载。
这里找到了一组来自 Paragon 的 NTFS/HFS+ 工具,包括:
chkdsk:检查 NTFS/HFS+ 分区完整性并与 Windows 的 chkdsk.exe 一样真正修复文件系统错误
fsck.ntfs:指向 chkdsk 的软链接,检查 NTFS 分区完整性并与 Windows 的 chkdsk.exe 一样真正修复文件系统错误
fsck.hfs+:指向 chkdsk 的软链接,检查 HFS+ 分区完整性并修复错误
mkfs.ntfs:指向 chkdsk 的软链接,创建并格式化 NTFS 分区(这个会跟 ntfs-3g 中指向 mkntfs 的软链接 mkfs.ntfs 冲突,因为文件名相同)
mkfs.hfs+:指向 chkdsk 的软链接,创建并格式化 HFS+ 分区
其实就是 Paragon 的 UFSD 工具集。
代码: 全选
somebody@somewhere:~$ sudo chkdsk
Check NTFS/HFS+ partition integrity and fix errors
Usage: chkdsk device [-a]
-fs:ntfs Force to treat volume as NTFS.
-fs:hfs Force to treat volume as HFS+/HFSJ.
-n Run chkdsk in read-only mode.
-a Auto check. Full check if volume is dirty
-b:size Override the default block (sector) size. Default settings
are strongly recommended for general use.
One can use 512, 1024, 2048, 4096.
-m:size Memory limit
-h Display this help
--short Check the minimum
--safe Do not try to fix errors;
Only clear 'dirty' flag if there are no errors
--help Display this help
--showminors Show minor errors
--no-orphans Do not restore real orphan files
--trace Turn on disk trace
--verbose Explain what is being done
--nopercents Do not print percents
--version Display version
Example: chkdsk /dev/hdb1