Hi Colin, On Thu, May 30, 2019 at 2:47 PM Colin Walters <walt...@verbum.org> wrote:
> > > On Tue, May 28, 2019 at 1:04 PM <jkone...@redhat.com> wrote: > > > > >> We are doing bigger rewrite of the Anaconda and we have a problem > with > > >> the moving sysroot of rpmostree payload. > > Is there any more background on this? Is there an outstanding pull > request? > > the problem is that we need to somehow inform our DBus modules about the current path to the system root and that we will have to somehow monitor whether a DBus module doesn't want to change this path. We could write a DBus support for that, but we don't think that it is a good idea, because we don't want to advertise this option. > > > As you know the payload more > > >> then we and most of all you know rpmostree I wanted to ask you about > > >> the solution. > > >> > > >> Right now the sysroot of the rpmostree is changing during the > > >> installation. The code for the sysroot handling changed and we would > > >> like to simplify the logic, by having the sysroot on static place all > > >> the time. > > >> > > >> >From the commit message I know there is a deployment and physical > root. > > >> The problem is however that you have to change to the other during > the > > >> installation. We would like to avoid this. > > This is a complex topic. I am not sure we can entirely avoid the code > having > to support both. > > Ultimately, the libostree code is designed to support being invoked from > *outside* the system (as anaconda does), as well as *inside* the system > (like `rpm-ostree upgrade` does in a booted system). This is all of course > quite symmetrical with yum's --installroot model, except ostree needs to > handle more things (e.g. the bootloader config is owned by it). > > These original commits are relevant: > > https://github.com/storaged-project/blivet/commit/5b39c90ae582a8fb008c3633954a33b58394802c > > https://github.com/rhinstaller/anaconda/commit/0bbc9adf41b33062bbbfe478b3373a3404de21aa > > > >> If we can avoid changing the sysroot that would be best but in other > > >> case I came with an idea of a bind mount. So when the mount is not in > > >> the "correct" place we can bind mount the other folder there. > > >> However, that could complicate other things. > > I want to say that in the past we did a bind mount and switched to > moving...I had thought the change was in lorax but I can't find it now. > (...a few more minutes pass with some invocations of `git log > --grep=ostree` and `git log --grep=mount`...). > > Ah ok, see: > > https://github.com/rhinstaller/anaconda/commit/664ef7b43f9102aa9332d0db5b7d13f8ece436f0 > > Are you thinking we basically invert things and basically do mount --rbind > /mnt/sysroot/...deploy/$checksum ? > The main issue with that is that the bootloader writing happens *after* > kickstart processing and the bootloader code in rpmostreepayload assumes > that it's looking at the physical root right now, but that may not be hard > to change. > > Thanks for the info and the links. It was very helpful. I think that we have found a solution that might work. Basically, there will be two mount points: /mnt/sysimage for the physical root and /mnt/sysroot for the system root. Then it is simple to remount /mnt/sysroot withount changing /mnt/sysimage. This idea is already implemented at: https://github.com/rhinstaller/anaconda/pull/1996 I have tested several use cases and it seems to work fine so far. What do you think about it? Vendy > _______________________________________________ > Anaconda-devel-list mailing list > Anaconda-devel-list@redhat.com > https://www.redhat.com/mailman/listinfo/anaconda-devel-list >
_______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@redhat.com https://www.redhat.com/mailman/listinfo/anaconda-devel-list