如何在持久启动 RAM 时将更改刷新回实时 USB?

如何在持久启动 RAM 时将更改刷新回实时 USB?

我有一个可启动的 USB 驱动器,上面有一个实时 Linux 发行版。我们将其设置为支持持久性,因此通常所做的更改会在重新启动之间保留。启动到 RAM 似乎使 Linux 比平时快得多,这使得它成为使用实时 USB 的一种方便方式,特别是因为与 SATA 驱动器上的正常安装相比,实时 USB 速度要慢得多,有时还会挂起。

toram我们可以通过在 grub 菜单中添加启动参数来将 live usb 启动到内存中。但是,这显然会破坏持久性功能,因为文件系统已加载到内存中,因此重启后所有更改都会丢失。

一旦我们做出了更改并决定要保留它们,我们如何将文件系统更改从 RAM 刷新回 USB 驱动器?


为了记录,我遵循了以下说明来使实时 USB 支持持久性:https://docs.kali.org/downloading/kali-linux-live-usb-persistence

答案1

这是我的 50 美分。

从 CD-rom 运行实时 Linux 发行版时,文件系统是只读的。这是有道理的,因为您无法写入 CD-rom。为了允许您创建文件和进行修改,实时操作系统使用 ramdisk 上的附加覆盖文件系统来存储您的修改。(有几种方法可以实现这一点,只需在 linux 覆盖文件系统上搜索即可了解更多信息)。但是,这些更改在关机时会丢失,因为它们不是存储在 CD-rom 上,而是存储在 RAM 上。

但是,当从 USB 驱动器启动实时发行版时,您可以将此覆盖文件系统放在 USB 驱动器上,而不是 ramdisk 上。这就是通常所说的具有持久存储功能的 Live USB。这样做的好处是,您所做的更改会保留下来。缺点是操作系统会频繁写入您的 USB 驱动器,这可能会影响非双面 USB 驱动器的性能(例如,导致频繁冻结)。此外,这会降低 USB 驱动器的耐用性,因为 USB 驱动器实际上并不是为频繁写入而设计的。

为了解决后两个问题,您可能需要创建一个 ramdisk 并在其中手动创建一个覆盖文件系统。要保留您的更改,请在关机时将此文件系统保存到 USB 驱动器上的文件中,并在启动时恢复它。

手动创建覆盖文件系统并不难。请先阅读以下内容:https://wiki.archlinux.org/index.php/Overlay_filesystem

答案2

从 USB 启动到 RAM 似乎更快,因为只有最小的 Linux 版本被装入内存。

USB 比内置磁盘慢,因此与传统的基于磁盘的安装相比,性能不会提高,反而会降低。持久启动 USB 的唯一优势是,它是一种可在任何计算机上运行的便携式 Linux 安装。

此外,可移动设备的物理刷新次数更多,因为操作系统不会冒险在未先卸载的情况下移除此类设备。这意味着 USB 的写入次数比内部磁盘更多,写入频率也更高。

无需进行任何调整即可改善内存使用率。Linux 在读取或写入时会自动将磁盘数据保留在缓存中。写入会延迟,并由操作系统自行决定以最佳顺序进行。这些优化是任何操作系统中极其重要的一部分,很多时候可以通过这些算法的效率来判断。

效率主要通过添加更多 RAM 来提高,这允许为磁盘分配更大的内存缓存。

内存缓存和磁盘管理的操作系统算法非常复杂,如果不深入了解其影响就对其进行调整,将对磁盘和操作系统的健康非常危险。

相关内容