从 SD 卡启动操作系统安全吗?我已经这样做了 2 周,到目前为止没有问题。
(我之所以问这个问题,是因为我使用的 chromebook 安装了 Ubuntu 16.04,并且通过 SD 卡启动。)
答案1
使用 SD 卡作为操作系统的介质并没有什么“不安全”之处。事实上,大多数人在 Raspberry PI v1 和 2 中都使用这种介质。它的运行速度可能比标准机械硬盘快得多,而且对操作不那么敏感。SD 卡在标准使用条件下的平均预期寿命约为 10 年,尽管将其用作操作系统时会进行更多的读写操作,因此您可以预期这个预期寿命会低得多,大约 5-7 年可能更准确。
答案2
好吧,我花了周末和周五三天的时间来研究这个问题。
和你一样,这是一个 Ubuntu 发行版。和你一样,这是一台 Chromebook。我使用的 Chromebook 是三星 ARM Series 3 Chromebook,XE303C12。
我使用的 ubuntu 版本是 chromebook_snow-armv7l-jammy.img。我在 debian 上也看到了类似的结果:chromebook_snow-armv7l-bullseye.img
我使用来自高街商店的 SD 卡进行了测试。这些不是我从 ebay、亚马逊或 aliexpress 购买的 SD 卡。我强调这一点很重要,因为我想排除二手或假冒 SD 卡的可能性。
这是我发现的:
Sandisk Ultra 30MB/s Class 10 SDHC 1 16GB 卡根本无法启动。我用 2 张相同的卡试过。都无法启动。Chromebook 总是让我掉线,进入 U-boot shell 根本无法启动,它就是无法识别它。
SanDisk Ultra 64GB Class 10 UHS 1 卡。(C10、XC 1、A1、U1 64GB)。这是一张适配器卡中的微型 SD 卡。这是前段时间买的,但我上周专门为 chromebook 打开了它。我发现存储库中每个 debian 和 ubuntu snow 版本都存在问题。错误是随机且不稳定的,系统总是开始启动(不像 Sandisk Ultra 30MB/s Class 10 SDHC 1 16GB 卡永远无法启动)。启动错误是随机的。广义上讲,它们分为 3 类:
- 由于硬锁定重新启动系统而导致的卡损坏错误(见下文):
- systemd 服务出现各种不稳定问题,导致无法预测失败。这些问题是不确定的,随机事件会以不可预测的方式失败。由于 SystemD 中的服务层次结构,如果某些关键服务无法启动,则可能会阻止后续服务,这可能会导致:
systemd freezing execution
这是一个不可恢复的错误。 - 间歇性堆栈跟踪和内核恐慌。
我在 Ubuntu 和 Debian 中一致看到这种行为。
金士顿 8GB Class 4 SDHC。它始终可以启动,其内核崩溃的次数比 SanDisk Ultra 64GB Class 10 UHS 1 卡少得多。通常,行为有所不同,dmesg 中有堆栈跟踪,但它们不会导致内核崩溃,但是我确实看到很多 systemd 故障导致systemd freezing execution
错误。
Sandisk Ultra 80MB/s Class 10,SDHC 1,16GB 卡。我使用这张卡取得了一些成功。行为不确定且不稳定。Debian 始终存在内核崩溃问题,但 Ubuntu 确实成功启动。但是,当它启动到 X 时,我遇到了帧缓冲区驱动程序重新启动 X 的问题。所以我关闭了电源。第二次从这张 SD 卡启动时,它没有尝试启动 X,而是让我进入 tty 登录,我能够获得一个似乎可以运行的 bash 终端提示符。
关闭系统电源后。我吃了午饭,然后回来。我再次启动了这张 SD 卡,然后出现了 systemd 故障。我再次关闭电源,这次出现了 journald 故障 - 我认为这是由于系统锁定时文件系统处于某种状态导致 SD 卡上的数据损坏。
然后我回到我的服务器,在同一张 SD 卡上创建了一个新映像,然后重试。这次我遇到了内核崩溃。
总之:
我见过一些系统在从 SD 卡启动时运行良好,例如 rpi 2、3、4、parallels 等。它们通常可以工作数周,或者如果您禁用交换并关闭任何经常写入卡的内容(最后我使用了只读保险丝文件系统,因为这最大限度地减少了对这些设备的写入),那么您可以从 SD 卡中获得相当长的使用寿命。然而,总是有一段时间,在 SD 卡上写入某些内容并且文件在关键位置损坏。
然而,我发现我的 XE303C12 chromebook 上的 SD 卡行为非常不同。有些卡根本无法识别,而其他卡则比其他卡更容易出现某些类型的错误。我还看到了非确定性行为。
这实际上与其他人对 503 和 303 三星 Chromebook 的评价相符;它们对使用的 SD 卡类型非常挑剔。
就我的情况来说,对于我的 Chromebook 来说,“从 SD 卡启动 Ubuntu……安全吗?”,绝对不安全。
答案3
是的,非常安全。以下是此主题。这里他们指的是戴尔电脑,但显然适用相同的基本理念。
插入 SD 卡。打开戴尔电脑,当出现 BIOS 屏幕时按 F12。
然后您将获得要启动的设备列表。选择 SD 卡并继续。
备择方案:
进入 BIOS(可能是 F10)并更改启动顺序,使 SD 卡成为第一个设备。将 Grub2 引导程序安装到硬盘上。它完全能够从 SD 卡启动。这可能是最好的解决方案,因为您将始终获得启动列表(Windows 或 Ubuntu),而不必摆弄 BIOS 或功能键。为此,将 Ubuntu 安装到 SD 卡上,但请确保在安装程序中将 Grub 安装到第一个硬盘(高级分区程序)。使用高级分区程序时要非常小心。硬盘很可能是 /dev/sda,而 SD 卡可能是 /dev/sdb 或其他东西,如果机器中还有单独的读卡器。