问题标签 [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.
grub2 - 检查文件是否损坏并在必要时回退到黄金映像
如何在 grub.cfg 文件中检查文件的 sha1sum 并将其与存储的数字进行比较?
如果相等则可以加载图像,否则应切换回黄金图像
我试过以下
但我收到错误消息
知道错误在哪里或如何处理文件检查吗?
谢谢
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
我尝试了一些可能的解决方案。
- 将以下代码添加到 lvm.conf
结果 >> 没有任何变化
更改了 grub-install
/li>
结果 >> 错误消息更改如下
在 lvm.conf 中进行了更改
/li>
结果 >> 错误消息作为解决方案 2
No.2 和 No.3 的错误信息显示“未找到卷组“luksdisk”,但加密的 sda2 (luksdisk) 不是卷组。这是问题的原因吗???
scripting - GRUB 脚本中的文件名通配符扩展
GRUB 脚本中是否可以进行文件名通配符扩展?
就像是:
我的目的是让 GRUB 加载位于某些目录中的不同 cfg 文件。
bash - grub2 如何增加变量
grub2 shell 旨在成为一个类似于 shell 的简约 bash。
但是我怎样才能在 grub2 中增加一个变量呢?
在 bash 我会做:
或者
在 grub2 中,这些调用出现语法错误。如何在 grub2 shell 中实现这一点?
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 中启动,但这并不困扰我。我可以给你来自两个操作系统的信息。
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
打印到屏幕上。
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/,它肯定应该存在。
有什么建议么?
x86-64 - GRUB 如何在 0x100000 加载内核
我正在从头开始编写引导加载程序和内核,我的目标是创建一个可以由 GRUB 和我的引导加载程序加载的内核。不过,问题不在于内核。我不知道如何在 grub 加载内核的 0x100000 处加载内核。0x100000 不够小,无法放入 16 位寄存器,而且太大而无法使用分段(使用 BIOS 中断读取磁盘时使用地址缓冲区 es:bx)。
所以我的问题是,GRUB 是如何将内核加载到内存中的?
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 并没有在断点处停止: