summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFranz Pletz <fpletz@fnordicwalking.de>2019-09-22 17:14:47 +0200
committerFranz Pletz <fpletz@fnordicwalking.de>2019-09-22 17:14:47 +0200
commit7da962d31b9113f16161510909a66a397dad91fc (patch)
tree1bd80fd8c43c978fe87abe42b868a2151894e039
parentmutt: 1.12.1 -> 1.12.2 (#69239) (diff)
downloadnixpkgs-origin/fix-predictable-ifnames-in-initrd.tar.gz
nixos/stage-1: add default link units to initrdorigin/fix-predictable-ifnames-in-initrd
Also all udev rules.
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh6
-rw-r--r--nixos/modules/system/boot/stage-1.nix17
2 files changed, 16 insertions, 7 deletions
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index b817a45deba3..ce292ccdf56e 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -204,6 +204,8 @@ done
# Create device nodes in /dev.
@preDeviceCommands@
echo "running udev..."
+mkdir -p /etc/systemd
+ln -sfn @linkUnits@ /etc/systemd/network
mkdir -p /etc/udev
ln -sfn @udevRules@ /etc/udev/rules.d
mkdir -p /dev/.mdadm
@@ -260,7 +262,7 @@ checkFS() {
return 0
fi
- # Device might be already mounted manually
+ # Device might be already mounted manually
# e.g. NBD-device or the host filesystem of the file which contains encrypted root fs
if mount | grep -q "^$device on "; then
echo "skip checking already mounted $device"
@@ -343,7 +345,7 @@ mountFS() {
elif [ "$fsType" = f2fs ]; then
echo "resizing $device..."
fsck.f2fs -fp "$device"
- resize.f2fs "$device"
+ resize.f2fs "$device"
fi
;;
esac
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 4c2d130d5a5d..5ba2e6f75a6e 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -120,6 +120,7 @@ let
# Copy udev.
copy_bin_and_libs ${udev}/lib/systemd/systemd-udevd
+ copy_bin_and_libs ${udev}/lib/systemd/systemd-sysctl
copy_bin_and_libs ${udev}/bin/udevadm
for BIN in ${udev}/lib/udev/*_id; do
copy_bin_and_libs $BIN
@@ -198,6 +199,14 @@ let
''; # */
+ linkUnits = pkgs.runCommand "link-units" {
+ allowedReferences = [ extraUtils ];
+ preferLocalBuild = true;
+ } ''
+ mkdir -p $out
+ cp -v ${udev}/lib/systemd/network/*.link $out/
+ '';
+
udevRules = pkgs.runCommand "udev-rules" {
allowedReferences = [ extraUtils ];
preferLocalBuild = true;
@@ -206,9 +215,7 @@ let
echo 'ENV{LD_LIBRARY_PATH}="${extraUtils}/lib"' > $out/00-env.rules
- cp -v ${udev}/lib/udev/rules.d/60-cdrom_id.rules $out/
- cp -v ${udev}/lib/udev/rules.d/60-persistent-storage.rules $out/
- cp -v ${udev}/lib/udev/rules.d/80-drivers.rules $out/
+ cp -v ${udev}/lib/udev/rules.d/*.rules $out/
cp -v ${pkgs.lvm2}/lib/udev/rules.d/*.rules $out/
${config.boot.initrd.extraUdevRulesCommands}
@@ -222,7 +229,7 @@ let
--replace ${pkgs.lvm2}/sbin ${extraUtils}/bin \
--replace ${pkgs.mdadm}/sbin ${extraUtils}/sbin \
--replace ${pkgs.bash}/bin/sh ${extraUtils}/bin/sh \
- --replace ${udev}/bin/udevadm ${extraUtils}/bin/udevadm
+ --replace ${udev} ${extraUtils}
done
# Work around a bug in QEMU, which doesn't implement the "READ
@@ -257,7 +264,7 @@ let
${pkgs.buildPackages.busybox}/bin/ash -n $target
'';
- inherit udevRules extraUtils modulesClosure;
+ inherit linkUnits udevRules extraUtils modulesClosure;
inherit (config.boot) resumeDevice;