From b1995341ce803c396068a6e41f8cd64b09bbf2f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Thu, 8 May 2014 00:22:26 +0200
Subject: [PATCH] linux-initrd: Update /etc/mtab.

* guix/build/linux-initrd.scm (mount-root-file-system): Populate
  /root/etc/mtab.
  (mount-file-system): Update ROOT/etc/mtab.
---
 guix/build/linux-initrd.scm | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/guix/build/linux-initrd.scm b/guix/build/linux-initrd.scm
index c09cdeafb4f..6dd7c6e9583 100644
--- a/guix/build/linux-initrd.scm
+++ b/guix/build/linux-initrd.scm
@@ -228,7 +228,9 @@ (define* (mount-root-file-system root type
     (lambda args
       (format (current-error-port) "exception while mounting '~a': ~s~%"
               root args)
-      (start-repl))))
+      (start-repl)))
+
+  (copy-file "/proc/mounts" "/root/etc/mtab"))
 
 (define (check-file-system device type)
   "Run a file system check of TYPE on DEVICE."
@@ -279,7 +281,14 @@ (define flags->bit-mask
        (mount source mount-point type (flags->bit-mask flags)
               (if options
                   (string->pointer options)
-                  %null-pointer))))))
+                  %null-pointer))
+
+       ;; Update /etc/mtab.
+       (mkdir-p (string-append root "/etc"))
+       (let ((port (open-output-file (string-append root "/etc/mtab"))))
+         (format port "~a ~a ~a ~a 0 0~%"
+                 source mount-point type options)
+         (close-port port))))))
 
 (define (switch-root root)
   "Switch to ROOT as the root file system, in a way similar to what
-- 
GitLab