我有一个带有 Fedora 32 的 live USB。在特定硬件上安装之前,我想向其添加一些驱动程序以确保它们正常工作(否则将其安装到硬盘上没有意义)。问题是,实时 USB 的设置使得对系统包的任何修改(例如sudo dnf install git
)不要实际上修改USB本身,只是内存中的模拟系统,一旦系统关闭并重新启动(这在安装驱动程序以实际加载后是必要的)(显然)就会被遗忘。因此我的问题是:
如何更改它,以便将系统软件包添加到 USB 驱动器本身(从 USB 驱动器启动时),以便在重新启动后它们仍然存在?
答案1
Fedora Live CD 或 Live USB 介质将其实时内容包含在一个只读文件中。它使用dm-snapshot或overlayfs使其可写,并且您可以在从 Live CD/USB 启动时安装某些内容,但正如您所说,修改并不持久。
因此,您需要的是一种称为数据持久性的功能。和fedora Live CD 似乎支持数据持久化功能。
- Live USB/SD 安装上提供数据持久性选项。
要创建具有数据持久性的Live USB,您需要使用livecd-iso-to-disk
创建Live USB的工具。例如:
livecd-iso-to-disk --overlay-size-mb 2048 Fedora-Workstation-Live-x86_64-32-1.1.iso /dev/sdX
这上层目录的overlayfs现在位于USB而不是内存上,因此修改将是持久的。欲了解更多详情,请关注这个文件或见man livecd-iso-to-disk
。
笔记
正如上面的文件所说,
您可以像在硬盘上进行常规安装一样执行更新,只不过内核更新需要手动干预并且覆盖空间可能不足。
因此,即使有数据持久化,内核包也不会更新。
答案2
您正在寻找的是livecd-creator
:
https://docs.fedoraproject.org/en-US/quick-docs/creating-and-using-a-live-installation-image/
https://fedoraproject.org/wiki/Livemedia-creator-_How_to_create_and_use_a_Live_CD
这是包的一部分livecd-tools
:
dnf install livecd-tools