问题标签 [grub2]

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 回答
59 浏览

grub2 - 检查文件是否损坏并在必要时回退到黄金映像

如何在 grub.cfg 文件中检查文件的 sha1sum 并将其与存储的数字进行比较?
如果相等则可以加载图像,否则应切换回黄金图像

我试过以下

但我收到错误消息

知道错误在哪里或如何处理文件检查吗?
谢谢

0 投票
0 回答
1037 浏览

linux - 错误:安装 Gentoo 时 grub-install

我正在笔记本电脑上安装带有 LUKS、LVM、UEFI、GRUB2 和 systemd 的 Gentoo Linux。我堆叠在 grub-install 中,省略了以下错误。

磁盘分区为:

我输入的命令是

并且错误消息如下。

我认为发生错误是因为 lvmetad 检查了 sda1(ESP)。所以我添加volume_list = { "vg1" }到/etc/lvm/lvm.conf,然后再次点击命令。这省略了更少的错误消息。

请帮忙!

添加于 2017/01/15

我尝试了一些可能的解决方案。

  1. 将以下代码添加到 lvm.conf

结果 >> 没有任何变化

  1. 更改了 grub-install

    /li>

结果 >> 错误消息更改如下

  1. 在 lvm.conf 中进行了更改

    /li>

结果 >> 错误消息作为解决方案 2

No.2 和 No.3 的错误信息显示“未找到卷组“luksdisk”,但加密的 sda2 (luksdisk) 不是卷组。这是问题的原因吗???

0 投票
1 回答
592 浏览

scripting - GRUB 脚本中的文件名通配符扩展

GRUB 脚本中是否可以进行文件名通配符扩展?

就像是:

我的目的是让 GRUB 加载位于某些目录中的不同 cfg 文件。

0 投票
2 回答
741 浏览

bash - grub2 如何增加变量

grub2 shell 旨在成为一个类似于 shell 的简约 bash。

但是我怎样才能在 grub2 中增加一个变量呢?

在 bash 我会做:

或者

在 grub2 中,这些调用出现语法错误。如何在 grub2 shell 中实现这一点?

0 投票
1 回答
1691 浏览

linux - 使用 bcd 在分区中启动

最近我在我的 Windows 10 旁边安装了 Kali Linux(带有 GRUB2)。为此,我缩小了我的 D: 驱动器。我有 100GB 的未分配空间。

比我从 USB 开始安装。当被要求安装 grub 时,我选择了是。一切正常。我在 grub 和双引导方面遇到了一些问题,但后来我注意到了一些事情。当我进入启动菜单时,我有 HDD、ODD、网络启动和 Windows 启动管理器的选项。当我选择硬盘时,我相信这是我的磁盘(在磁盘管理中我只有磁盘 0)。我在 grub-> Linux 中启动。如果我选择 Win 启动管理器,我会进入 Windows。linux 的引导文件位于 8 分区上。如何向 bcd 添加包含分区 8 的新条目?我相信我会在 GRUB 中启动,但这并不困扰我。我可以给你来自两个操作系统的信息。

0 投票
1 回答
586 浏览

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

为了从闪存驱动器启动,我们在实模式下使用 BIOS 中断 13h 加载磁盘,并指定磁盘 0x80。其他磁盘应由 0x81、0x82... 访问,如此链接所述

我正在尝试制作简单的 GRUB

我的第一步是从闪存驱动器启动(将 MBR 加载到 0x7C00 并打印一条消息作为正确启动的证明)并读取我的主硬盘(我假设它的编号为 0x81,前 15 个扇区需要引导)再次进入 0x7C00。

我想这个幼稚的想法应该让我进入我的主 HDD 的引导加载程序,但它并不像预期的那样。你能告诉我有什么问题吗?

顺便问一下,我应该如何获得 HDD 的数量?

请注意,我的主硬盘包含带有多个操作系统的 grub2。

编辑:对我来说,这是一个理论上的问题,但由于评论中的请求,我添加了代码。

