![尝试创建具有可选持久性的自定义 RAM 支持的 Ubuntu Live USB](https://linux22.com/image/1072962/%E5%B0%9D%E8%AF%95%E5%88%9B%E5%BB%BA%E5%85%B7%E6%9C%89%E5%8F%AF%E9%80%89%E6%8C%81%E4%B9%85%E6%80%A7%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%20RAM%20%E6%94%AF%E6%8C%81%E7%9A%84%20Ubuntu%20Live%20USB.png)
我一直在绞尽脑汁想出最好的办法。这可能听起来有点令人困惑,所以让我解释一下“为什么”第一的。
我已经有一个 Linux live USB 棒(在高端 256GB 三星 USB 棒上,速度与 SSD 一样快,效果很好!)但我想要的是创建不同的 Linux USB 棒,仅用于执行基本的批量任务,例如云恢复或同时在不同的笔记本电脑/台式机上运行相同的维护脚本。其中一些处于不同状态,不同的操作系统,有些甚至没有网络连接...但将 Linux USB 与我需要的文件和标准化脚本运行/恢复环境一起插入是完美的。
问题是,我的 USB 数量显然有限。我想要的是能够启动操作系统并将其全部保留在 RAM 中,然后拔出 USB 棒,不会发生任何奇怪的事情,它会继续运行。那么猜猜它已经做到了什么?Ubuntu Live 22.04 安装程序处于“试用 Ubuntu”模式。它还具有占用比标准 22.04 安装更少的空间的优势,这也意味着更少的 RAM 使用量,因为磁盘完全存储在 RAM 中。据我观察,它只占用 1.6GB。
更新:通过从 grub 中删除maybe-ubiquity
,我能够让系统直接启动到 Live Ubuntu 而不是安装程序。感谢 @Raffa 对此的帮助。其次,我能够/casper/filesystem.squashfs
通过使用该unsquashfs
工具、启动 VM、更改内容并重新制作来自定义非持久文件系统(在 下)。但是,这非常不方便,特别是如果您只想进行小幅调整。
此外,我可以确认,即使toram
将选项添加到 grub,持久分区(仅供参考,只需将 ext4 分区命名为“可写”并使用该persistent
选项启动即可获得)也不会被缓存。移除 USB 后,系统将立即出现故障并最终挂起/崩溃。然而,在非持久模式下,移除 USB 后一切都会变得很好、很稳定。我甚至编写了一个脚本,可以在启动时安全地卸载 USB,因此只要您看到桌面出现,就可以将其移除。
我有一个想法,我可以自动执行取消压缩和重新压缩过程,这样您就可以像平常一样启动到非持久模式,但在运行脚本时,RAM 内容会写回到 filesystem.squashfs 中。如果系统意外断电,则存在数据丢失的风险,但考虑到我只会偶尔进行更改,并且在大多数情况下只使用非持久模式,这对我的用例来说是有意义的。