A/B updates -- volume based#1678
Conversation
|
ghaf and ghaf-installer images for lenovo-x1 don't build |
|
Now ghaf-installer built successfully and I was able give this a try.
Defaulting to Nixos Yarara 26.05 There was some error in the boot logs but after waiting some time boot continued. Dim Ghaf splash screen stayed a long time (~1min) on the screen. Eventually Ghaf User Provisioning menu appeared with only "Join Active Directory domain" and "Exit provisioning" options available. (I had created a local user before A/B update test.) Seems that the update has changed user configuration to ghaf/modules/reference/profiles/mvp-user-trial.nix Connecting AD server does not work without changing dns IP (known issue). Exited provisioning menu but ghaf login screen didn't appear (because there are no users), only black screen and after a while ssh connection to net-vm still worked. App VMs failed to boot.
Requested outputs for debugging: |
|
Note: the branch is 22 commits behind main |
|
After reboot and selecting plain NixOS at the boot menu it boots fine to the original version and |
3d87b94 to
522aa5c
Compare
522aa5c to
5dd49cc
Compare
|
Tested again on lenovo-x1. Summary
Also I am wondering if ids-vm is included purposely in the update? That is normally disabled in ghaf by default. |
|
More detailed notes of this test run |
|
Checked also with encrypted installation ( |
5dd49cc to
656376f
Compare
Host Configuration: Added an entry to systemd.tmpfiles.rules in modules/microvm/host/microvm-host.nix to ensure the /persist/sysupdate directory is created on the host with 0755 permissions owned by root.
modules/microvm/host/microvm-host.nix
"d /persist/sysupdate 0755 root root -"
NetVM Configuration: Added a share configuration in modules/microvm/sysvms/netvm.nix to mount the host's /persist/sysupdate to /persist/sysupdate inside the netvm using virtiofs.
modules/microvm/sysvms/netvm.nix
{
tag = "sysupdate";
source = "/persist/sysupdate";
mountPoint = "/persist/sysupdate";
proto = "virtiofs";
}
Signed-off-by: vadik likholetov <vadikas@gmail.com>
Signed-off-by: Alexander Nikolaev <alexander.nikolaev@tii.ae>
add36ae to
7976bfa
Compare
Signed-off-by: Alexander Nikolaev <alexander.nikolaev@tii.ae>
Signed-off-by: Alexander Nikolaev <alexander.nikolaev@tii.ae>
Signed-off-by: Alexander Nikolaev <alexander.nikolaev@tii.ae>
Signed-off-by: Alexander Nikolaev <alexander.nikolaev@tii.ae>
Signed-off-by: Alexander Nikolaev <alexander.nikolaev@tii.ae>
Signed-off-by: Alexander Nikolaev <alexander.nikolaev@tii.ae>
7976bfa to
fea1691
Compare
|
Tested current state on Lenovo-X1 (installed via
|
|
@leivos-unikie yep, I'll definitely address audit-rules in one of next PRs |
Description of Changes
What in this PR:
ota-updatetool (branch in GIVC, 100% done, TODO: finish/debug/improve UX)ota-updateand generator finally mergedKnown issues: (checked is fixed)
What out of scope of this PR:
ghaf@netvm:/persist/sysupdate)Type of Change
Related Issues / Tickets
Checklist
make-checksand it passesTesting Instructions
nix build -L ".#lenovo-x1-gen11-sysupdate-debug" --show-tracescp ./result/* ghaf@carbon:/persist/sysupdatesudo ota-update image status, first slot should be used, legacy and active, second slot -- empty and legacysudo ota-update image --dry-run install --manifest /persist/sysupdate/....manifest(exact manifest name could vary)sudo ota-update image install --manifest /persist/sysupdate/....manifestsudo ota-update image statussudo ota-update image status-- second slot should be marked as bothusedandactive(and not legacy).versionfile in ghaf source tree, add ".0" to it, repeat steps 2-8 with it.N. All other behavior should be unchanged
On problems since 4th step -- please collect output from:
sudo bootctl list --json=prettysudo -E LC_ALL=C lvs --all --report-format json --units B --no-suffixsudo ota-update image status(if it works of course)Applicable Targets
aarch64aarch64x86_64x86_64x86_64Installation Method
nixos-rebuild ... switchTest Steps To Verify: