最近的几个ubuntu发行版,15-20都是支持isoscan/filename=启动参数的,我测试过几个版本都支持。以后估计ububtu应该也不会放弃。
could not find the iso /pe/ubuntu.iso这样的提示应该是grub4dos抛出的,我分析
详情回复
发表于 2022-11-12 14:23
如果实在找不到设置堆栈的地方,那么,堆栈就是在实模式下设置好了。只需要确认,堆栈设置的位置是否合理便可。grub4dos for bios 里面的堆栈设置,应该是合理的,不用担心 bios 的 int 调用会发生堆栈溢出问题。但需要注意:刚才说的保护模式的 C 语言函数,不可占用过多堆栈。把那些不安全的地方,修改成安全的(就是函数外部的 static 数组)。
忽然想到,你现在是 EFI 模式。它有没有实模式,我也不知道。我是说,它开机进入实模式还是保护模式,我不知道。但无论如何,它是有堆栈的。你可以用一个程序片段,把主板 EFI 的堆栈探测出来。如果你觉得它设置的地方不对,你可以调整到一个你认为更安全的地方。如果它设置得没问题,你只需要像刚才所说,把 c 语言函数体里面的大数组声明,提取出来,放到函数体之外,并用 static 来声明即可,目的是尽量不占用堆栈。