从闪存驱动器运行Linux


3

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

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

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

还有什么需要考虑或者这只是一个坏主意吗?有没有在任何地方这样做的指南?


1
这将是闪存驱动器上的严重磨损。我会使用外置硬盘。无论如何,通过USB端口将限制速度,并且在这个尺寸范围内,HDD可能更便宜且更可靠。你可以买到衬衫口袋大小的驱动器。
fixer1234 2016年

另外,你现在可以以60美元的价格购买128GB SSD,USB 3.0外置硬盘(MyDigitalSSD MDMS-OTG-128,大约1英寸×4英寸),不会有传统USB闪存驱动器的限制,更大但仍然方便大小。
maxpolk 2016年

谢谢你的提示...但是60美元我认为我最好购买1TB硬盘,克隆当前安装,然后安装它并使用Linux的剩余空间,然后如果/当我需要打开笔记本电脑我只是把原来的驱动器放回去了。从IT经理那里得到了确定,这样才有意义。
acejavelin 2016年

由于我们在这里编译的信息并非特定于linux mint,但适用于任何Linux发行版,也许您可​​以将标题更改为“从闪存驱动器运行Linux”,以便有类似问题的人更有可能找到它?
Shevek 2016年

@Shevek Males sense ...编辑标题
acejavelin 2016年

Answers:


5

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

  • 通过将noatime挂载选项包含在相应的设备中来关闭访问时间戳记录/etc/fstab
  • 将默认I / O调度程序更改noop(使用旨在优化写入旋转硬盘驱动器的I / O调度程序将无法与闪存磁盘一起使用,并且通常会导致应用程序在将大型文件写入磁盘时挂起)。要进行更改,请在文件中包含以下行/etc/rc.local(其中<device>是usb设备的名称,即sdb):
    echo noop > /sys/block/<device>/queue/scheduler
  • 如果有足够的RAM,请使用ramdisk存储临时数据。将以下行添加到/etc/fstab
    tmpfs /tmp      tmpfs  defaults,noatime,nosuid,mode=1777  0  0
    tmpfs /run      tmpfs  defaults,noatime,nosuid,mode=1777  0  0
  • 您也可以考虑为/var/run和添加ramdisk /var/tmp。但是,请检查是否/var/run未首先实现为软链接run。至于/var/tmp,请注意将其移至ramdisk可能会破坏某些程序的预期行为。从Filesystem Hierarchy Standard 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上的logdata,因为这将减少分析错误的可能性并使其无法跟踪可能的安全漏洞。但是,如果您做出明智的决定走这条路,请注意您可能需要编写一个init脚本来重新创建某些目录,如果某些服务抱怨他们期望它们。
  • 优化交换使用。如果你有大量的内存,你可以没有任何交换(取决于你如何使用系统),并且对于大多数常规/办公室使用,有很多报告,即使从长远来看,这也不会成为问题在8-16GB的系统上。但是,许多人更愿意将交换空间作为后备。在这种情况下,您应该告诉操作系统保持其交换使用或“交换”最小化。将以下行添加到/etc/sysctl.conf
    vm.swappiness=10  
  • 关闭文件系统日记功能。虽然这意味着在系统崩溃或数据丢失的情况下会丢失快速恢复选项,但它确实减少了额外的写入和开销。要从ext3 / 4文件系统中删除日志,请输入sudo tune2fs -O ^has_journal <device>(其中<device>是相应分区的名称,即sdb1)。考虑使用ext2,上次我检查到目前为止仍然有最好的I / O基准测试结果,即使没有记录,在我的经验中仍然是一个强大的系统。缺点:一致性检查可能很长。此外,在具有大量文件的目录中,由于缺少目录索引,您会注意到性能显着下降。如果你有很多这样的话,我会选择没有期刊的ext4。

在实施任何更改之前,请确保您熟悉命令和选项。就像我开始说的那样:根据我的经验,可以很快地在闪存驱动器上使用系统(如果你可以在启动或启动单个程序时鼓起一些耐心)。使用16 GB和USB3,您将特别适合跑步。但是,如果系统设置偏离了标准的处理方式,那么在遇到意外的后续行为或问题时,最好知道您实际执行了哪些操作。

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


您可以添加/ etc / fstab tmpfs挂载/ var / run,/ var / lock,/ var / log以减少磨损。这么多写到/ var / log!如果某些服务抱怨他们期望它们,可能需要添加一个init脚本来重新创建/ var / log的某些子目录。
maxpolk 2016年

感谢您指出了这一点!将大多数临时数据移动到tmpfs的其他目录完全有意义。我会在有空的时候尽快将它包括在答案中。只有一个约束:我非常担心丢失日志文件数据,因为这会减少分析错误的可能性并使其无法跟踪可能的安全漏洞:我同意日志记录是频繁写入的来源,并且取决于使用例如,日志似乎是可以消耗的。妥协的解决方案可能是将日志移动到另一台设备......嗯,不得不考虑一下......
Shevek 2016年

@maxpolk:我已经包含了关于/ tmp,/ var / tmp,/ run,/ var / run和/ var / log的补充/更改。还发现了两种解决方案,用于将数据从/ var / log同步到tmpfs并在关闭之前将其返回,这似乎是对丢失所有日志数据或对物理驱动器上的日志目录进行持续写入的良好折衷。
Shevek 2016年

0

通过延长驱动器的使用寿命,您是指驱动器的物理寿命还是由于操作系统而导致的驱动器上不可避免的文件堆积?

你说你已经考虑了缓存,但如果你声称你想要“不改变计算机中的任何东西”,那么禁用RAM并在HDD上安装文件会产生反作用。如果我这样做,我只会启用RAM。

我会考虑的事情是:

  1. 笔记本电脑是否足以让“从USB启动”功能?
  2. 是否会禁用该功能:
    • 你的组织?
    • 笔记本电脑OEM?
  3. 特定的驱动程序是否适用于该型号的笔记本电脑?

我的意思是拇指驱动器的生命,主要来自写作。我的意思是考虑缓存是将缓存放在闪存驱动器上,这可能会大大缩短闪存驱动器的寿命。在HDD上使用as file作为伪缓存分区应该是16GB RAM的可行替代方案。
acejavelin

笔记本电脑是HP Probook 650 G1 Core i5 w / 16GB RAM,足够新,并且具有出色的Linux支持。通过不更改任何内容我指的是更改硬盘分区或引导程序或任何会影响正常使用笔记本电脑的能力。我是本地管理员,我们有能力使用我们认为合适的设备,即使是个人使用,也可以在一套灵活的指南中使用
acejavelin 2016年

1
这似乎更像是评论/要求澄清而不是答案。
2016年
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.