gnu: vm: 'qemu-image' populates /dev on the target root file system.
* 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'.master
parent
e911470857
commit
7c1d8146a7
|
@ -284,8 +284,9 @@ the Linux kernel.")
|
|||
(mkdir "/root/xchg")
|
||||
(mkdir-p "/root/nix/store")
|
||||
|
||||
(mkdir "/root/dev")
|
||||
(make-essential-device-nodes #:root "/root/dev")
|
||||
(unless (file-exists? "/root/dev")
|
||||
(mkdir "/root/dev")
|
||||
(make-essential-device-nodes #:root "/root"))
|
||||
|
||||
;; Mount the host's store and exchange directory.
|
||||
(mount-qemu-smb-share "/store" "/root/nix/store")
|
||||
|
|
|
@ -210,7 +210,8 @@ process."
|
|||
`(let ()
|
||||
(use-modules (ice-9 rdelim)
|
||||
(srfi srfi-1)
|
||||
(guix build utils))
|
||||
(guix build utils)
|
||||
(guix build linux-initrd))
|
||||
|
||||
(let ((parted (string-append (assoc-ref %build-inputs "parted")
|
||||
"/sbin/parted"))
|
||||
|
@ -223,9 +224,7 @@ process."
|
|||
(initrd (string-append (assoc-ref %build-inputs "initrd")
|
||||
"/initrd"))
|
||||
(linux (string-append (assoc-ref %build-inputs "linux")
|
||||
"/bzImage"))
|
||||
(makedev (lambda (major minor)
|
||||
(+ (* major 256) minor))))
|
||||
"/bzImage")))
|
||||
|
||||
(define (read-reference-graph port)
|
||||
;; Return a list of store paths from the reference graph at PORT.
|
||||
|
@ -265,7 +264,6 @@ process."
|
|||
(assoc-ref %build-inputs "gawk") "/bin"))
|
||||
|
||||
(display "creating partition table...\n")
|
||||
(mknod "/dev/vda" 'block-special #o644 (makedev 8 0))
|
||||
(and (zero? (system* parted "/dev/vda" "mklabel" "msdos"
|
||||
"mkpart" "primary" "ext2" "1MiB"
|
||||
,(format #f "~aB"
|
||||
|
@ -273,7 +271,6 @@ process."
|
|||
(* 5 (expt 2 20))))))
|
||||
(begin
|
||||
(display "creating ext3 partition...\n")
|
||||
(mknod "/dev/vda1" 'block-special #o644 (makedev 8 1))
|
||||
(and (zero? (system* mkfs "-F" "/dev/vda1"))
|
||||
(begin
|
||||
(display "mounting partition...\n")
|
||||
|
@ -291,6 +288,9 @@ process."
|
|||
thing)))
|
||||
(things-to-copy))
|
||||
|
||||
;; Populate /dev.
|
||||
(make-essential-device-nodes #:root "/fs")
|
||||
|
||||
(call-with-output-file "/fs/boot/grub/grub.cfg"
|
||||
(lambda (p)
|
||||
(format p "
|
||||
|
@ -335,7 +335,8 @@ menuentry \"Boot-to-Guile! (GNU System technology preview)\" {
|
|||
#:make-disk-image? #t
|
||||
#:disk-image-size disk-image-size
|
||||
#:references-graphs (map input->name+derivation inputs-to-copy)
|
||||
#:modules '((guix build utils))))
|
||||
#:modules '((guix build utils)
|
||||
(guix build linux-initrd))))
|
||||
|
||||
|
||||
;;;
|
||||
|
|
Reference in New Issue