summary refs log tree commit diff
path: root/nixos/modules/system
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-07-30 15:44:47 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-07-30 16:04:15 +0200
commite68b0c7f5f14b4bef23303ec0316bcce88f05300 (patch)
treef22415f5075e5f622a7e9b990b2d36292566627a /nixos/modules/system
parentd45dcf348e451dd56c0c994a894f4c22b653fb71 (diff)
downloadnixlib-e68b0c7f5f14b4bef23303ec0316bcce88f05300.tar
nixlib-e68b0c7f5f14b4bef23303ec0316bcce88f05300.tar.gz
nixlib-e68b0c7f5f14b4bef23303ec0316bcce88f05300.tar.bz2
nixlib-e68b0c7f5f14b4bef23303ec0316bcce88f05300.tar.lz
nixlib-e68b0c7f5f14b4bef23303ec0316bcce88f05300.tar.xz
nixlib-e68b0c7f5f14b4bef23303ec0316bcce88f05300.tar.zst
nixlib-e68b0c7f5f14b4bef23303ec0316bcce88f05300.zip
Mount unionfs-fuse filesystems using the normal fileSystems option
Diffstat (limited to 'nixos/modules/system')
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh10
-rw-r--r--nixos/modules/system/boot/stage-1.nix8
2 files changed, 13 insertions, 5 deletions
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 7adb932aba7f..1b51c11e351a 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -4,7 +4,8 @@ targetRoot=/mnt-root
 console=tty1
 
 export LD_LIBRARY_PATH=@extraUtils@/lib
-export PATH=@extraUtils@/bin:@extraUtils@/sbin
+export PATH=@extraUtils@/bin
+ln -s @extraUtils@/bin /bin
 
 
 fail() {
@@ -262,6 +263,13 @@ mountFS() {
 
     checkFS "$device" "$fsType"
 
+    # Create backing directories for unionfs-fuse.
+    if [ "$fsType" = unionfs-fuse ]; then
+        for i in $(IFS=:; echo ${options##*,dirs=}); do
+            mkdir -m 0700 -p /mnt-root"${i%=*}"
+        done
+    fi
+
     echo "mounting $device on $mountPoint..."
 
     mkdir -p "/mnt-root$mountPoint" || true
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index b51ca9f7a362..58ff97671f3d 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -35,6 +35,7 @@ let
     }
     ''
       mkdir -p $out/bin $out/lib
+      ln -s $out/bin $out/sbin
 
       # Copy what we need from Glibc.
       cp -pv ${pkgs.glibc}/lib/ld*.so.? $out/lib
@@ -46,11 +47,10 @@ let
       cp -pv ${pkgs.gcc.gcc}/lib*/libgcc_s.so.* $out/lib
 
       # Copy BusyBox.
-      cp -rvd ${pkgs.busybox}/{bin,sbin} $out/
-      chmod -R u+w $out
+      cp -pvd ${pkgs.busybox}/bin/* ${pkgs.busybox}/sbin/* $out/bin/
 
       # Copy some utillinux stuff.
-      cp -v ${pkgs.utillinux}/sbin/blkid $out/bin
+      cp -vf ${pkgs.utillinux}/sbin/blkid $out/bin
       cp -pdv ${pkgs.utillinux}/lib/libblkid*.so.* $out/lib
       cp -pdv ${pkgs.utillinux}/lib/libuuid*.so.* $out/lib
 
@@ -73,7 +73,7 @@ let
 
       # Copy modprobe.
       cp -v ${pkgs.kmod}/bin/kmod $out/bin/
-      ln -s kmod $out/bin/modprobe
+      ln -sf kmod $out/bin/modprobe
 
       ${config.boot.initrd.extraUtilsCommands}