package initramfs-tools-core severity 848906 important thanks
The patch against 0.126 (still valid against 0.127) modifying /usr/share/initramfs-tools/scripts/local follows.
--- /usr/share/initramfs-tools/scripts/local 2016-04-17 21:39:22.000000000 +0200 +++ /usr/share/initramfs-tools/scripts/local.new 2016-12-18 17:05:13.419988203 +0100 @@ -55,10 +55,15 @@ modprobe ubi mtd=$UBIMTD DEV="${dev_id}" return fi + # Detect (some) invalid device names + if [ -z "${dev_id}" ]; then + panic "Empty root device name deteted. Try passing root= bootarg." + fi + # Don't wait for a device that doesn't have a corresponding # device in /dev and isn't resolvable by blkid (e.g. mtd0) if [ "${dev_id#/dev}" = "${dev_id}" ] && [ "${dev_id#*=}" = "${dev_id}" ]; then DEV="${dev_id}" @@ -136,17 +141,20 @@ # FIXME This has no error checking modprobe ${FSTYPE} checkfs ${ROOT} root "${FSTYPE}" - # FIXME This has no error checking # Mount root if [ "${FSTYPE}" != "unknown" ]; then mount ${roflag} -t ${FSTYPE} ${ROOTFLAGS} ${ROOT} ${rootmnt} else mount ${roflag} ${ROOTFLAGS} ${ROOT} ${rootmnt} fi + # Basic error checking + if [ $? != 0 ] || { command -v mountpoint >/dev/null 2>&1 && ! mountpoint ${rootmnt}; }; then + panic "ALERT! The root fs failed to be mounted. Dropping to a shell." + fi } local_mount_fs() { read_fstab_entry "$1" @@ -167,13 +175,16 @@ if [ "$MNT_PASS" != 0 ]; then checkfs "$MNT_FSNAME" "$MNT_DIR" "${MNT_TYPE}" fi - # FIXME This has no error checking # Mount filesystem mount ${roflag} -t "${MNT_TYPE}" -o "${MNT_OPTS}" "$MNT_FSNAME" "${rootmnt}${MNT_DIR}" + # Basic error checking + if [ $? != 0 ] || { command -v mountpoint >/dev/null 2>&1 && ! mountpoint ${rootmnt}; }; then + panic "ALERT! The '${MNT_DIR}' fs failed to be mounted. Dropping to a shell." + fi } mountroot() { local_mount_root