diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index 813e1f3..d5c173b 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -346,17 +346,18 @@ DTB_IMG = "${PP_DEPLOY}/${@(d.getVar('DTB_FILES').split() or [''])[0]}"
 do_copy_boot_files[dirs] = "${DEPLOY_DIR_IMAGE}"
 do_copy_boot_files[lockfiles] += "${DEPLOY_DIR_IMAGE}/isar.lock"
 do_copy_boot_files() {
-    kernel="$(realpath -q '${IMAGE_ROOTFS}'/vmlinu[xz])"
+    set -x
+    kernel="$(realpath -q '${IMAGE_ROOTFS}'/vmlinu[xz] || true)"
     if [ ! -f "$kernel" ]; then
-        kernel="$(realpath -q '${IMAGE_ROOTFS}'/boot/vmlinu[xz])"
+        kernel="$(realpath -q '${IMAGE_ROOTFS}'/boot/vmlinu[xz] || true)"
     fi
     if [ -f "$kernel" ]; then
         sudo cat "$kernel" > "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE}"
     fi
 
-    initrd="$(realpath -q '${IMAGE_ROOTFS}/initrd.img')"
+    initrd="$(realpath -q '${IMAGE_ROOTFS}/initrd.img' || true)"
     if [ ! -f "$initrd" ]; then
-        initrd="$(realpath -q '${IMAGE_ROOTFS}/boot/initrd.img')"
+        initrd="$(realpath -q '${IMAGE_ROOTFS}/boot/initrd.img' || true)"
     fi
     if [ -f "$initrd" ]; then
         cp -f "$initrd" '${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE}'
diff --git a/meta/classes/rootfs.bbclass b/meta/classes/rootfs.bbclass
index d19ac03..0d16754 100644
--- a/meta/classes/rootfs.bbclass
+++ b/meta/classes/rootfs.bbclass
@@ -33,6 +33,9 @@ rootfs_do_mounts[weight] = "3"
 rootfs_do_mounts() {
     sudo -s <<'EOSUDO'
         set -e
+	for i in dev/shm dev/pts proc sys; do
+		mkdir -p '${ROOTFSDIR}/$i'
+	done
         mountpoint -q '${ROOTFSDIR}/dev' || \
             ( mount -o bind,private /dev '${ROOTFSDIR}/dev' &&
               mount -t tmpfs none '${ROOTFSDIR}/dev/shm' &&
