systemd-escape: invalid option -- 'b' comes from modules.d/90crypt/parse-crypt.sh:43: printf -- 'systemd-cryptsetup@luks$$(dev_unit_name -$env{ID_FS_UUID}).service"\n' dev_unit_name (defined in modules.d/99base/dracut-lib.sh:877) runs systemd-escape -p "$dev" but should run systemd-escape -p -- "$dev" Leaving you with a systemd-cryptsetup@luks.service file which does not exist. However, while this should probably be fixed, it's not the root cause. ID_FS_UUID is provided by udev.