引导加载程序.asm:

第二阶段 bootloader-loader.asm:

BPB.asm:

磁盘加载.asm:

生成文件:

此代码应打印XY到屏幕上,然后将控制权传递给 HDD 的引导扇区。但我得到的只是XY打印到屏幕上。

0 投票
1 回答
932 浏览

linux - CloneZilla USB,无人值守的 syslinux,需要翻译成 grub 等效项

我在 USB 上有一个可启动的 CloneZilla。它适用于使用 syslinux 引导的系统。这是其中的菜单条目syslinux.cfg及其功能的简短描述(请注意,我使用 & 来暗示它是同一行,为了便于阅读,我将其分成多行):

它设置了一个 eth 接口来使用 dhcp。然后它会尝试挂载一个 samba 共享,如 ocs_repository="user:pass@path" 所示。之后,它应该运行 ocs_live_run="cmd" 条目,该条目执行从 samba 位置到引导设备的主磁盘的克隆。

这是我创建等效grub.cfg条目的尝试:

无论出于何种原因,grub 失败了。它似乎试图做同样的事情,但我敢打赌安装 samba 位置有问题(我可以手动安装它)。

它停止并显示错误消息“/home/partimag/windows-10-base-clone”不存在,如果它将提供的 samba 位置安装到 /home/partimag/,它肯定应该存在。

有什么建议么?

0 投票
1 回答
1295 浏览

x86-64 - GRUB 如何在 0x100000 加载内核

我正在从头开始编写引导加载程序和内核,我的目标是创建一个可以由 GRUB 和我的引导加载程序加载的内核。不过,问题不在于内核。我不知道如何在 grub 加载内核的 0x100000 处加载内核。0x100000 不够小,无法放入 16 位寄存器,而且太大而无法使用分段(使用 BIOS 中断读取磁盘时使用地址缓冲区 es:bx)。

所以我的问题是,GRUB 是如何将内核加载到内存中的?

0 投票
2 回答
2088 浏览

gdb - 调试在 QEMU 上运行的 GRUB2 EFI 映像

我想要达到的目标

我想自定义一个 GRUB EFI 映像,并在 QEMU 上运行时对其进行调试。

所以我试图在自定义之前调试一个香草 GRUB 图像。

到目前为止我做了什么

我从http://git.savannah.gnu.org下载了 GRUB2并编译了它:

然后,生成一个简单的 EFI 图像:

并将其放入磁盘映像文件中:

为了启动它,我编译了一个 IA32 OVMF.fd 以将它与 QEMU 一起使用:

它正确启动,给了我一个 grub shell。


我被卡住的地方

现在,我想调试 GRUB。所以我用附加参数调用了 QEMU:

并将 gdb 附加到 QEMU:

但是,似乎缺少调试符号:

我究竟做错了什么?


添加符号后

symbol-file@unixsmurf 当我使用命令时,它似乎正在加载调试符号。事实上,gdb 说

但是,我仍然无法使用next返回的命令

例如,我想在grub_core/kern/main.c:grub_main函数中设置一个断点并逐步运行它。

但是虽然设置了断点,但当我continue执行时,GRUB 到达 shell 并没有在断点处停止:

0 投票
1 回答
179 浏览

linux - 使用可启动磁盘使 linux 机器 grub 可启动

我对 grub 不熟悉,对 linux 也不熟悉。

我目前拥有的是恢复的 linux 机器磁盘。

其中有 grub 可启动源机器,但用于在其他平台(管理程序/云)上启动

我的团队使用 extlinux 通过覆盖其引导代码使其可引导,并使该机器可在其他平台(如云/管理程序)上引导。在这个链接中做了类似的事情

我想让那台机器 grub 可启动,所以我尝试了以下方法:

grub.cfg的内容

之后我创建了 vm。首先附加 1GB 磁盘,然后再恢复磁盘。

在此处输入图像描述在此处输入图像描述在此处输入图像描述

请帮我解决问题