无忧启动论坛

标题: Grubutil FAT outdated? [打印本页]

作者: 不点    时间: 2020-4-22 09:32
标题: Grubutil FAT outdated?
英文论坛上有人提问,不知 chenall 或 yaya 能否去回答一下。

http://reboot.pro/topic/22279-grubutil-fat-outdated/

I have following question about Grubutil fat.

If I set debug on and using fat on the command-line I get following warning: Warning! The program is outdated!

Fat works fine for me. :unsure: Any clue?

I am using latest version I could find (fat 2015-02-15) and Grub4Dos 2019-09-09.

作者: chishingchan    时间: 2020-4-22 10:22
翻译
  1. 我有以下关于Grubutil fat的问题。

  2. 如果我在命令行中设置调试并使用fat,我得到以下警告。警告! 该程序已经过期了!

  3. Fat对我来说很好,:不确定。有什么线索吗?

  4. 我使用的是我能找到的最新版本(fat 2015-02-15)和Grub4Dos 2019-09-09-09。
复制代码

作者: 2011yaya2007777    时间: 2020-4-22 11:28
在 grub4dos 的 builtins.c 文件里,有相关的一段语句:
        if (*end_signature == 0xBCBAA7BA03051805ULL)        //hotkey
        {
                if (*(unsigned long long *)(program + prog_len - 0x20) == 0x646E655F6E69616D) /* main_end New Version*/
                {
                        char * tmp1;
                        char * program1;
                        unsigned long *bss_end = (unsigned long *)(program + prog_len - 0x24);
                        if (prog_len != *bss_end){
                                grub_free(tmp);
                                prog_len = *bss_end;
                                tmp1 = (char *)grub_malloc(prog_len + 4096 + 16 + psp_len);
                                if (tmp1 == NULL)
                                {
                                        goto fail;
                                }
                                program1 = (char *)((int)(tmp1 + 4095) & ~4095); /* 4K align the program */
                                if (tmp1 != tmp)
                                {
                                        grub_memmove (program1, program, (unsigned long)filemax);
                                        program = program1;
                                        tmp = tmp1;
                                }
                                psp = (char *)((int)(program + prog_len + 16) & ~0x0F);
                        }
                } else {//the old program
                        char *program1;
                        printf_warning ("\nWarning! The program is outdated!\n");
                        psp = (char *)grub_malloc(prog_len + 4096 + 16 + psp_len);
                        grub_free(tmp);
                        if (psp == NULL)
                        {
                                goto fail;
                        }
                        program1 = psp + psp_len;
                        grub_memmove (program1, program, prog_len);
                        program = program1;
                        tmp = psp;
                }
        }
看来是与热键有关。
0xBCBAA7BA03051805ULL 是热键文件结束签名。
0x646E655F6E69616D 这个没有查到,grub4dos,hotkey,fat 文件里都没有找到。
看代码,只是提出警告,并没有退出程序,而是进行了有效的处理。
作者: 2011goodluckwxl    时间: 2020-10-10 17:59
很不错,收藏起来备用




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3