* gnu/packages/linux-initrd.scm: Remove.
* gnu/system/linux-initrd.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
* gnu/system.scm (<operating-system>): Change default 'initrd' value
to (gnu-system-initrd).
(operating-system-derivation): Bind 'operating-system-initrd'. Pass
'menu-entry' an initrd file name instead of a package.
* gnu/system/grub.scm (grub-configuration-file): Expect 'initrd' to be
file name.
* gnu/packages/linux-initrd.scm (qemu-initrd): Use 'mkdir-p' instead of
'mkdir' for /root/xchg and /root/{share,lib}. When TO-LOAD is a
symlink, resolve it.
(gnu-system-initrd): Fix typo in message.
* gnu/system/vm.scm (qemu-image): Use (guix build linux-initrd). Remove
'mknod' calls; use 'make-essential-device-nodes' to populate /dev on
the target image.
* gnu/packages/linux-initrd.scm (qemu-initrd): When /root/dev exists,
don't call 'make-essential-device-nodes'.
* gnu/packages/linux-initrd.scm (qemu-initrd): Add (guix build utils) to
#:modules, and use it. Copy .scm and .go files to /root.
* guix/build/linux-initrd.scm (bind-mount): New procedure.
* gnu/packages/linux-initrd.scm (qemu-initrd): Add #:modules argument.
Factorize and move some of the code to...
* guix/build/linux-initrd.scm: ... here. New file.
* Makefile.am (MODULES): Add it.