grub相关内容

未找到 GRUB 多重引导标头

阅读完这个这个问题后,这是主要的答案,我在内核上运行 readelf,并注意到我的 .text 部分位于 0x00101000 而不是 0x00100000.我还注意到上面的一个部分读取了 .not.gnu.build-i ,它位于 .text 部分应该在的位置.有没有办法让我的 .text 部分位于正确的位置?我已经用align 4设置为1M. 解决方案 问题在于 LD(或 LD via ..
发布时间:2021-11-24 23:20:21 C#

找不到GRUB Multiboot标头

阅读此此问题,它是主要答案,我在内核上运行 readelf,注意到我的 .text 部分在 0x00101000 而不是 0x00100000.我还注意到上面的部分显示为.not.gnu.build-i,该位置应该位于.text部分.有没有一种方法可以使我的.text节放置在正确的位置?我已经使用 align 4 将其设置为1M. 解决方案 问题是 LD (或 LD 通过 GCC )自动在 ..
发布时间:2021-05-29 21:29:20 其他开发

如何摆脱grub并恢复我的Windows?

我正在使用Windows 8.1和Ubuntu双重启动笔记本电脑,我想删除Ubuntu,因此我在磁盘管理中删除了这些驱动器,还恢复了USB上的Windows.当我重新启动时,我得到了最小的bash支持,例如行编辑和提示grub.我希望我的Windows 8.1回来,有人可以帮我吗? 解决方案 此答案适用于那些使用UEFI且在删除grub之前已删除Ubuntu分区的人 您将在Windo ..
发布时间:2020-06-17 19:14:20 其他开发

如何使用GRUB的实模式BIOS/VESA调用?

我正在开发一个简单的Grub模块,它将在启动过程的早期阶段启用一些其他视频设置/初始化.我实际的最佳想法是为该任务使用一些VESA调用. 不幸的是,最近我发现Grub无法提供实模式调用. 但是GRUB可以执行非常复杂的操作,如果没有BIOS的帮助,这可能是无法想象的. 怎么可能?我怎么能从the叫BIOS? 解决方案 据我所知,grub使用功能 ..
发布时间:2020-06-17 19:14:17 其他开发

最简单的链式加载启动管理器

为了从闪存驱动器启动,我们在实模式下使用BIOS中断13h加载磁盘,并指定了磁盘0x80.如 我正在尝试制作简单的GRUB . 我的第一步是从闪存驱动器启动(将MBR加载到0x7C00并打印一条消息,作为正确启动的证明)并读取我的主HDD(我假设它的编号为0x81,并且前15个扇区需要重新启动)再次进入0x7C00. 我想这个天真的主意应该让我进入主硬盘的引导加载程序,但这不是预期的. ..
发布时间:2020-06-17 19:14:14 其他开发

陷入困境并进入实模式(低级汇编语言编程)

我一直在研究玩具OS,并一直使用grub作为引导加载程序.最近,当尝试使用VGA时,我发现我无法使用硬件中断.我发现这是因为我被grub误入了保护模式. 有人知道如何在不摆脱grub的情况下回到实模式吗? 解决方案 您的意思是writeport(value,$ 3c9)? >mov 03c9,AH >out value,AL 或类似intel asm(NASM) 3c ..
发布时间:2020-06-17 19:14:12 其他开发

如何从源代码构建grub2引导程序并使用qemu模拟器对其进行测试

我想知道如何从ubuntu的源代码构建grub 2引导程序,并使用qemu模拟器对其进行测试. 我还想在新版本中更改grub2引导程序的默认背景图像吗? 这可能吗?如果是,怎么办? 解决方案 当然可以. 如 GRUB网站所示,grub源代码可从git.savannah.gnu.org通过git获得. 那么从理论上讲这只是一个问题 $ ./autogen.sh ..
发布时间:2020-06-17 19:14:09 其他开发

具有共享库支持的Grub引导程序

我想在启动阶段使用grub boot-loader加载共享库(源代码二进制用户空间库).有什么机会吗,或者我必须编写一个custom-elf-loader(grub模块)来做到这一点? 2014年8月29日:有关更多详细信息,这是我遇到的一个编程问题 想要自定义或向Grub引导加载程序添加一些新功能 项目.谢谢您的全力支持! 解决方案 因此,您并不确定要做什么,但是: 无法将用 ..
发布时间:2020-06-17 19:14:05 其他开发

使用GRUB2引导非多重引导内核

我想用GRUB2引导自定义内核(非多重引导),我读到我需要这样的grub.cfg: menuentry "custom kernel" { set root=(hd0,0) chainloader +1 } 所以,我有一些问题: grub如何检测内核? (对于多重引导规范,我使用了kernel /boot/kernel.bin) 我的内核看起来如何(对不起我的英语 ..
发布时间:2020-06-17 19:14:02 其他开发

用基本内核实现GDT

我最近开始着迷于内核开发,并从OSDev Wiki上的基础知识教程开始.在实现Hello World示例之后,我继续进行并开始尝试创建Global Descriptor Table.我从网上的各种来源整理了一些GDT的代码,但最终都失败了.我在执行此操作时是否有问题,如果还不能立即弄清楚,是否有任何来源可以提供更多信息? 简而言之,以下带有GDT的内核实现无法使用GRUB加载.我正在使用gcc和 ..
发布时间:2020-04-25 11:25:41 其他开发

GRUB会切换到保护模式吗?

我想问的是,是GRUB在引导过程中将CPU切换到保护模式还是Linux内核做到了这一点.我还要问-内核本身(vmlinuz)是ELF还是纯二进制格式?谢谢. 解决方案 GRUB 确实将您置于保护模式. GRUB Multiboot规范(0.6.96版) 3.2节告诉您这一点 "CR0" 位31(PG)必须清除.必须设置位0(PE).其他位均未定义. CR0寄存器映射 ..
发布时间:2020-04-23 11:09:49 服务器开发

如何编译一个简单的multiboot2裸机可执行文件?

我想开始编写一个os内核,然后,我发现一个文档引入multboot2规范。 有三个示例代码文件,名为 boot.S , kernel.c 和 multiboot2.h ,属于分支中的 multiboot2 分支首先,我试着用一些选项(使用i686-elf-gcc)来编译和链接代码,比如 $ c> -nostartfiles , -nodefaultlibs 和 -freestanding , ..
发布时间:2018-04-21 11:21:29 其他开发

Grub不会在Cygwin上

似乎有关使用这两个一起的信息不容易得到。当试图让我得到一些有趣的错误。我想知道我的版本的gcc(4.7)不会削减它,或者我缺乏依赖。 我包括... GCC GNU Make GNU Bison GNU gettext GNU binutils Flex $ b Cygwin x86中出现的错误 - 可能与GCC 4.7相关? /grub-2.00/grub ..
发布时间:2017-03-09 21:50:59 Linux/Unix

错误13:同时用字符串启动简单内核的grub无效或不支持的可执行文件

我已经写了尝试两个字符写入到帧缓冲简单的内核。 如果我在内核中定义一个字符串,我得到以下输出在引导时: 引导“OS”内核/boot/kernel.elf错误13:无效或不支持的可执行格式preSS任意键继续...... 否则,如果我定义了两个角色我得到以下(注意'AB'在输出的开始): abBooting'操作系统'内核/boot/kernel.elf [多重精灵,< 0x10 ..
发布时间:2016-07-18 21:27:52 .NET Framework

简单的内核GRUB将无法启动

我学习了位操作系统的发展从 OSDev.org 。我有一个内核和我试图用QEMU GRUB遗产(0.97)来引导。然而,当我键入内核200 + 9 ,我得到的消息 [多引导小精灵,< 0x100000处:0x80的:0x4008>(坏),入境= 0x10000c] 这是我所期望的除外(坏)的一部分。如果键入启动现在GRUB只是挂起。 我觉得数字的0x100000,0x44进行, ..
发布时间:2016-07-18 20:33:17 .NET Framework

使用C语言更改GRUB的变量

我想知道是否有什么办法让我写一个C程序更改了GRUB的变量的值。 我需要编写一个程序,可以重新启动我的计算机上的其他操作系统,例如: 我在SUSE的disk1 程序更改GRUB的变量,并自动重启。 我在SUSE磁盘2 我想访问变量一样:标题,根,内核的initrd。但是,如果没有编辑了/boot/grub/menu.lst或grub.conf文件。 是否有GRUB的AP ..
发布时间:2016-05-23 22:41:47 其他开发