Ubuntu会损坏USB驱动器吗?


74

每当我使用Nautilus卸载USB驱动器并将其插入Windows机器时,都会收到警告,提示该驱动器需要维修。


(与该屏幕截图相同的消息)

在使用Windows的10多年中,我从未损坏或损坏过USB驱动器,但是在最近两年中,我的USB驱动器中有三个无法使用,因此我无法证明这一点,但是很明显,这与Ubuntu的(un)mount行为有关。

一位朋友告诉我,我可以使用udisk和sync防止这种损坏,但是我希望这不是做到这一点的方法,2016年使用shell命令安装驱动器。


1
我将尝试两个测试来找出根本原因:1)如果sync在Ubuntu中卸载之前在外壳中调用该方法,是否可以防止错误出现?(不太可能)2)尝试一次只写入一个文件,然后卸载,然后检查该文件是否可以在Windows上读取并且其内容是最新的,尽管看到此警告。2)表示该问题最有可能是Windows大惊小怪地说“我们发现了一些非实际问题的错误”。
arielf '16

2
当人们告诉您Linux不会破坏您的驱动器时,请不要相信。它可以。在Ubuntu 15上,仅文件复制然后重新启动始终在chkdsk中给我这样的错误:Stage 2: Examining file name linkage ... Found corrupt basic file structure for "<0x32,0x1e63>" ... queued for offline repair. Found an unneeded link ($FILE_NAME: ???) in index "$I30" of directory "\ <0x5,0x5>" ... queued for offline repair. Found missing Index entry for file "<0x32,0x1e63>" from index "\??\D:\found.000" of directory "$I30" ... queued for offline repair.
Mehrdad

1
^ ...更不用说,它甚至不在闪存驱动器上,而是在我的主SSD上。全新的SSD。它发生每一次,我没有文件复制后添加一吨的额外的I / O。换句话说,Linux的NTFS实现破坏了,就像它的支持者想要否认它并避免相信它一样。
Mehrdad

12
这是NTFS文件系统吗?FAT32?您可以可靠地复制它吗?
Braiam '16

2
使用shell命令安装驱动器有什么不好?¯\(o_o)/¯
ulidtko '16

Answers:


104

不用担心,Ubuntu不会损坏您的USB驱动器。但是,我们不会使用记录不充分的FAT32,FAT16或NTFS文件系统的位标志。在Windows上,当我们没有正确卸载驱动器或发生I / O错误时,这些标志表明文件系统可能已损坏。

这些位位于FAT分区表的保留条目中。根据Microsoft 2004年内部文件,这些位的目的是:

  • ClnShutBitMask
    如果位为1,则音量为“干净”。可以安装该卷以进行访问。如果bit为0,则卷为“脏”,表明FAT文件系统驱动程序无法正确卸装该卷(在先前的安装操作过程中)。应扫描卷内容,以防损坏文件系统元数据。
  • HrdErrBitMask
    如果此位为1,则不会遇到磁盘读/写错误。如果该位为0,则文件系统驱动程序实现在上次安装卷时在卷上遇到磁盘I / O错误,这表明某些扇区可能已损坏。应使用磁盘修复实用程序扫描卷内容,该实用程序对其进行表面分析以查找新的坏扇区。

几年前与内核文件系统开发人员进行了一些讨论,以讨论如何克服这一问题,但是我无法跟进结果。显然,它没有进入最新的内核。

由于只涉及一点标志,但是通常我们的数据应该是完美的形状,因此我们可以忽略以前在Ubuntu中使用的那些驱动器上的Windows警告问题。


3
当我安全地卸下驱动器时,这些驱动器中从未出现这些错误-您确定缺少对这些位的支持吗?
托马斯·沃德

5
@ThomasW。这些位相当模糊,但是我的工作场所Windows 7上的Ubuntu格式化USB驱动器有时会出现这些错误,到目前为止,我还没有看到任何有用的模式。我只能说的是,我总是正确地卸下/弹出驱动器。测试并不容易,因为在家中没有Windows,在工作中没有Ubuntu。
塔卡特

标题是错误的。
MatthewRock '16

@MatthewRock:更好吗?
塔卡特

是的,更好。
MatthewRock '16

