1)具体是什么原因使得安装在 USB 记忆棒上的“具有持久性的 liveCD”比安装在 USB 记忆棒上的完整版本运行速度更快?
2)我需要在完整安装系统中进行哪些更改才能使其成为“具有持久性的 liveCD”系统?
答案1
当您从 USB 驱动器运行 Linux 时,您的整体速度通常不是受 CPU 限制,而是受磁盘 I/O 限制。数据在 USB 上传输的速度有多快。因为 USB 2.0 上的数据传输速率是有限的。因此,在这种情况下,liveCD 版本比在 USB 上完整安装有几个优势。
首先,LiveCD 将其数据存储在压缩的循环文件中,通常使用 squashfs。由于数据经过压缩,因此可以更快地从 USB 传输数据。而完整安装时,数据未经过压缩。
其次,USB 数据传输基准测试表明,大文件的传输速度比大量小文件快得多。使用 LiveCD 格式,数据会存储在一个或多个大型 cloop 文件中,这是理想的情况。但使用完整安装版本,会有很多较小的文件。这可能会导致数据传输速度变慢。
第三,liveCD Linux 使用联合文件系统,如 AUFS。它是一个虚拟文件系统,有时也称为可堆叠文件系统。它被设计成最小化写入 USB 的周期,当然比 USB 上的完整安装版本少得多。这有助于 a) 向 USB 写入数据所需的时间是读取时间的两倍,并且 b) 过度写入 USB 会更快磨损。
答案2
正如罗兰所说,您获得的速度提升可能是磁盘(相对较高的延迟、寻道时间等)和固态存储器之间的差异。
在内置驱动器上安装 LiveCD 版本是可行的,但不应将其视为速度改进。它可能会稍微慢一些,因为使用只读文件系统涉及一些解决方法。
实际上,由于它们将从 ramdisk 运行,因此某些位可能会运行得更快。
可能的解决方案:
更大的 USB 存储棒,带有 LiveCD,因此您可以将整个东西放进去
您的机器中的固态硬盘 - 将比硬盘快得多
更新:
更新后,您的问题现在更有意义了。看起来您的意思是要将硬盘上的现有安装转换为 USB 驱动器的 LiveCD。如果是这样,请转到此Ubuntu论坛描述了该过程的帖子。区别如下(来自 Ubuntuforums 帖子):
CD 或 DVD 是只读介质。Linux 需要对系统的某些部分具有写访问权限才能正常运行(例如“/dev”、“/proc”、“/var”、“/tmp”)。有很多方法可以解决这个问题。所有这些方法都利用了系统 RAM。
在硬盘安装中,根文件系统的位置是固定的。因此,在启动时使用 root=/dev/... 参数将其传递给内核。使用实时 CD/DVD 时,根设备的位置不固定,因为用户可能有多个 cdrom 驱动器,这些驱动器可以是 ide、scsi ... 等。
为了适合 CD,文件系统通常使用 squashfs 进行压缩。因此我们需要自动检测文件系统类型。我们还需要有适当的模块来安装它。