我有一个 Vista 和 Ubuntu 双启动系统。99% 的时间我都在使用 Ubuntu,并且已将 Windows 分区挂载为可读/写。
我在 Vista 中运行了 Diskeeper 2008 来“清理”磁盘。我运行了启动时碎片整理,并对 C: 驱动器进行了几次碎片整理。
但是,回到 Ubuntu 后,我无法再写入 Windows 分区。有什么想法吗?
更多信息:正如您所期望的那样,该分区是 NTFS。mount
我认为在 Ubuntu 上运行显示该分区是可写的:
/dev/sda3 on /media/OS type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096)
如果有帮助的话,这是我的 /etc/fstab。最后一行是 Windows 分区。
proc /proc proc defaults 0 0
# Entry for /dev/sda5 :
UUID=dc57d1f6-e720-47ee-86e2-c24fa4e24dff / ext3 relatime,errors=remount-ro 0 1
# Entry for /dev/sda6 :
UUID=fdf33781-b661-4216-a2a2-6fe61e27f399 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0
/dev/sda3 /media/OS ntfs-3g defaults,locale=en_GB.UTF-8 0 0
更新:
正如我之前在自己的回答中提到的,我以为我已经通过在 Windows 中对驱动器运行 chkdsk 解决了这个问题。但是,我仍然会偶尔遇到错误,主要是在使用 Transmission (Bittorrent) 时。
如果我以 root 身份运行 nautilus,转到该分区上的文件夹并查看某些文件的属性,我会收到此错误:
** (nautilus:1177): WARNING **: Couldn't open file:///[filename]: Could not open location; you might not have permission to open the file.
** Message: Error: Could not open file "[filename]" for reading.
gstfilesrc.c(1051): gst_file_src_start (): /GstPlayBin:play/GstFileSrc:source:
system error: Input/output error
答案1
如果 Linux 检测到 NTFS 分区(目前 Windows 分区的默认类型)中存在任何错误,那么它将阻止您写入该分区,以防止文件损坏。修复此问题的方法是,启动 Windows,运行 chkdsk。有时您可能实际上必须运行 chkdsk,重新启动,再次运行 chkdsk,以便清除所有内容。
答案2
当然,Windows 下需要 chkdsk。但我建议另外清理此磁盘上的索引。只需打开磁盘 C:\ 的属性,按“清理磁盘”或“扫描磁盘”,这是显示磁盘使用情况的圆圈(我有其他 Windows 语言,无法完美翻译),等待一段时间进行 Windows 检查。接下来按“清理系统文件”按钮,再等待检查。最后选择要删除的内容。还有另一个选项卡“更多选项”。然后清理“系统还原和后台复制”。
我看到一些关于此的文章:http://www.tomshardware.co.uk/forum/244799-45-removing-corrupt-index-file-19604 这说明,损坏的索引已被修复,但是 fs 中原来的错误保持不变。
如果系统文件少的话就更好了:)
另一篇来自微软的技术文章:http://support.microsoft.com/kb/246026 这一点 MFT 中存在一些损坏,但 chkdsk 忽略了这些错误。
您可以使用 MFT 对卷进行碎片整理来“修复”此问题。MyDefrag 程序可以安全地执行此操作,我已经使用它很长时间了。
另一个问题是,你的内存可能已损坏。NTFS 对此非常敏感。运行任何测试,也许 memtest86 没问题,让它运行 1 天。
我没有其他想法。
更新
我发现了另一篇可用的(我认为)文章:
http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Windows/XP/Q_27423063.html
但我建议首先检查你的RAM