I.e., modules that use "require = [options]". Nowadays that should be
written as
{
options = { ... };
config = { ... };
};
Also, use "imports" instead of "require" in places where we actually
import another module.
Otherwise clients get a "Stale NFS handle" error after the server
reboots. Not clear why this is the case, since the fsid shouldn't
change across reboots...
This checks if nixpart is able to mount the filesystems from scratch again, just
with the information provided by the kickstart file.
Found an odd issue about findmnt here, because it seems to not show /mnt/boot,
even though it _is_ mounted and even shows up in /proc/self/mountinfo. I'm not
quite sure whether this is a bug or I'm doing something wrong here, but might
need some investigation.
Mountpoints are checked by adding empty canary files, remounting and checking if
the same canaries still exist. If they don't, the partitioner either has
formatted the filesystem or just not mounted the device. Either way, both
shouldn't happen, but that's why we're testing it, no? :-)
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
As the whole partitioning run is quite an invasive procedure, we want to
especially make sure that it doesn't unmount any filesystems that were mounted
before the partitioner was run.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This will ensure that we don't get errors because the kernel doesn't recognize
the new partitioning scheme on some conditions or architectures, such as i686.
See here for the Hydra build log on i686:
http://hydra.nixos.org/build/5432090/download/1/log.html
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
At the moment, we still use kickstart syntax, but this is going to change
soon[TM] to be more NixOS-integrated. The tests use emptyDiskImages option
introduced in the previous commit, so we don't have to create a whole bunch of
duplicate expressions.
Testing itself is done exclusively on /dev/vdb and /dev/vdc. And there is a
check (ensureSanity) to make sure none of the tests are actually mutating
/dev/vda.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Thus
networking.interfaces = [ { name = "eth0"; ipAddress = "192.168.15.1"; } ];
can now be written as
networking.interfaces.eth0.ipAddress = "192.168.15.1";
The old notation still works though.
Running agetty on ttyS0 interferes with the backdoor, which uses ttyS0
as its standard error. After agetty starts, writes to the stderr file
descriptor will return EIO (though doing "exec 2>/proc/self/fd/2" will
miracuously fix this).
http://hydra.nixos.org/build/3252782
GRUB 2 doesn't want to boot off a LVM disk:
machine# installing the GRUB 2 boot loader on /dev/vda...
machine# Path `/boot/grub' is not readable by GRUB on boot. Installation is impossible. Aborting.
machine# /nix/store/7yc535h1lim1a5gkhjb3fr6c8193dv8w-install-grub.pl: installation of GRUB on /dev/vda failed
In theory GRUB 2 supports booting from LVM, but we probably need to
generate the right grub.conf (see
https://wiki.archlinux.org/index.php/GRUB2#LVM).
http://hydra.nixos.org/build/2904680