I'm getting the dreaded "target filesystem doesn't have requested /sbin/init", am getting dropped into initramfs busybox prompt, and am unable to boot. This is after upgrading to the latest 4.9.0-3 kernel on Debian. It was working perfectly before.
Approximately, it says:
Scanning for BtrFs filesystem
usage: mount [-r] [-w] [-o options] [-t type f] [-i] [-n] device directory
target filesystem doesn't have requested /sbin/init
mount: no such file or directory
I tried fsck on the disk; it is fine. (I also tried fsck -f to make sure. No go.)
I tried manually setting root=/dev/sda4 during boot in the grub menu. Again, didn't help.
I can successfully mount /dev/sda4 from a live CD:
$ mount /dev/sda4 /mnt
$ mount --bind /proc/ /mnt/proc
$ mount --bind /dev/ /mnt/dev
$ mount --bind /sys/ /mnt/sys
and chroot into it:
$ chroot /mnt
And I can see that /sbin/init does indeed exist:
# ls /sbin/init
/sbin/init
I can even run it:
# /sbin/init
Usage: init {-e VAR[=VAL] | [-t SECONDS] {0|1|2|3|4|5|6|S|s|Q|q|A|a|B|b|C|c|U|u}}
Within the chroot, I tried running "update-initramfs" and "update-grub". Both ran successfully, but neither helped.
It seems as if "update-initramfs" is generating a bogus initrd that won't mount the root system properly.
It is running initramfs=0.120+deb8u3 and sysvinit-core=2.88dsf-59.9.
It is not running cryptofs nor btrfs. It is, however, running on a Mac, if that matters.