问题标签 [grub]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1618 浏览

python - 是否有 python grub.cfg 解析器?

有谁知道用于 grub2 的 grub.cfg 文件的 python 解析器?

我正在尝试通过设备分区(根)获取“菜单项”,例如

等等

解决方案:

[('Ubuntu, with Linux 3.0.0-15-generic', '(hd0,msdos1)'), ('Ubuntu, with Linux 3.0.0-15-generic (恢复模式)', '(hd0,msdos1) '), ('Ubuntu, with Linux 3.0.0-14-generic', '(hd0,msdos1)'), ('Ubuntu, with Linux 3.0.0-14-generic (恢复模式)', '(hd0, msdos1)'), ('Ubuntu, with Linux 3.0.0-13-generic', '(hd0,msdos1)'), ('Ubuntu, with Linux 3.0.0-13-generic (恢复模式)', '( hd0,msdos1)'), ('Ubuntu, with Linux 3.0.0-12-generic', '(hd0,msdos1)'), ('Ubuntu, with Linux 3.0.0-12-generic (恢复模式)', '(hd0,msdos1)'), ('内存测试 (memtest86+)', '(hd0,msdos1)'), ('内存测试 (memtest86+, 串行控制台 115200)', '(hd0,msdos1)'), ( 'Windows 7(在 /dev/sdc1 上)', '(hd2,msdos1)')]

0 投票
1 回答
1030 浏览

bootloader - grub stage1.5 代码在磁盘中的什么位置?

我正在尝试编写一个将加载 GRUB stage1.5 的 stage1 引导加载程序。那么它的代码到底在哪里呢?我怎么知道它有多大(所以我知道我需要读取多少字节)?

0 投票
1 回答
2566 浏览

linux - GRUB 阶段 1.5 的代码驻留在磁盘的什么位置,加载的地址是什么?

我已经grub v1.98安装并在反汇编 MBR 后发现以下我不理解的代码片段:

这段代码似乎试图设置 1.5 阶段代码的磁盘地址,然后加载并运行它。但是,我怎样才能确定它试图读取哪个物理块?更何况,stage 1.5 代码的目的地是什么?0x7000?

我指的是 Windows 7 的 MBR,其中加载了后续启动代码0x7c00。给定 MBR 首先在 address 加载0x7c00,它包含一段将 MBR 复制0x7c00到的代码0x0600,然后分支到0x0600,以防原始代码损坏。加载阶段 1.5 的代码会0x7000与原始代码冲突吗?更重要的是,我还发现:

在 MBR 的开头。除了第一条指令外,代码似乎试图做与 Windows 7 的 MBR 相同的事情,将原始 MBR 从复制0x7c00到。这些代码实际上会执行吗?如果是,什么时候控制跳转到这里。(我相信答案是肯定的,但被领先者弄糊涂了)。0x0600jmpjmp

0 投票
1 回答
3089 浏览

kernel - Brans 内核开发:Grub Multiboot 头文件?

我正在关注 Bran 的内核开发教程。在他的汇编代码中,他有以下代码块,他将其描述为不是那么重要,但与 GRUB 相关。

我仍然想知道这段代码在做什么?有人可以给我或指出我在哪里可以找到关于此的描述。二、为什么这段代码需要4字节对齐?这是出于效率原因还是在 GRUB 的上下文中具有某些特殊意义?

0 投票
1 回答
4581 浏览

debugging - 如何调试引导加载程序?

我使用 gdb 调试了小程序。

我有 GRUB 的源代码。GRUB 的第二阶段是用 C 编写的。我可以使用 gdb 调试它吗?

是否可以调试引导加载程序?如果是,那么如何?

0 投票
3 回答
6793 浏览

ubuntu - 安装 ubuntu 时出现 Grub 问题

我安装了ubuntu,但是当我重新启动我的机器时它显示:

我尝试从 live cd 运行引导修复,这里是它的转储:http: //paste.ubuntu.com/1411870/

让我知道是否有人以前这样做过

0 投票
1 回答
1787 浏览

centos - centos 6.2 grub 失败,黑屏,光标闪烁,但在手动输入引导命令行时工作

在 $work,我们有一个 CentOS 6.2 的自定义安装(一个预先准备好的图像,带有一组减少的软件包)。

正常的 CentOS 6.2 安装工作正常。

自定义的启动失败如下:

  • grub 启动并显示定义的引导选项
  • 如果我们让它继续并尝试启动,它会给出“带有闪烁光标的黑屏”,这是找不到内核的症状
  • 如果我们进入 grub 命令行并手动输入与从 grub.conf 加载的 grub 完全相同的引导命令,机器就会成功引导。

我的 google-foo 在这里失败了,有人有建议或解决方案吗?

0 投票
1 回答
4016 浏览

assembly - 简单内核无法在 GRUB 中启动

我正在从OSDev.org学习一点操作系统开发。我有一个内核,我正在尝试使用 qemu 在 GRUB Legacy (0.97) 中启动。但是,当我输入时kernel 200+9,我会收到消息

这是我所期望的,除了(坏的)部分。如果我boot现在输入 GRUB 就会挂起。

我认为数字 0x100000、0x44、0x4008 分别代表 .text 段起始地址、.bss 起始地址和 .bss 段大小。我认为这是因为objdump -h在内核映像上运行会给出以下输出:

所以你可以看到我提到的数字几乎匹配。问题是 .bss 的开头不是 100044,而是 44。我认为这就是 GRUB 说不好的原因。我的内存(内存不足)中不能有低于 1 MB 的部分。但是 objdump 告诉我我的部分高于该阈值,所以我不知道出了什么问题。无论如何,我将在下面粘贴我的代码,它相对较短。尽管如果您以前做过操作系统开发,我的问题可能是非常基本的,所以代码可能是无关的。

.

以下是我的自定义链接器脚本:

最后,我使用以下几行构建内核:

其中 stage1 和 stage2 是来自 GRUB Legacy 的文件,而 pad 是任何 750 字节的文件(因此 stage1+stage2+pad 的文件大小为 102400 字节或 200 个块,这就是我使用内核 200+9 启动的原因)。

最后,我在 qemu 中运行内核:

0 投票
2 回答
13128 浏览

file - 使用 grub 编辑文件

我在 rc.local 引导文件中犯了一个非常严重的错误。我在这个文件的列表中添加了一个带有无限循环的进程,这样我的 arch linux 发行版就不能完全启动,因为这个进程会阻止进一步的启动过程。

有没有办法在 grub 中编辑这个 rc.local 文件,以便我可以删除这个过程?

0 投票
2 回答
1783 浏览

linux - 快速测试 Linux 内核

我想学习 linux 内核编程,所以我从 www.kernel.org 下载了 Linux kernel 3.7.6 源代码。然而,在编辑任何东西之前,我尝试使用在线教程对其进行编译。

编译需要很多时间,make我还没有完全完成。有什么快速的方法可以更改源代码并进行测试吗?因为我读过内核编译大约需要一个小时。

另外,是否可以在 USB 驱动器上复制和测试修改后的内核?是否可以在 USB 驱动器上安装 GRUB,在 USB 上复制内核,在 USB 上配置 GRUB 然后运行它?如果是这样,请给我任何具有相同步骤的资源。我的笔记本电脑上也安装了 GRUB。如何在 USB 上设置新的 GRUB 而不会干扰笔记本电脑上的配置?

谢谢.. :)