e79a11bddc
Two critical fixes that unblock the hardlink/chain boot paths:
1. hlnk->vlnk rename in src/grub2/grub/grub.cfg
The in-tree grub.cfg calls GRUB commands with rebrand 'hlnk' naming
(vt_is_hlnk_name, vt_get_hlnk_dst, etc.) but the GRUB binary built
from vendor/grub2-modsrc.tar.xz has Ventoy's original 'vlnk' naming.
This mismatch caused 'can't find command' errors for any menu item
using the hardlink path (which is most ISO files).
Renamed all hlnk references to vlnk in the source grub.cfg.
Added an automatic hlnk->vlnk sed pass to package_release.sh so
future edits stay in sync.
2. mcopy recursion bug in package_release.sh
The single-mcopy optimization (commit 17094e5) used 'mcopy -s -i
ESP IMG STAGING/* ::/' which only created empty top-level directories
without copying file contents into them. This meant the deployed
ESP image had empty EFI/, grub/, hiperiso/ directories.
Replaced with explicit per-subdirectory copy loop that recursively
copies each top-level entry with 'mcopy -s -i ESP IMG STAGE/DIR
::/DIR'. Verified files are now in the deployed image.
QEMU test confirms:
- Disk boots, GRUB 2.04 loads
- ESP contains BOOTX64.EFI, grub.cfg, ventoy.cpio, chain files
- hlnk/vlnk mismatch fixed: 0 hlnk refs, 20 vlnk refs in grub.cfg