The problem is that fstype doesn't detect a ext4 filesystem. It detects it as ext3, and tries to mount the rootfs with "mount -t ext3...", which fails because ext3 can't mount a ext4 filesystem.
The problem is in scripts/local:
========================
get_fstype ()
{
local FS FSTYPE FSSIZE RET
FS="${1}"
# vol_id has a more complete list of file systems,
# but fstype is more robust
eval $(fstype "${FS}" 2> /dev/null)
========================
fstype pass ext3 as filesystem there.
It turns out that the "unreliable" vol_id detects the ext4 properly, while fstype does not...
The problem is that fstype doesn't detect a ext4 filesystem. It detects it as ext3, and tries to mount the rootfs with "mount -t ext3...", which fails because ext3 can't mount a ext4 filesystem.
The problem is in scripts/local:
======= ======= ======= ===
get_fstype ()
{
local FS FSTYPE FSSIZE RET
FS="${1}"
# vol_id has a more complete list of file systems, ======= ======= ===
# but fstype is more robust
eval $(fstype "${FS}" 2> /dev/null)
=======
fstype pass ext3 as filesystem there.
It turns out that the "unreliable" vol_id detects the ext4 properly, while fstype does not...