The reason is indicated by blow codes in function setup_gk_args() of /usr/lib/catalyst2/targets/support/kmerge.sh ###LINE:35 if [ -d "${clst_initramfs_overlay}" ] then GK_ARGS="${GK_ARGS} --initramfs-overlay=/tmp/initramfs_overlay/${clst_initramfs_overlay}" fi ### It is clear that these codes are excecuted in chroot environment,so we cannot judge ${clst_initramfs_overlay} is a directory or not. Indeed we should judge whether /tmp/initramfs_overlay/${clat_initramfs_overlay} is a directory instead. After changing these codes I got my target successfully by passing the initramfs_overlay argument.
I've added this to CVS now. Thanks for the bug report!
It's my pleasure!
Fixed in 2.0_rc42!