diff --git a/default.nix b/default.nix
index d628a3a52319..3c174ca13e5b 100644
--- a/default.nix
+++ b/default.nix
@@ -10,6 +10,8 @@ let
 in
 
 {
+  inherit config;
+
   system = config.system.build.system;
 
   # The following are used by nixos-rebuild.
diff --git a/modules/system/boot/stage-1-init.sh b/modules/system/boot/stage-1-init.sh
index 8d062ac96c87..3f11da289506 100644
--- a/modules/system/boot/stage-1-init.sh
+++ b/modules/system/boot/stage-1-init.sh
@@ -141,13 +141,18 @@ checkFS() {
     # Only check block devices.
     if ! test -b "$device"; then return 0; fi
 
+    eval $(fstype "$device")
+
+    # Don't check ROM filesystems.
+    if test "$FSTYPE" = iso9660 -o "$FSTYPE" = udf; then return 0; fi
+
     # Don't run `fsck' if the machine is on battery power.  !!! Is
     # this a good idea?
     if ! onACPower; then
         echo "on battery power, so no \`fsck' will be performed on \`$device'"
         return 0
     fi
-    
+
     FSTAB_FILE="/etc/mtab" fsck -V -v -C -a "$device"
     fsckResult=$?