我有一个可启动的 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 来提高,这允许为磁盘分配更大的内存缓存。
内存缓存和磁盘管理的操作系统算法非常复杂,如果不深入了解其影响就对其进行调整,将对磁盘和操作系统的健康非常危险。