Using rpm-ostree against a manually mounted file system

Hi,

I’m trying to do something that I suspect is not possible, but would love some confirmation or alternative suggestions before I move on…

I was hoping to install Silverblue on my Surface Book 2 after having a lot of success getting it running on my much older Lenovo hardware. Unforunately, it doesn’t boot due to needing certain driver updates. My understanding is that I would need to layer those packages into the installation.

A quick look at the rpm-ostree docs suggested that the commands I require support a --sysroot flag, so I thought I might be able to boot into a terminal, manually configure all required mounts and then run with that flag.

I’ve configured all the mount points I expect would be need (and some just in case): /boot, /boot/efi, /var, /var/home, /sysroot, /etc, /dev, /dev/mqueue, /dev/hugepages, /dev/pts, /dev/shm, /proc, /run, /sys, and /tmp.

All of these I mounted under /mnt/rescue_root. Then I attempt to run rpm-ostree status --sysroot=/mnt/rescue_root/sysroot (also tried with --sysroot=/mnt/rescue_root) but I get this error (I have copied this manually from my laptop screen so only relevant pieces included):

Active: failed (Result: exit-code) since ... 9ms ago
Status: "error: Couldn't start daemon: Error setting up sysroot: fstatat(ostree/deploy): No such file or directory
... Failed to start rpm-ostreed.service - rpm-ostree System Management Daemon.
error: Loading sysroot: exit status: 1

Is there a way for me to install additional packages into a fresh Silverblue installation like this or any other way so that I can get this working on Surface Book? Thanks.

You should probably make a derived Bootable Container image instead and use either Anaconda or bootc to install it on your system.