|
|
|
@ -30,7 +30,7 @@ function get_os_type {
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function locate_initrd {
|
|
|
|
|
function locate_initrd {
|
|
|
|
|
vt_linux_locate_initrd
|
|
|
|
|
|
|
|
|
|
if [ -n "${vtdebug_flag}" ]; then
|
|
|
|
@ -64,6 +64,16 @@ function distro_specify_initrd_file {
|
|
|
|
|
if [ -e (loop)/casper/initrd-oem ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /casper/initrd-oem
|
|
|
|
|
fi
|
|
|
|
|
elif [ -e (loop)/boot/grub/initrd.xz ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /boot/grub/initrd.xz
|
|
|
|
|
elif [ -e (loop)/initrd.gz ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /initrd.gz
|
|
|
|
|
elif [ -e (loop)/slax/boot/initrfs.img ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /slax/boot/initrfs.img
|
|
|
|
|
elif [ -e (loop)/pmagic/initrd.img ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /pmagic/initrd.img
|
|
|
|
|
elif [ -e (loop)/boot/initrd.xz ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /boot/initrd.xz
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -99,28 +109,25 @@ function uefi_linux_menu_func {
|
|
|
|
|
|
|
|
|
|
vt_linux_clear_initrd
|
|
|
|
|
|
|
|
|
|
for file in "boot/grub/grub.cfg" "EFI/BOOT/grub.cfg" "EFI/boot/grub.cfg" "efi/boot/grub.cfg" "EFI/BOOT/BOOTX64.conf"; do
|
|
|
|
|
if [ -e (loop)/$file ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub file (loop)/$file
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
vt_linux_initrd_count initrd_count
|
|
|
|
|
if [ -d (loop)/pmagic ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /pmagic/initrd.img
|
|
|
|
|
else
|
|
|
|
|
for file in "boot/grub/grub.cfg" "EFI/BOOT/grub.cfg" "EFI/boot/grub.cfg" "efi/boot/grub.cfg" "EFI/BOOT/BOOTX64.conf"; do
|
|
|
|
|
if [ -e (loop)/$file ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub file (loop)/$file
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# special process for special distros
|
|
|
|
|
if vt_cmp $initrd_count eq 0; then
|
|
|
|
|
if [ -d (loop)/loader/entries ]; then
|
|
|
|
|
set LoadIsoEfiDriver=on
|
|
|
|
|
vt_linux_parse_initrd_grub dir (loop)/loader/entries/
|
|
|
|
|
elif [ -d (loop)/boot/grub ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub dir (loop)/boot/grub/
|
|
|
|
|
fi
|
|
|
|
|
if [ -d (loop)/loader/entries ]; then
|
|
|
|
|
set LoadIsoEfiDriver=on
|
|
|
|
|
vt_linux_parse_initrd_grub dir (loop)/loader/entries/
|
|
|
|
|
elif [ -d (loop)/boot/grub ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub dir (loop)/boot/grub/
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
vt_linux_initrd_count initrd_count
|
|
|
|
|
if vt_cmp $initrd_count eq 0; then
|
|
|
|
|
distro_specify_initrd_file
|
|
|
|
|
fi
|
|
|
|
|
distro_specify_initrd_file
|
|
|
|
|
|
|
|
|
|
locate_initrd
|
|
|
|
|
fi
|
|
|
|
@ -237,36 +244,33 @@ function legacy_linux_menu_func {
|
|
|
|
|
vt_load_cpio $vtoy_path/ventoy.cpio
|
|
|
|
|
|
|
|
|
|
vt_linux_clear_initrd
|
|
|
|
|
|
|
|
|
|
for dir in "isolinux" "boot/isolinux" "boot/x86_64/loader" "syslinux" "boot/syslinux"; do
|
|
|
|
|
if [ -d (loop)/$dir ]; then
|
|
|
|
|
vt_linux_parse_initrd_isolinux (loop)/$dir/
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
vt_linux_initrd_count initrd_count
|
|
|
|
|
if [ -d (loop)/pmagic ]; then
|
|
|
|
|
vt_linux_specify_initrd_file /pmagic/initrd.img
|
|
|
|
|
else
|
|
|
|
|
for dir in "isolinux" "boot/isolinux" "boot/x86_64/loader" "syslinux" "boot/syslinux"; do
|
|
|
|
|
if [ -d (loop)/$dir ]; then
|
|
|
|
|
vt_linux_parse_initrd_isolinux (loop)/$dir/
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# special process for special distros
|
|
|
|
|
if vt_cmp $initrd_count eq 0; then
|
|
|
|
|
#archlinux
|
|
|
|
|
if [ -d (loop)/arch/boot/syslinux ]; then
|
|
|
|
|
vt_linux_parse_initrd_isolinux (loop)/arch/boot/syslinux/ /arch/
|
|
|
|
|
vt_linux_parse_initrd_isolinux (loop)/arch/boot/syslinux/ /arch/boot/syslinux/
|
|
|
|
|
|
|
|
|
|
#manjaro
|
|
|
|
|
elif [ -d (loop)/manjaro ]; then
|
|
|
|
|
if [ -e (loop)/boot/grub/kernels.cfg ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub file (loop)/boot/grub/kernels.cfg
|
|
|
|
|
fi
|
|
|
|
|
elif [ -e (loop)/boot/grub/grub.cfg ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub file (loop)/boot/grub/grub.cfg
|
|
|
|
|
#archlinux
|
|
|
|
|
if [ -d (loop)/arch/boot/syslinux ]; then
|
|
|
|
|
vt_linux_parse_initrd_isolinux (loop)/arch/boot/syslinux/ /arch/
|
|
|
|
|
vt_linux_parse_initrd_isolinux (loop)/arch/boot/syslinux/ /arch/boot/syslinux/
|
|
|
|
|
|
|
|
|
|
#manjaro
|
|
|
|
|
elif [ -d (loop)/manjaro ]; then
|
|
|
|
|
if [ -e (loop)/boot/grub/kernels.cfg ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub file (loop)/boot/grub/kernels.cfg
|
|
|
|
|
fi
|
|
|
|
|
elif [ -e (loop)/boot/grub/grub.cfg ]; then
|
|
|
|
|
vt_linux_parse_initrd_grub file (loop)/boot/grub/grub.cfg
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
vt_linux_initrd_count initrd_count
|
|
|
|
|
if vt_cmp $initrd_count eq 0; then
|
|
|
|
|
distro_specify_initrd_file
|
|
|
|
|
fi
|
|
|
|
|
distro_specify_initrd_file
|
|
|
|
|
|
|
|
|
|
locate_initrd
|
|
|
|
|
fi
|
|
|
|
@ -344,7 +348,7 @@ function legacy_iso_memdisk {
|
|
|
|
|
#############################################################
|
|
|
|
|
#############################################################
|
|
|
|
|
|
|
|
|
|
set VENTOY_VERSION="1.0.04"
|
|
|
|
|
set VENTOY_VERSION="1.0.05"
|
|
|
|
|
|
|
|
|
|
#disable timeout
|
|
|
|
|
unset timeout
|
|
|
|
@ -358,7 +362,7 @@ vt_device $root vtoy_dev
|
|
|
|
|
if [ "$vtoy_dev" = "tftp" ]; then
|
|
|
|
|
set vtoy_path=($root)
|
|
|
|
|
for vtid in 0 1 2 3; do
|
|
|
|
|
if [ -d (hd$vtid,2)/grub ]; then
|
|
|
|
|
if [ -d (hd$vtid,2)/ventoy ]; then
|
|
|
|
|
set iso_path=(hd$vtid,1)
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|