-
Notifications
You must be signed in to change notification settings - Fork 155
install: add target_root_path for RootSetup
#1752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
01ff672 to
0830023
Compare
|
Build the patch based on Check the If I reboot, seems it still booted into old rhel9.6, how can I check if the installation is successful?
|
|
This is a complex topic. A first thing here is that This issue also relates to #820 I think at the current time it's expected that
That is strange; what does |
|
One issue also related to this is that some of the install integration tests are still mostly orchestrated via the GHA I think we should likely switch them over to tmt. Although it gets subtle as reproducing the Edge starting state via tmt will require some work, but we can do that as a followup. |
Actually on ostree OS, it only removes
Run After reboot, boot into the old rhel9.6-edge, find directory |
You're right! And that's one of the issues here - this system is ostree but not bootupd, and that's one of the problem roots - I think in this case we'll just not change the bootloader state at all which is not expected. I think basically if we detect ostree but not bootupd, then we should proceed by wiping out the complete ESP as before alongside everything in Now...there is a related but distinct thing here which is that if we detect bootupd, we should also forcibly do a |
25cf806 to
4c8db70
Compare
Sorry that this is out of my knowledge, what I see is from clean_boot_directories() before install_to_filesystem_impl(), any pointer for this? Thank you!
LGTM, have no idea where I should add this.
Should the new entries config and kernel file are created after running |
Yep that's the right place
In the logic where we have
Yes the boot loader entries are written by the install (and upgrade) process; those should stay the same as is today. What's special cased right now is ostree-vs-non-ostree in the |
The bootupctl update is a little different as it currently reads path form
With @jbtrystram 's help, do testing with change, cleanup ESP files and preserve like After reboot, boot into the old rhel9.6-edge, directory I think what you said for the comment makes sense, but I have no idea how to fix this, any pointer is much appreciated. Copy the comment here: |
13f3c22 to
41935bb
Compare
|
Check more and find that the new The workaround is remove After booted, check that Edit:
This explains why the mount shows as |
|
Based on the above comment, one workaround is
Edit: |
Get pointer from bootc-dev#1752 (comment) On Ostree OS, should empty the complete ESP and everything in `/boot` but preserve `/boot/loader`. Signed-off-by: Huijing Hei <[email protected]> Co-worked by: Jean-Baptiste Trystram <[email protected]>
5e2338b to
e5a6ba4
Compare
root_path for RootSetuptarget_root_path for RootSetup
|
Do some testing based on PR, Before reboot: After reboot and check |
e5a6ba4 to
0e61edd
Compare
fc94a9e to
87d0938
Compare
Set the feature on if detect rhel >= 9.6, also centos >= 9 and fedora > 41 Refer to Colin's pointer bootc-dev#1752 (comment) Signed-off-by: Huijing Hei <[email protected]>
87d0938 to
f00d1aa
Compare
Set the feature on if detect rhel >= 9.6 or fedora Refer to Colin's pointer bootc-dev#1752 (comment) Signed-off-by: Huijing Hei <[email protected]>
f00d1aa to
8c974dd
Compare
Set the feature on if detect rhel >= 9.6 or fedora Refer to Colin's pointer bootc-dev#1752 (comment) Signed-off-by: Huijing Hei <[email protected]>
8c974dd to
8395701
Compare
Get pointer from Colin's comment bootc-dev#1752 (comment) - Empty the complete ESP - On ostree OS, empty `/boot` but preserve `/boot/loader` - On none ostree OS, the loader is directory that needs to be removed. Signed-off-by: Huijing Hei <[email protected]>
Set the feature on if detect rhel >= 9.6 or fedora Refer to Colin's pointer bootc-dev#1752 (comment) Signed-off-by: Huijing Hei <[email protected]>
8395701 to
2d9ab89
Compare
Set the feature on if detect rhel >= 9.6 or fedora Refer to Colin's pointer bootc-dev#1752 (comment) Signed-off-by: Huijing Hei <[email protected]>
2d9ab89 to
eeb92f4
Compare
Get pointer from Colin's comment bootc-dev#1752 (comment) - Empty the complete ESP - On ostree OS, empty `/boot` but preserve `/boot/loader` - On none ostree OS, the loader is directory that needs to be removed. Signed-off-by: Huijing Hei <[email protected]>
Set the feature on if detect rhel >= 9.6 or fedora Refer to Colin's pointer bootc-dev#1752 (comment) Signed-off-by: Huijing Hei <[email protected]>
eeb92f4 to
57baa18
Compare
|
Rebase main branch and doing testing, see this when booting the bootc image. Maybe we do not need the kernel argument for boot mount? |
|
Hold on and will do more testing for this. |
57baa18 to
6e74964
Compare
| }; | ||
|
|
||
| // Only preserve loader on ostree | ||
| if is_ostree && file_name.starts_with("loader") { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also relates to an issue (TODO link) where we should support preserving basically everything (including the bootloader entries on non-ostree) by default until the very end of the install. And ideally make the "commit" phase an optional step after.
This one also textually conflicts with #1727
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also relates to an issue (TODO link) where we should support preserving basically everything (including the bootloader entries on non-ostree) by default until the very end of the install. And ideally make the "commit" phase an optional step after.
I think you meant preserve everything under /boot & /boot/efi, then clean them before install bootloader, is this right?
This one also textually conflicts with #1727
A little confused, this requires empty rootfs when --replace is not set, but when using to-existing-root it is using ReplaceMode::Alongside by default, maybe I misunderstood this?
Get pointer from Colin's comment bootc-dev#1752 (comment) - Empty the complete ESP - On ostree OS, empty `/boot` but preserve `/boot/loader` - On none ostree OS, the loader is directory that needs to be removed. Signed-off-by: Huijing Hei <[email protected]>
When running `install to-filesystem` on ostree OS, should use `target_root_path` for bootupctl to install bootloader. Signed-off-by: Huijing Hei <[email protected]>
If we're installing alongside existing ostree and there's a separate boot partition, we need to mount it to the sysroot's /boot so ostree can write bootloader entries there. Signed-off-by: Huijing Hei <[email protected]>
ae0a194 to
b2e796f
Compare
Signed-off-by: Huijing Hei <[email protected]>
b2e796f to
bd0513c
Compare
|
Test locally using |
When install to-filesystem on ostree OS, will pass
target_root_pathtobootupctlto install bootloader.