从闪存驱动器运行 Linux

ace*_*lin 3 linux linux-mint usb-flash-drive

在我的工作笔记本电脑中,我想运行 Linux Mint 而不更改计算机中的任何内容,所以我想只需要一个 128GB 的​​闪存驱动器来安装它。

我知道它会起作用,但是我应该考虑什么来延长驱动器的使用寿命?

我已经考虑过缓存,笔记本电脑有 16GB 内存,所以我应该能够禁用它,如果我真的需要它,我可以在硬盘上安装一个文件,并且可能使用 ext3 作为带有 noatime 选项的文件系统。

还有什么需要考虑的,或者这只是一个坏主意?是否有在任何地方执行此操作的指南?

She*_*vek 6

根据我几年前在闪存驱动器上定期使用桌面系统近两年的经验,最难的部分实际上是降低了读写速度,而没有数据丢失的真正问题。尽管如此,设备磨损当然是固态媒体上的一个问题,特别是如果你的目标是比我更长的使用时间。从闪存驱动器运行系统时,您可以使用许多与文件系统相关的调整来提高性能。其中许多对于延长闪存驱动器的使用寿命也很有用,因为频繁的写入最终会导致故障。

  • 通过noatime在相应的设备中包含挂载选项来关闭访问时间戳记录/etc/fstab
  • 将默认 I/O 调度程序更改noop(使用旨在优化对旋转硬盘驱动器的写入操作的 I/O 调度程序将不适用于闪存盘,并且通常会导致应用程序在将大文件写入磁盘时挂起)。要进行更改,请在文件中包含以下行/etc/rc.local(其中<device>是您的 USB 设备的名称,即sdb):
    echo noop > /sys/block/<device>/queue/scheduler
Run Code Online (Sandbox Code Playgroud)
  • 如果您有足够的 RAM,请使用 ramdisk 来存储临时数据。将以下行添加到/etc/fstab
    tmpfs /tmp      tmpfs  defaults,noatime,nosuid,mode=1777  0  0
    tmpfs /run      tmpfs  defaults,noatime,nosuid,mode=1777  0  0
Run Code Online (Sandbox Code Playgroud)
  • 您也可以考虑为/var/run和添加一个虚拟磁盘/var/tmp。但是,首先检查是否/var/run未实现为软链接run。至于/var/tmp,请注意将其移动到 ramdisk 可能会破坏某些程序的预期行为。来自文件系统层次结构标准 3.0

    系统启动时不得删除位于 /var/tmp 中的文件和目录。尽管存储在 /var/tmp 中的数据通常以特定于站点的方式删除,但建议删除发生的频率低于 /tmp。

  • 将浏览器缓存和其他频繁写入的临时数据存储放在 ramdisk 上。即对于 Firefox,打开about:config,创建一个新字符串browser.cache.disk.parent_directory并将其值设置为/tmp

  • 考虑/var/log/在关机前暂时同步到 ram 并将其同步回物理驱动器。日志文件经常写入并且仅在会话结束时将它们同步到物理存储将减少驱动器的磨损。在 debian-administration.org 上的这篇文章中讨论了实现这种解决方案的一种方法,另一种是anything-sync-daemon(我没有测试任何一种解决方案,但从文章/文档来看,它们对我来说似乎都很明智)。另一种选择是将日志数据外包给另一个驱动器或日志服务器。我不建议在会话结束时简单地丢弃 ramdisk 上的日志数据,因为这将减少分析错误的可能性并使跟踪可能的安全漏洞变得不可能。但是,如果您做出明智的决定要走这条路,请注意,如果某些服务抱怨他们期望它们,您可能需要编写一个初始化脚本来重新创建某些目录。
  • 优化交换使用。如果你有很多内存,你可能完全没有任何交换(取决于你如何使用系统)并且对于大多数常规/办公室使用,有许多报告表明即使从长远来看这也不会成为问题在 8-16GB 的系统上。但是,许多人更喜欢将交换空间作为后备。在这种情况下,您应该告诉操作系统将其交换使用或“交换”保持在最低限度。将以下行添加到/etc/sysctl.conf
    vm.swappiness=10  
Run Code Online (Sandbox Code Playgroud)
  • 关闭文件系统日志。虽然这意味着在系统崩溃或数据丢失的情况下失去快速恢复选项,但它确实减少了额外的写入和开销。要从 ext3/4 文件系统中删除日志,请输入sudo tune2fs -O ^has_journal <device>(其中<device>是相应分区的名称,即sdb1)。考虑使用 ext2,我上次检查时它仍然具有迄今为止最好的 I/O 基准测试结果,即使没有记录,根据我的经验仍然是一个健壮的系统。缺点:一致性检查可能很长。此外,在包含大量文件的目录中,由于缺乏目录索引,您会注意到性能显着下降。如果你有很多,我会选择没有日志的 ext4。

在实施任何更改之前,请确保您熟悉这些命令和选项。就像我开始时所说的那样:根据我的经验,可以在很长一段时间内愉快地使用闪存驱动器上的系统(如果您在启动或启动单个程序时能鼓起一些耐心)。使用 16 GB 和 USB3,您将为跑步做好准备。但是,对于偏离标准做事方式的系统设置,最好知道您实际做了什么,以防您遇到意外的后续行为或问题。

感谢 maxpolk指出移动 (/var)/run 和 /var/log 以减少磨损是明智的。