diff -Nur a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py --- a/src/modules/grubcfg/main.py 2016-10-14 15:11:26.000000000 +0100 +++ b/src/modules/grubcfg/main.py 2016-10-22 00:26:06.065978639 +0100 @@ -36,8 +36,10 @@ default_grub = os.path.join(default_dir, "grub") distributor_replace = distributor.replace("'", "'\\''") plymouth_bin = libcalamares.utils.target_env_call(["sh", "-c", "which plymouth"]) + dracut_bin = libcalamares.utils.target_env_call(["sh", "-c", "which dracut"]) use_splash = "" swap_uuid = "" + swap_outer_uuid = "" libcalamares.utils.debug("which plymouth exit code: {!s}".format(plymouth_bin)) @@ -46,28 +48,43 @@ cryptdevice_params = [] - for partition in partitions: - if partition["fs"] == "linuxswap": - swap_uuid = partition["uuid"] - - if partition["mountPoint"] == "/" and "luksMapperName" in partition: - cryptdevice_params = [ - "cryptdevice=UUID={!s}:{!s}".format(partition["luksUuid"], - partition["luksMapperName"]), - "root=/dev/mapper/{!s}".format(partition["luksMapperName"]) - ] + if dracut_bin == 0: + for partition in partitions: + if partition["fs"] == "linuxswap": + swap_uuid = partition["uuid"] + + if partition["fs"] == "linuxswap" and "luksMapperName" in partition: + swap_outer_uuid = partition["luksUuid"] + + if partition["mountPoint"] == "/" and "luksMapperName" in partition: + cryptdevice_params = ["rd.luks.uuid={!s}".format(partition["luksUuid"])] + + else: + for partition in partitions: + if partition["fs"] == "linuxswap": + swap_uuid = partition["uuid"] + + if partition["mountPoint"] == "/" and "luksMapperName" in partition: + cryptdevice_params = [ + "cryptdevice=UUID={!s}:{!s}".format(partition["luksUuid"], + partition["luksMapperName"]), + "root=/dev/mapper/{!s}".format(partition["luksMapperName"]) + ] kernel_params = ["quiet"] if cryptdevice_params: kernel_params.extend(cryptdevice_params) - if use_splash: - kernel_params.append(use_splash) - if swap_uuid: kernel_params.append("resume=UUID={!s}".format(swap_uuid)) + if dracut_bin == 0 and swap_outer_uuid: + kernel_params.append("rd.luks.uuid={!s}".format(swap_outer_uuid)) + + if use_splash: + kernel_params.append(use_splash) + distributor_line = "GRUB_DISTRIBUTOR=\"{!s}\"".format(distributor_replace) if not os.path.exists(default_dir):