74

这主要是Windows的问题。它认为它是世界上唯一的OS,并且如果检测到它不了解的内容就会采取行动。

仅由于Windows提示您必须修复驱动器并不能实现它。

我刚才说过no,与Ubuntu一起使用的任何驱动器都会从Windows收到此消息,它们在Windows上可以正常工作。

简而言之,驱动器没有任何问题,只是Windows上不了解其中的某些内容,并且其响应已破坏了它。

不要repair使用驱动器,它会在不通知您的情况下对其进行格式化,并且您将丢失驱动器上的所有数据。


40
1.修复不格式化,修复将分配的数据保存到文件夹。对我来说,似乎Ubuntu无法正确完成写入过程。
jan6352781'1

10
2.大多数USB驱动器是由Microsoft开发的FAT32格式,那么为什么Windows应该是唯一“无法理解”的系统?
jan6352781 '16

17
-1,因为这是没有根据的和错误的。我已经看到Ubuntu 15破坏了我的NTFS卷(是的,我知道你不会相信我,但是我亲眼看到了它,并且在我自己相信之前已经连续至少复制了3-4次),并且它即使我明确同步所有缓冲区也发生了。我同意@ jan6352781,我也怀疑这是由于未完成写入过程造成的,并且我仍然这样做。实际上,如果您在写入后等待了足够长的时间,然后重新引导Ubuntu,它将可以正常工作。我们没有理由相信Windows出了问题,也没有理由相信Ubuntu。
Mehrdad

7
修复驱动器不会格式化它。它运行chkdsk。格式化磁盘的容量不超过fsck格式化磁盘的容量。
Journeyman Geek

16
整个答案仅是Windows言论,零证据(轶事除外)。
米莉·史密斯

18

正如您在评论中建议的那样,这可能与Ubuntu在删除闪存驱动器之前未完成写入过程有关。Ubuntu在复制过程中将文件写入RAM,并在关闭复制对话框后在后台将这些文件从缓冲区写入USB驱动器。还有一个答案这表明这对于具有大量内存的计算机来说尤其是个问题,但很可能是在后台写入完成之前卸下驱动器。当您弹出驱动器时,这会强制将缓冲区写入磁盘,但是很难确定何时实际完成写入。较新版本(某些情况下为15.10,可能为15.04)中的一个弹出窗口旨在解决此问题-一段时间(通常较短)后出现紫色警报,提示“类似[Drive]现在可以删除”了写入完成。

这可能是您的朋友建议同步的原因。sync在终端中运行会强制将所有缓冲的数据写入磁盘,并且仅应在写入完成后返回(请参见此答案)。请参阅此答案以获取实用程序,该实用程序将帮助您确定这是否实际上是问题所在。


每当弹出USB驱动器以及15.10 Kubuntu机器时,我都会在14.04(Linux Mint KDE版)中看到弹出窗口。不确定约15.04,但我会这样假设。
乔恩·本特利

1
GUI真的不明显吗?我已经eject在终端中使用了很长时间,如果我刚刚复制了一个大文件,在返回之前会有明显的延迟。
Izkata '16

1
@Izkata在香草Ubuntu 14.04上,当单击Nautilus中的弹出符号时,它会立即消失。但是,与内部驱动器不同,USB驱动器在完全卸载(即写入完成)后会从侧边栏中完全消失,因此在一段时间内正在写入USB驱动器,但似乎弹出了USB驱动器。
alex_d 2016年

5

我已经看到很多USB驱动器,尤其是USB适配器中的闪存(SD等)卡,以及使用Ubuntu和Ubuntu发行版的FAT文件系统(几乎每个USB驱动器都预先格式化为FAT32格式)。这几乎每天每隔几个月定期发生一次。

如果是硬件问题,那么使用ext3(或4)格式化分区将无济于事,但是ext3 / 4使得文件系统实际上是防弹的。(ext2在我尝试使用的几个月中也被损坏;应该减少写入次数,因此闪存驱动器的寿命更长,主要是没有日志)。

所以,Ubuntu的应该不是物理损坏USB驱动器本身,但我还是不FAT文件系统相信它100%。

