Install Guix OS in a standalone HVM

I dont use the GUI installer, but here are manual steps.
(Change the IP addresses to match your case.)

Once you have created your HVM, note the IP address and gateway from
qvm-ls -n , or in qube settings.
Increase the size of the System disk to 20G

  1. Start the HVM from the guix iso.
  2. Select the language.
  3. Select “Install using the shell based process”

You can switch from X to ttys using Ctrl+Shift+Alt+F2. and then switch
between ttys using Win+Alt+F? - works for me, ymmv

  1. At the prompt, hit ENTER to get command prompt.
  2. ifconfig -a will show you network interfaces.
  3. Configure the interface with the details you noted earlier: e.g
    ifconfig eth0 netmask up
  4. Set route: ip route add default via
  5. Configure disk: use cfdisk /dev/xvda and create a single partition
    on /dev/xvda
  6. mkfs.ext4 -L guix_root /dev/xvda1
  7. mount LABEL=guix_root /mnt
  8. If you want swap use /dev/xvdc - use cfdisk to create partition and
    mkswap to set up swap space.
  9. herd start cow-store /mnt
  10. mkdir /mnt/etc
  11. cp /etc/configuration/lightweight-desktop.scm /mnt/etc/config.scm
  • other options are available, desktop.scm will give you a full desktop.
  1. Edit /mnt/etc/config.scm - I use legacy GRUB, so remove the efi-
    from the bootloader section, and point it at /dev/xvda
    Change host-name and user-name as you will.
  2. guix system init /mnt/etc/config.scm /mnt

Watch the magic.
Restart the HVM.


Note: as it’s a specific topic I split the Guix OS installation in a dedicated topic.

I have no idea how it will appear to Forum users :frowning:

As a new topic (and for you, the same mail thread but with a new Subject:).
On the previous topic, a comment indicates that a new topic was created for Guix-OS.

1 Like

sorry that ive been not that active in the last time on the forum, i got a late shift now in my work so mostly i just go sleep after my work and in the early im just doing different things but im not that much in the late shifts in front of my laptop but thats isnt the topic here :slight_smile:

first of all thanks for this solution but yep you hijacked my thread lol
your tutorial worked for me pretty good but i got troubles in pointing the dev/xvda to the config /mnt/etc/configuration/config.scm
its just telling me wrong uuid
but anyhow maybe i would be able to fix this but the thing is (why im always choosing graphical install is) im not able to resize my window so i cant see what im typing on my comand window
thats pretty annoying

also im not able to switch between the ttys… im just able to open the doc. but yeah… now i got pretty annoyed and maybe i would try at thursday or friday
thursday would be the day where i would be off and on friday i got night shift and at the weekend i got everytime 12h shifts… so there would be enough time to take a look at it

it also cant be impossible to have to config. the network in every vm… maybe there would be a workaround

Thanks for that explanation.

I didn’t think I hijacked your thread: you asked how to install Guix - I
told you.
You are getting the "UUID " error because you haven’t edited the config
file properly.
blkid will show you the UUID - note the entry for /dev/xvda
Edit the config file to use that entry.
(NB you can run blkid /dev/xvda >> /mnt/etc/configuration/config.scm,
and then cut and paste the entry in to place in the file.)

If your tty output is larger than the screen, you can either keep
using clear, or change the output size, using stty rows SIZE -
obviously you want SIZE to be the maximum that’s workable without
running off the window.

If the shortcut I use to switch between ttys, (Meta+Tab+FX), doesn’t work
for you, use the other options suggested. You’ll need to be on tty2 and
up for this to work - if you are on the "graphical installer " screen,
Ctrl+Shift+Alt+F2 brings me to tty2.

I dont understand your comment about config for the network.

1 Like

“hijacked” i was more meaning overtook? but anyhow, now we got a thread which looks like a how to ^^

for graphical i tried Ctrl + Shift + Alt + F2 but i dont reach the tty if i do this, ill get into the docs if i press this and im also not able to switch back after it

i meant, for every standalone qube you have to get into the network settings and configure the ipv4 settings, thats a bit annoying

The docs are on tty2 - you can use the Meta+Tab+F? to switch between
ttys - the graphical installer is on F1

For what it’s worth, I have never been able to get the graphical installer
to work while setting the IP in a tty.

As to setting IP manually, I always prefer to do this. Some standalones
will pick up the address with DHCP - since I’m not interested in this I
haven’t bothered to investigate.

why prefer setting ip manually up? why is it bad to let this dhcp do? is there a way to let dhcp do this?

One can work around the network issue via:

touch /tmp/installer-assume-online

That will allow one to configure the network, and then resume the gui install.
I also did:

echo "nameserver" >>/etc/resolv.conf
ping -c3

I can’t claim that it successfully installed, as it is currently chewing up CPU and has stopped responding the to the magic key sequences, but I did get thru all the GUI screens to the point where it claimed to be installing stuff, but it might have just ran into the next bug preventing success.

Update: I had to kill it. Several times. It was just using lots of CPU and making zero progress. The good thing is that the config which the GUI install created persists on the filesystem. Nothing much else there. The break-thru insight here was that 400MB min and 400MB max memory was insufficient. I set both to 4000MB and also added 2 more VCPU just for grins. System is now installing, using the manual approach, but with the config created by the GUI install attempt.

So now that I have guix installed in a standalone VM, how do I get the inter-VM clip working?

You will have to port the Qubes tools to Guix: at a minimum you need
qrexec framework running.