Talk:Immutable root with atomic upgrades

From Alpine Linux

User:Sb1, regarding diskless mode note: thanks for reminding about it, but it's a different setup with its own features, so I reduced the note, but left the links. Similar guide to diskless chroot setup would be really appreciated btw. Mvsn (talk) 23:04, 31 May 2021 (UTC)

rEFInd

The rEFInd configuration provided in this does not appear to work universally, as rEFInd assumes that the loader and initrd parameters in the MenuEntry are located within the ESP partition. To produce a bootable version of this setup, I had to move my kernel and my initramfs to the ESP partition.— Preceding unsigned comments added by Machinestops (talkcontribs) 12:01, 31 May 2023‎


Machinestops, not sure I follow. The config field volume defines which partition contains the path defined in the fields loader and initrd. If you have btrfs volume with the label other than ROOT, you have to also change volume field in the config. Kernel and initramfs should reside in the btrfs volume, they are the part of the snapshot. Mvsn (talk)

System mutation scripts

It might be helpful to note that execline should be included in the list of packages installed while setting up the initial root snapshot, and also that the scripts provided should be downloaded (perhaps provide them as raw files somehow?). Without them, there is no way to modify the system other than manually mounting, creating an RW snapshot, and performing the link migration manually, which might prove bothersome for some (or unclear).

Documenting the functionality of the scripts with comments might also be useful. The level of piping and nesting in these scripts makes it difficult to follow along for anyone unfamiliar with execline.— Preceding unsigned comments added by Machinestops (talkcontribs) 12:10, 31 May 2023‎

rEFInd config does not work (or i'm dumb)

The provided rEFInd config seems to not work anymore. rEFInd say me: Error: Not Found while loading vmlinuz-lts.

rEFInd config:

menuentry "Alpine Linux 2" {
    icon /EFI/refind/icons/os_linux.png
    volume "ROOT"
    loader /current/0/@/boot/vmlinuz-lts
    initrd /current/0/@/boot/initramfs-lts
    options "root=UUID=716209ed-16f5-421a-8580-0c65764b58eb rootfstype=btrfs rootflags=subvol=/current/0/@,ro,noatime quiet splash"
}

FS structure:

/mnt
├── commons
│   ...
├── current -> ./links/20231220142434tzbKGDKF
├── fstab
├── links
│   └── 20231220142434tzbKGDKF
│       ├── 0 -> ../../snapshots/20231220142341XRxLvnIW
│       ...
├── next
└── snapshots
    └── 20231220142341XRxLvnIW
        └── @
            └── <system>

The files exists:

$ ls /mnt/snapshots/20231220142341XRxLvnIW/@/boot/
boot  config-lts  initramfs-lts  System.map-lts  vmlinuz-lts

The label/UUID is good:

/dev/nvme0n1p3: LABEL="ROOT" UUID="716209ed-16f5-421a-8580-0c65764b58eb" ...

For me, it looks like what you did..