mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-03-30 09:13:45 -04:00
grub2 mode support KNOPPIX
This commit is contained in:
parent
a5c6859f5f
commit
6203366040
@ -362,7 +362,8 @@ static grub_err_t
|
|||||||
cmd_append (const char *line, struct syslinux_menu *menu)
|
cmd_append (const char *line, struct syslinux_menu *menu)
|
||||||
{
|
{
|
||||||
if (!menu->entries)
|
if (!menu->entries)
|
||||||
return grub_error (GRUB_ERR_BAD_ARGUMENT, "kernel without label");
|
return GRUB_ERR_NONE;
|
||||||
|
//return grub_error (GRUB_ERR_BAD_ARGUMENT, "kernel without label");
|
||||||
|
|
||||||
menu->entries->append = grub_strdup (line);
|
menu->entries->append = grub_strdup (line);
|
||||||
if (!menu->entries->append)
|
if (!menu->entries->append)
|
||||||
|
@ -99,6 +99,19 @@
|
|||||||
}\
|
}\
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define VTOY_SKIP_SPACE(s) \
|
||||||
|
while (ventoy_isspace(*s)) \
|
||||||
|
{\
|
||||||
|
s++;\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define VTOY_SKIP_SPACE_NEXT(s, initial) \
|
||||||
|
s += initial;\
|
||||||
|
while (ventoy_isspace(*s)) \
|
||||||
|
{\
|
||||||
|
s++;\
|
||||||
|
}
|
||||||
|
|
||||||
typedef enum VTOY_FILE_FLT
|
typedef enum VTOY_FILE_FLT
|
||||||
{
|
{
|
||||||
VTOY_FILE_FLT_ISO = 0, /* .iso */
|
VTOY_FILE_FLT_ISO = 0, /* .iso */
|
||||||
|
@ -177,10 +177,7 @@ static grub_err_t ventoy_isolinux_initrd_collect(grub_file_t file, const char *p
|
|||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
|
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
offset = 7; // strlen("initrd=") or "INITRD " or "initrd "
|
offset = 7; // strlen("initrd=") or "INITRD " or "initrd "
|
||||||
pos = grub_strstr(start, "initrd=");
|
pos = grub_strstr(start, "initrd=");
|
||||||
@ -438,10 +435,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
|||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
|
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (grub_strncmp(start, "initrd", 6) != 0)
|
if (grub_strncmp(start, "initrd", 6) != 0)
|
||||||
{
|
{
|
||||||
@ -454,10 +448,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
|||||||
start++;
|
start++;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*start == '"')
|
if (*start == '"')
|
||||||
{
|
{
|
||||||
@ -528,10 +519,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
|
|||||||
|
|
||||||
if (*start == ' ' || *start == '\t')
|
if (*start == ' ' || *start == '\t')
|
||||||
{
|
{
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1813,18 +1801,12 @@ static char *ventoy_systemd_conf_tag(char *buf, const char *tag, int optional)
|
|||||||
for (start = buf; start; start = nextline)
|
for (start = buf; start; start = nextline)
|
||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t'))
|
if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t'))
|
||||||
{
|
{
|
||||||
start += taglen;
|
start += taglen;
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2038,10 +2020,7 @@ grub_err_t ventoy_cmd_linux_limine_menu(grub_extcmd_context_t ctxt, int argc, ch
|
|||||||
for (start = filebuf; start; start = nextline)
|
for (start = filebuf; start; start = nextline)
|
||||||
{
|
{
|
||||||
nextline = ventoy_get_line(start);
|
nextline = ventoy_get_line(start);
|
||||||
while (ventoy_isspace(*start))
|
VTOY_SKIP_SPACE(start);
|
||||||
{
|
|
||||||
start++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (start[0] == ':')
|
if (start[0] == ':')
|
||||||
{
|
{
|
||||||
|
@ -852,6 +852,13 @@ function uefi_linux_menu_func {
|
|||||||
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $vtback_cfg_find -eq 0 ]; then
|
||||||
|
if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then
|
||||||
|
syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg
|
||||||
|
set vtback_cfg_find=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$vtback_cfg_find" = "0" ]; then
|
if [ "$vtback_cfg_find" = "0" ]; then
|
||||||
echo " "
|
echo " "
|
||||||
@ -1319,6 +1326,13 @@ function legacy_linux_menu_func {
|
|||||||
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $vtback_cfg_find -eq 0 ]; then
|
||||||
|
if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then
|
||||||
|
syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg
|
||||||
|
set vtback_cfg_find=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
vt_unset_boot_opt
|
vt_unset_boot_opt
|
||||||
set root=$vtback_root
|
set root=$vtback_root
|
||||||
|
Loading…
x
Reference in New Issue
Block a user