[Nix-dev] NixOS installation on multi-boot system with GRUB

宋文武 iyzsong at gmail.com
Thu Aug 27 14:14:58 CEST 2015


Henning Thielemann <lemming at henning-thielemann.de> writes:

> I like to install NixOS it to an individual partition on my machine. I 
> used the graphical installation DVD and the first problem I got is that 
> the touchpad of my machine is ignored. Unfortunately I do not know how to 
> control KDE/plasma with keys. An external USB mouse solved that problem 
> for now.
>
> I continued with installation to the reserved partition on my hard disk. 
> The NixOS installation guide says "You must set the option 
> boot.loader.grub.device to specify on which disk the GRUB boot loader is 
> to be installed. Without it, NixOS cannot boot." However, I already have a 
> GRUB installed by Ubuntu and I want to leave it this way. I tried to add a 
> grub entry for NixOS manually but when booting into NixOS this way NixOS 
> stops with "/init not found" and the CAPS LOCK key LED blinks.
>
> Thus I should certainly find out how to properly set up NixOS on a 
> multi-boot system with GRUB, first. I have partitions for Windows, Ubuntu, 
> NixOS and the /home directory. Ubuntu installed and maintains GRUB. How 
> can I add NixOS to the GRUB menu under this circumstance?
I think you can:
  install NixOS's GRUB to its boot partitation, then add a 'chainloader'
  menu entry to your main GRUB (installed into MBR by Ubuntu).
  I did this with btrfs (ext4 did't work for me):
    boot.loader.grub.device = "/dev/sdaX";
  (sdaX is the boot or root partition)
  # grub.cfg
  menuentry 'NixOS' {
    set root='(hd0,X)'
    chainloader +1
  }
    
  install NixOS without GRUB, then add a 'configfile' menu entry to your
  GRUB to load NixOS's grub.cfg.
  I guess it look like:
    boot.loader.grub.device = "nodev";
  # grub.cfg
  menuentry 'NixOS' {
    set root='(hd0,X)'
    configfile '/boot/grub/grub.cfg';
  }


More information about the nix-dev mailing list