Hi Rene, > I'm reviewing how GNU GuixSD/Linux boot, > > $ cat /proc/cmdline > BOOT_IMAGE=/gnu/store/jnww66749r8ck6l2rwgvpzzbnazs0392-linux-libre-4.15.5/bzImage > --root=root --system=/gnu/store/qcia33hqzi6md3q18frs16piis6xxy9i-system > --load=/gnu/store/qcia33hqzi6md3q18frs16piis6xxy9i-system/boot > > To perform the activation is done as a parameter through the scheme file > '/var/guix/profiles/system/boot'. > > In GNU Hurd as a workaround I add the lines to the '/libexec/rc' file: > -- > echo running GuixSD boot .. > guile -s /var/guix/profiles/system/boot > -- > > After loading GNU Mach and GNU Hurd it shows: > -- > In unknown file: > ?: 9 [apply-smob/1 #<catch-closure 1a3920>] > In ice-9/boot-9.scm: > 66: 8 [call-with-prompt prompt0 ...] > In ice-9/eval.scm: > 432: 7 [eval # #] > In ice-9/boot-9.scm: > 2412: 6 [save-module-excursion #<procedure 1b4ce0 at > ice-9/boot-9.scm:4084:3 ()> > ] > 4089: 5 [#<procedure 1b4ce0 at ice-9/boot-9.scm:4084:3 ()>] > In /var/guix/profiles/system/boot: > 1: 4 [#<procedure 223900 ()>] > In unknown file: > ?: 3 [primitive-load > "/gnu/store/rjp22rca3gv8lrrbb9j4sry9i3n1bvlp-activate"] > In ice-9/eval.scm: > 432: 2 [eval # ()] > In > /gnu/store/6dvydkcda77dxkpbn5jsj4vsmr19gb7v-module-import/gnu/build/activatio > n.scm: > 449: 1 [activate-current-system #f] > In unknown file: > ?: 0 [symlink #f "/run/current-system.new"] > > ERROR: In procedure symlink: > ERROR: Wrong type (expecting string): #f
This shows that “activate-current-system” from the (gnu build activation) module is given #f, when actually it should be given a string containing the location of the system in the store. For reconfiguration the new system can be specified with the GUIX_NEW_SYSTEM environment variable. You may need to set this environment variable before booting. The problem here is that the default system is either whatever GUIX_NEW_SYSTEM holds or the result of evaluating “(boot-time-system)”, which is Linux-specific: --8<---------------cut here---------------start------------->8--- (define (boot-time-system) "Return the '--system' argument passed on the kernel command line." (find-long-option "--system" (linux-command-line))) --8<---------------cut here---------------end--------------->8--- We should adjust this procedure to do the right thing when we didn’t boot Linux. Hope this helps! -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net