diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py
index 734b94b75c227767a6420475d5cea4f251ce1031..70362a9168fa945badc5d56067fbb40fc7d633b6 100644
--- a/src/modules/grubcfg/main.py
+++ b/src/modules/grubcfg/main.py
@@ -29,6 +29,9 @@ def modify_grub_default(partitions, root_mount_point, distributor):
     use_splash = ""
     swap_uuid = ""
 
+    if not os.path.exists(default_dir):
+        return ("Directory does not exist", "The directory {} does not exist on
+        the target".format(default_dir))
     if os.path.exists(plymouth_bin):
         use_splash = "splash"
 
@@ -58,10 +61,10 @@ def modify_grub_default(partitions, root_mount_point, distributor):
     with open(default_grub, 'w') as grub_file:
         grub_file.write("\n".join(lines) + "\n")
 
+    return None
 
 def run():
     partitions = libcalamares.globalstorage.value("partitions")
     root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
     distributor = libcalamares.job.configuration["distributor"]
-    modify_grub_default(partitions, root_mount_point, distributor)
-    return None
+    return modify_grub_default(partitions, root_mount_point, distributor)
diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py
index 5bd33a05f51a89608ac2457060a18676cfc07596..3fe0f26a8fa2e34e0bd8eda5cae1069a68c3ef6a 100644
--- a/src/modules/initcpiocfg/main.py
+++ b/src/modules/initcpiocfg/main.py
@@ -20,19 +20,22 @@
 import libcalamares
 import os
 import subprocess
+import shutil
 from libcalamares.utils import check_chroot_call
 
 
 def get_cpu():
     """ Check if system is an intel system. """
 
-    process1 = subprocess.Popen(["hwinfo", "--cpu"], stdout=subprocess.PIPE)
-    process2 = subprocess.Popen(["grep", "Model:[[:space:]]"],
-                                stdin=process1.stdout, stdout=subprocess.PIPE)
-    process1.stdout.close()
-    out, err = process2.communicate()
-    return out.decode().lower()
+    if shutil.which("hwinfo") != None:
+        process1 = subprocess.Popen(["hwinfo", "--cpu"], stdout=subprocess.PIPE)
+        process2 = subprocess.Popen(["grep", "Model:[[:space:]]"],
+                                    stdin=process1.stdout, stdout=subprocess.PIPE)
+        process1.stdout.close()
+        out, err = process2.communicate()
+        return out.decode().lower()
 
+    return ""
 
 def set_mkinitcpio_hooks_and_modules(hooks, modules, root_mount_point):
     """ Set up mkinitcpio.conf """
diff --git a/src/modules/unpackfs/main.py b/src/modules/unpackfs/main.py
index 91fcf350ed8c5dab27febfcb493bd15decd13ff9..e54bd4ca6baea82e69e4867fe425fa31cc8da926 100644
--- a/src/modules/unpackfs/main.py
+++ b/src/modules/unpackfs/main.py
@@ -123,6 +123,10 @@ class UnpackOperation:
                 fslist = ""
 
                 if entry.sourcefs == "squashfs":
+                    if shutil.which("unsquashfs") == None:
+                        return ("Failed to unpack image", "Failed to find unsquashfs, make sure you have
+                        the squashfs-tools package installed")
+
                     fslist = subprocess.check_output(["unsquashfs",
                                                         "-l",
                                                         entry.source])