将操作系统放在 SD 卡上有意义吗?

将操作系统放在 SD 卡上有意义吗?

一位朋友建议将整个操作系统放在 SD 卡上,认为访问时间延迟比需要先旋转的普通硬盘要短得多。

然而,维基百科指出,最慢的 SATA 提供 1.5 千兆位/秒的读取速率(这里),最快的 SD 卡允许 90 兆字节/秒(那里)。即使2个读取速度看似不匹配,也没有提到实际读取数据之前的延迟。

任何想法?

答案1

实际上,SD 上还有另一个重要参数比 HDD 更快,它被称为“寻道时间”,它表示从设备中找到并读取信息的时间。

考虑到操作系统的启动阶段会读取大量(真的很多)可能分布在 HDD 区域的小文件,SD 的主要优势在于它基于随机存取存储器(这意味着您可以同时访问存储器的任何区域,而不像 HDD 那样需要物理尖针在磁盘表面寻找信息,从而花费大量的寻道时间)。

它会在很多方面提高你的操作系统速度(例如启动时间),但请记住,在 Windows 上仍然无法做到这一点(它仅在 Windows 8 上可用)你只能在 Linux 发行版上测试和使用它。

另外,如果你想测试设备(HDD 或 SD)的读取速度或寻道时间,我建议你使用高清调谐。如果你想使用 SD 卡来使用你的操作系统,请注意它的班级(值越高,读取和寻道时间就越快)

答案2

您可能还想看看混合动力它具有混合盘片/SSD 机制,可以让您在不花费太多成本的情况下获得更快的速度。

SSD 的缺点:

SSD 块只能写入固定次数,而您的操作系统页面文件有大量写入。SSD 电子元件将这些写入分散到不同的块以提供一些帮助,但总体而言,这需要考虑。

相对于硬盘,SSD 的单字节价格也高得多。如果使用混合驱动器可以获得较大的性能提升,则可以节省一些钱。

答案3

我在 GuruPlug 上的 8GB SD 卡上运行 Linux。GuruPlug 将 SD 卡插槽显示为永久连接的 USB 大容量存储设备。

运行良好,几乎连续运行了一年(那时卡已经用了一年,以前偶尔用在黑莓手机上 - 唯一的中断是由于一次长时间断电和几次内核升级),然后卡突然毫无预警地坏了。GuruPlug 运行时很热,我敢肯定这对延长卡的使用寿命没有帮助。

就实际操作而言,当对 SD 卡进行大量写入时,“磁盘” I/O 有时会变得无响应。

在配备 USB 转 SD 卡读卡器的实际 PC 上尝试此操作在某些机器上没有产生良好的结果。我遇到的问题在于,SD 卡突然断开连接,Linux 会发现其根卷和基于该 SD 卡分区的所有其他卷意外消失。这往往是旧戴尔机器的一个问题,但我没有进行任何科学测试来确认。

答案4

一般情况下不会。它在工作时并不会更快,并且对于日常使用来说不够可靠。它只适用于恢复或安装,或其他偶尔使用。

原因是 SD 卡始终被设计用于“类似磁带”的用途 - 就像在数码相机中一样,其中数据在一次大的传输中被复制,或者每个文件一次传输,直到整张卡写满,然后一次全部复制出去。

即使有了更快的传输速度,SD 卡所基于的技术:“闪存 EEPROM 存储器”——并不十分适合构成操作系统磁盘大部分使用的随机存取和分段更新。

直接访问实际上非常不可靠。数据需要应用“纠错编码”,因为个别位经常会出错。数据块甚至需要“白化/扰乱”,因为数据中的任何清晰大模式(如许多相邻的“1”或“0”)都会导致 flash-eeprom 发生故障。

SD 卡处理上述内容,以便 SD 卡至少出现可靠——数据在记录时有一定的冗余度,在发送到计算机之前,在访问时会进行检查、纠正和解读。

但即使从闪存芯片中随机读取一段数据也会导致周围存储的数据损坏。因此,闪存控制器必须在其他地方重新写入周围数据,这样数据才不会丢失——即使将卡设置为“只读”,这种情况也会发生。

更糟糕的是,每个单独的闪存单元只能被写入有限的次数 - 因此控制器还必须将写入分散到整个磁盘 - 称为“磨损均衡” - 以便任何一个部分都不会过早磨损。

现在考虑一下 OS 磁盘会发生什么情况。

启动时,它会读取一堆分散在芯片各处的小文件,并生成一堆计算机“看不见”的额外写入,即使“只读”开关处于在 SD 卡上!

SD 卡电气连接规范中也没有办法让 SD 卡告诉计算机“我正在忙着写作,请不要关机”——甚至无法让计算机警告 SD 卡“我们即将关机,请做好准备”。

所以即使正确关机,操作系统仍然可能被损坏!

SSD 通过拥有更好的控制器和更多的闪存芯片来解决这个问题。它们不通过 SD 卡接口连接,因此它们可以通过多种方式向计算机发出信号,表示它们尚未完成,并且计算机始终会向磁盘发出警告,提醒它们做好断电准备。

企业级 SSD 也常常内置足够的电量存储,即使突然断电,也能给它们多一分之一秒的时间来完成正在做的事情——但 SD 卡中实际上没有足够的空间来容纳这些电量,更不用说迷你或微型 SD 卡了。

一些小型计算机甚至已经开始使用微型 SD 卡作为其操作系统 - 特别是 Raspberry Pi - 但这样做纯粹是因为它非常便宜。

它不是很可靠 - 任何一张 SD 卡仅启动几百次后,操作系统就会启动失败。

与 SD 卡相比,使用 SSD(甚至是 USB 连接的 SSD)要好得多。

另外,考虑 SD 卡和 SSD 之间的区别也适用于大多数“拇指驱动器”,并且USB 固态硬盘's。大多数廉价的 USB 记忆棒使用的芯片与 SD 卡完全相同。如果您想每天使用它启动,您应该购买一个专门为此设计的记忆棒。

您可以获得 SBC喜欢Raspberry Pi,但“内置闪存”或“eMMC 卡槽”。两者都非常像小型廉价 SSD,并且比 SD 卡更适合用于启动。

您还可以从 USB 卡启动 Raspberry Pi,或者将系统的根分区(操作系统磁盘)与启动分区分开——放在不同的 USB 旋转或固态磁盘上,或者通过 nfs 服务器上的网络。

将 /boot 分区留在 SD 卡上是可以的,因为它只会在启动时一次性读取一次 - 在加载之前读取 Linux 内核。

相关内容