Skip to content

Commit

Permalink
Merge pull request NixOS#35188 from sorki/overlayfs (DTZ: nouveau)
Browse files Browse the repository at this point in the history
use overlayfs by default for netboot and iso

(cherry picked from commit 3ab846e)
  • Loading branch information
infinisil authored and dtzWill committed Feb 5, 2020
1 parent 9abd8d4 commit bc4b86e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 17 deletions.
16 changes: 9 additions & 7 deletions nixos/modules/installer/cd-dvd/iso-image.nix
Expand Up @@ -555,16 +555,18 @@ in
};

fileSystems."/nix/store" =
{ fsType = "unionfs-fuse";
device = "unionfs";
options = [ "allow_other" "cow" "nonempty" "chroot=/mnt-root" "max_files=32768" "hide_meta_files" "dirs=/nix/.rw-store=rw:/nix/.ro-store=ro" ];
{ fsType = "overlay";
device = "overlay";
options = [
"lowerdir=/nix/.ro-store"
"upperdir=/nix/.rw-store/store"
"workdir=/nix/.rw-store/work"
];
};

boot.initrd.availableKernelModules = [ "squashfs" "iso9660" "uas" ];
boot.initrd.availableKernelModules = [ "squashfs" "iso9660" "uas" "overlay" ];

boot.blacklistedKernelModules = [ "nouveau" ];

boot.initrd.kernelModules = [ "loop" ];
boot.initrd.kernelModules = [ "loop" "overlay" ];

# Closures to be copied to the Nix store on the CD, namely the init
# script and the top-level system configuration directory.
Expand Down
14 changes: 9 additions & 5 deletions nixos/modules/installer/netboot/netboot.nix
Expand Up @@ -50,14 +50,18 @@ with lib;
};

fileSystems."/nix/store" =
{ fsType = "unionfs-fuse";
device = "unionfs";
options = [ "allow_other" "cow" "nonempty" "chroot=/mnt-root" "max_files=32768" "hide_meta_files" "dirs=/nix/.rw-store=rw:/nix/.ro-store=ro" ];
{ fsType = "overlay";
device = "overlay";
options = [
"lowerdir=/nix/.ro-store"
"upperdir=/nix/.rw-store/store"
"workdir=/nix/.rw-store/work"
];
};

boot.initrd.availableKernelModules = [ "squashfs" ];
boot.initrd.availableKernelModules = [ "squashfs" "overlay" ];

boot.initrd.kernelModules = [ "loop" ];
boot.initrd.kernelModules = [ "loop" "overlay" ];

# Closures to be copied to the Nix store, namely the init
# script and the top-level system configuration directory.
Expand Down
13 changes: 8 additions & 5 deletions nixos/modules/system/boot/stage-1-init.sh
Expand Up @@ -328,8 +328,10 @@ mountFS() {

# Filter out x- options, which busybox doesn't do yet.
local optionsFiltered="$(IFS=,; for i in $options; do if [ "${i:0:2}" != "x-" ]; then echo -n $i,; fi; done)"
# Prefix (lower|upper|work)dir with /mnt-root (overlayfs)
local optionsPrefixed="$( echo "$optionsFiltered" | sed -E 's#\<(lowerdir|upperdir|workdir)=#\1=/mnt-root#g' )"
echo "$device /mnt-root$mountPoint $fsType $optionsFiltered" >> /etc/fstab
echo "$device /mnt-root$mountPoint $fsType $optionsPrefixed" >> /etc/fstab
checkFS "$device" "$fsType"
Expand All @@ -348,10 +350,11 @@ mountFS() {
;;
esac
# 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%=*}"
# Create backing directories for overlayfs
if [ "$fsType" = overlay ]; then
for i in upper work; do
dir="$( echo "$optionsPrefixed" | grep -o "${i}dir=[^,]*" )"
mkdir -m 0700 -p "${dir##*=}"
done
fi
Expand Down

0 comments on commit bc4b86e

Please sign in to comment.