问题标签 [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.
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)')]
bootloader - grub stage1.5 代码在磁盘中的什么位置?
我正在尝试编写一个将加载 GRUB stage1.5 的 stage1 引导加载程序。那么它的代码到底在哪里呢?我怎么知道它有多大(所以我知道我需要读取多少字节)?
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
到。这些代码实际上会执行吗?如果是,什么时候控制跳转到这里。(我相信答案是肯定的,但被领先者弄糊涂了)。0x0600
jmp
jmp
kernel - Brans 内核开发:Grub Multiboot 头文件?
我正在关注 Bran 的内核开发教程。在他的汇编代码中,他有以下代码块,他将其描述为不是那么重要,但与 GRUB 相关。
我仍然想知道这段代码在做什么?有人可以给我或指出我在哪里可以找到关于此的描述。二、为什么这段代码需要4字节对齐?这是出于效率原因还是在 GRUB 的上下文中具有某些特殊意义?
debugging - 如何调试引导加载程序?
我使用 gdb 调试了小程序。
我有 GRUB 的源代码。GRUB 的第二阶段是用 C 编写的。我可以使用 gdb 调试它吗?
是否可以调试引导加载程序?如果是,那么如何?
ubuntu - 安装 ubuntu 时出现 Grub 问题
我安装了ubuntu,但是当我重新启动我的机器时它显示:
我尝试从 live cd 运行引导修复,这里是它的转储:http: //paste.ubuntu.com/1411870/
让我知道是否有人以前这样做过
centos - centos 6.2 grub 失败,黑屏,光标闪烁,但在手动输入引导命令行时工作
在 $work,我们有一个 CentOS 6.2 的自定义安装(一个预先准备好的图像,带有一组减少的软件包)。
正常的 CentOS 6.2 安装工作正常。
自定义的启动失败如下:
- grub 启动并显示定义的引导选项
- 如果我们让它继续并尝试启动,它会给出“带有闪烁光标的黑屏”,这是找不到内核的症状
- 如果我们进入 grub 命令行并手动输入与从 grub.conf 加载的 grub 完全相同的引导命令,机器就会成功引导。
我的 google-foo 在这里失败了,有人有建议或解决方案吗?
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 中运行内核:
file - 使用 grub 编辑文件
我在 rc.local 引导文件中犯了一个非常严重的错误。我在这个文件的列表中添加了一个带有无限循环的进程,这样我的 arch linux 发行版就不能完全启动,因为这个进程会阻止进一步的启动过程。
有没有办法在 grub 中编辑这个 rc.local 文件,以便我可以删除这个过程?
linux - 快速测试 Linux 内核
我想学习 linux 内核编程,所以我从 www.kernel.org 下载了 Linux kernel 3.7.6 源代码。然而,在编辑任何东西之前,我尝试使用在线教程对其进行编译。
编译需要很多时间,make
我还没有完全完成。有什么快速的方法可以更改源代码并进行测试吗?因为我读过内核编译大约需要一个小时。
另外,是否可以在 USB 驱动器上复制和测试修改后的内核?是否可以在 USB 驱动器上安装 GRUB,在 USB 上复制内核,在 USB 上配置 GRUB 然后运行它?如果是这样,请给我任何具有相同步骤的资源。我的笔记本电脑上也安装了 GRUB。如何在 USB 上设置新的 GRUB 而不会干扰笔记本电脑上的配置?
谢谢.. :)