是否可以获取基于 ostree 的原子操作系统(例如 Silverblue 或 Fedora-IoS)的磁盘映像,并以在 chroot 后可以更新的方式挂载它?如果是这样,执行此操作的命令顺序是什么?
问题基础:我正在 libvirt/qemu 中准备 Fedora-IoT arm aarch64 映像。在某些时候任何rpm-ostree
命令都会“超时”。即使是像这样的“简单”的rpm-ostree status
。我希望 chroot 环境qemu-aarch64-static
能够运行得更快一点,避免超时。
我研究了映像上的各个分区、uEFI boot、/boot 以及最终的 /sysroot,但不太了解如何挂载真正的根映像。查看正在运行的系统的各种方法也没有提供线索。/etc/fstab
没有帮助。
然后,一般的 ostree 系统维护或 chroot 内的调查可能会很有用,因为它在更标准的操作系统安装中是有用的。因此这里的问题。
[编辑]我看到一些通用信息可用[1]:
解析 initramfs 中的 ostree= 内核命令行参数
在 /usr 上设置只读绑定挂载
将部署的 /sysroot 绑定挂载到物理 /
使用 mount(MS_MOVE) 使部署根看起来像是根文件系统
这可能并不完全有用。我已经管理了上述内容的部分执行,在 chroot 之前绑定安装了一些东西。然后运行rpm-ostree status
和其他命令给出:error: This system was not booted via libostree; cannot operate
。
[1]https://ostree.readthedocs.io/en/latest/manual/adapting-existing/
答案1
你可以touch /run/ostree-booted
,这应该会让 rpm-ostree 认为一切正常并且可以继续。