!coeAONBrWyDJnYMbMi:nixos.org

NixOS System Operations

674 Members
About system administration for running NixOS systems in production. Declaratively manage your operations. | Room recommendations: #networking:nixos.org184 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
6 Apr 2024
@k900:0upti.meK900(or even steal that one wholesale as I'm pretty sure it doesn't have any WSL specific hacks left)09:44:39
@steveej0:matrix.orgsteveej i thought about an activation that too. does that work in the nixos-rebuild boot case? i thought it's only executed when the new system is booted, which in my case relies on /init pointing to the new system 09:47:41
@k900:0upti.meK900It doesn't, no09:48:33
@k900:0upti.meK900The more correct way to do it would be through a bootloader script, yes09:48:43
@k900:0upti.meK900But the important thing here is that you can't just symlink NixOS init to the right place and expect it to work09:49:01
@k900:0upti.meK900Because normally activation happens before that09:49:06
@k900:0upti.meK900So you have to have your own thing that will run the activation script and then run the stage2 init09:49:24
@steveej0:matrix.orgsteveej

FWIW, this works imperatively on the system:

set -xeEu -o pipefail

result="$(nix build --refresh --tarball-ttl 0 github:holochain/holochain-infra/workorch-zos#nixosConfigurations.tfgrid-devnet-vm0.config.system.build.toplevel --print-out-paths --no-link)"

ln -sf "${result}"/init /init
09:49:30
@steveej0:matrix.orgsteveeji'd be ok putting this anywhere appropriate. but i want to prevent running it anywhere else other than on the actual target system, for probably obvious reasons 😆09:50:47
@steveej0:matrix.orgsteveejthis is just the update use-case. i've already got something for the initial system assembly09:51:07
@steveej0:matrix.orgsteveej i'm looking through the shim code you've sent me and am intimidated by wrangling with /dev entries :-) is this used as a PID1 shim? 09:53:34
@steveej0:matrix.orgsteveejeither i'm oversimplifying or my use-case is actually simpler than in WSL09:54:17
@k900:0upti.meK900The /dev stuff can be ignored09:55:47
@k900:0upti.meK900It's a workaround for a stupid WSL bug09:55:50
@tumble1999:matrix.orgTumble joined the room.10:11:52
@steveej0:matrix.orgsteveej

this works (obviously it's not a noop anymore)

      boot.loader.external.installHook = pkgs.writeShellScript "noop" ''
        ${pkgs.coreutils}/bin/ln -sf "$1"/init /init
      '';
10:37:57
@adam:robins.wtf@adam:robins.wtf The lxc container does something similar 11:29:02
@sammy:cherrykitten.devSammy (It/Its) joined the room.13:05:26

Show newer messages


Back to Room ListRoom Version: 10