我认为可以通过以下方式最好地避免文件系统损坏:

  • 在卸载umount/弹出USB驱动器之前,切勿仅拔出USB驱动器。即使驱动器当前未写入任何内容(如果它有指示灯,也没有闪烁),即使您已完成sync文件系统的操作,
  • umount/ eject 之后至少等待几秒钟,然后再将其拔出。似乎即使umount驱动器处于活动状态后,有时指示灯仍会闪烁一会儿。像这个家伙一样的其他用户说它可能会持续一分钟。
  • 不仅要依赖sync任何一个,比如这个文件损坏的人。

相关(通常)链接:


3

这与任何操作系统都没有关系。这是一个文件系统错误,在大多数情况下,该错误指示驱动器未正确卸载(用户错误)。它不是损坏的绝对指示,而仅表示损坏的可能性。如果存在损坏,则损坏通常仅限于最后写入的文件。Windows“修复”命令在这种情况下扫描驱动器以查找标记为“已占用”但未分配给任何文件的扇区,然后将此碎片和碎片分配给新文件。

如果仅在写入过程中拔出驱动器而不先卸载它,则也可以在Windows上创建此错误(在Windows中,“弹出”执行卸载)。

看到此消息表示未正确卸下驱动器。

您可以自行验证文件系统是否确实损坏或只是误报:如果在运行“修复”后出现一个名为“ found000”的新文件夹,其中包含一些文件,则表明确实有未完成的写操作,被打断了。您的某些数据丢失了,这是一个问题。


2

我使用几年的ubuntu和Windows进行双重引导,当我以正确的方式卸载驱动器时,在Windows中总是显示错误消息,但从来没有在我的USB驱动器上出现错误。在W10中,您可以关闭此弹出错误消息。

在此处输入图片说明


1

正常格式(不是快速格式)之后,几乎没有任何操作系统会损坏USB驱动器的方法,应该没有留下任何曾经与Ubuntu一起使用过的驱动器的痕迹。

使用“ H2testw”或“ USB Flash Drive Tester”检查驱动器-坏扇区可能是许多奇怪错误的根源。


4
OP的措词不当,但表示“文件系统”,而不是“闪存ROM”。
wizzwizz4 2016年

看来,OP可能意味着实际的USB驱动器损坏,他们说:“我从来没有损坏或损坏过USB驱动器,但是在最近两年中,我的USB驱动器中有3个无法使用。而不是“无效” @ wizzwizz4
Xen2050 '16

3
@ Xen2050其他所有答案和注释线程(包括jan6352781)都暗示或声明文件系统是问题,而“损坏的设备”是对它们无法正常工作的推断。
wizzwizz4 '16

@ wizzwizz4那么,在马克·柯比的回答,OP意见“3.过去几年我几乎每天都跳过了修复与结束了损坏的文件和USB驱动器。”我猜它只是从就失败了旧的驱动器,窗口还是不,但他们的OP仍然这么说
Xen2050 '16

@ Xen2050或OP可能正在引用旧消息“设备已损坏。您要Windows修复它吗?” (解释)有时是由其他dll处理问题时出现的。(尽管我不确定最后一句话是对的,但我自己还是有出现。)
wizzwizz4'4

1

我不能说驱动器是否“损坏”,也许是,也许不是。但正如可以说相同的话:“使用Windows十多年...”,我可以告诉您,如果您正在运行Windows 10,这可能是新问题的根源。我在10的第一天遇到了一个新问题:10中为外部驱动器创建了一个数据库(它可能是索引数据库,我不记得了)。如果该数据库与驱动器不匹配,它将告诉您驱动器已损坏,有时您可以忽略此警告,有时则可以忽略(请参见轶事)。运行“修复”将修复数据库。

轶事:

我不记得在哪里找到此信息,但是当我移动“音乐”文件夹时我发现了有关信息。它抱怨驱动器坏了,而不仅仅是抱怨它正在寻找的文件夹不再存在。在我修复之前,新位置出现在Ubuntu上,而旧位置出现在Windows 10上...但是无法在10上打开所有文件。在我修复之后,音乐文件夹的新位置出现在Windows中,旧文件夹消失了,它再次在Windows上运行。

跑步sync也不错。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.