Mount /dev when creating a VM image from RPMs

Currently, using `runInLinuxVM` fails for CentosOS7 versions >=7.4. The
error manifests itself by the VM powering down after failing to
initialize the NSS library. The reason for this is that some devices in
/dev are required during the built process of the VM.

To fix this issue, we mount /dev before calling chroot.
This commit is contained in:
MZauchner
2024-11-13 09:44:50 +01:00
parent 8d20628da6
commit 6355db00b2
+3 -1
View File
@@ -449,6 +449,8 @@ rec {
# Make the Nix store available in /mnt, because that's where the RPMs live.
mkdir -p /mnt${storeDir}
${util-linux}/bin/mount -o bind ${storeDir} /mnt${storeDir}
# Some programs may require devices in /dev to be available (e.g. /dev/random)
${util-linux}/bin/mount -o bind /dev /mnt/dev
# Newer distributions like Fedora 18 require /lib etc. to be
# symlinked to /usr.
@@ -487,7 +489,7 @@ rec {
rm /mnt/.debug
${util-linux}/bin/umount /mnt${storeDir} /mnt/tmp ${lib.optionalString unifiedSystemDir "/mnt/proc"}
${util-linux}/bin/umount /mnt${storeDir} /mnt/tmp /mnt/dev ${lib.optionalString unifiedSystemDir "/mnt/proc"}
${util-linux}/bin/umount /mnt
'';