问题标签 [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 投票
2 回答
1812 浏览

linker - 未找到 GRUB Multiboot 标头

在阅读了这个问题及其主要答案后,我在内核上运行了 readelf,并注意到我的 .text 部分位于 0x00101000 而不是 0x00100000。我还注意到上面的部分 .not.gnu.build-i 位于 .text 部分应该在的位置。有没有办法让我的 .text 部分位于正确的位置?我已经习惯align 4将其设置为1M。

0 投票
1 回答
374 浏览

performance - 如何加快opensuse studio的启动并显示启动信息

我想创建一个图像,它将:

  • 在引导期间显示尽可能多的信息(用于引导步骤的粗略分析)
  • 尽可能快地引导到 shell 提示符

注意:引导加载程序是 grub2,但我无法创建相应的标签,所以我使用了最接近的可用标签:“grub”。

0 投票
1 回答
7091 浏览

linux - Centos 7紧急模式无限错误

由于 /etc/fstab 的代码行错误,我无法启动我的 linux 机器。目前我的机器将尝试启动并无限循环消息“欢迎进入紧急模式!...”。我无法进入控制台或登录。

在启动屏幕上点击逃生并进入救援模式也不起作用。使用 grub2 我可以通过 cat (lvm/centos-root)/etc/fstab 查看我的 fstab 文件。

如何编辑此文件并删除错误的代码行?

0 投票
3 回答
1172 浏览

c - 在 C 函数调用中传递 char 字符串时,Bochs (2.4.6)/GRUB (0.97) “错误 13 无效或不受支持的可执行格式”

我正在尝试遵循“关于操作系统开发的小书”并做一个我正在启动的小型操作系统。

但是我遇到了一个我无法解决或解释的问题。简而言之,当传递一个 char 字符串(在 C 中)时,内核启动正常并且在执行时工作;

但是当我尝试直接调用函数时,使用函数调用中定义的 char 字符串,GRUB 不会启动我的内核;

然后我得到

编译和链接似乎很顺利,没有任何警告或错误。

我错过了什么?或者我做错了什么?


主程序

加载器.s

链接.ld

bochsrc.txt

生成文件

0 投票
1 回答
525 浏览

grub - 通过 UUID 在磁盘驱动器上安装 grub

有一种方法可以指示 grub 通过 UUID 而不是使用 /dev/sdX 安装在设备 MBR 上?我正在使用 NixOS 设置一个外部 eSATA 硬盘,显然,硬盘不会总是相同的 /dev/sd X设备?

我看到我可以用 配置它boot.loader.grub.device = "/dev/sdX",但可以将它设置为"/dev/disk/by-uuid/...." ??

0 投票
3 回答
7063 浏览

bootloader - 使用 GRUB2 loopback 命令挂载 VHD

我需要在 grub2 命令提示符下挂载一个 VHD 文件。

我尝试使用“loopback”命令,如下所示:

我尝试了“静态”和“动态”vhd,两个 VHD 文件都有 ntfs 分区数据。

我猜 VHD 文件有一些头数据,这使得文件系统在“环回”挂载后无法识别。我能够使用相同的命令集安装和访问“iso”文件。

我的猜测正确吗?如果是这样,有没有办法克服这个问题?

0 投票
1 回答
1825 浏览

c - 错误 13:使用字符串文字在 grub 中引导简单内核时可执行文件无效或不受支持

我编写了一个简单的内核,试图将两个字符写入帧缓冲区。

如果我在内核中定义一个字符串文字,我会在它启动时得到以下输出:

否则,如果我定义两个字符,我会得到以下信息(注意输出开头的“ab”):

装载机

我在汇编中编写了加载程序:

内核是用c编写的

外部标头

有两个外部标题。一个用于 IO 端口,称为 io.h,另一个用于写入帧缓冲区,称为 fb.h

这是 io.h 和实现 io.s

io.h:

IOS:

FB.h

脸书

建造它

我有一个名为 link.ld 的链接器脚本和一个 Makefile。我正在为 i386-elf 使用 gcc 交叉编译器,我使用本指南(http://wiki.osdev.org/GCC_Cross-Compiler)编译。

这是我的makefile

运行

makefile 从名为 iso 的目录的内容中构建一个 iso。该文件夹包含我在此处获得的 grub 的预配置版本(https://github.com/littleosbook/littleosbook/blob/master/files/stage2_eltorito)和 grub 的 menu.lst 文件

菜单.lst:

iso目录的内容:

iso 映像以 bochs 启动。这是我的 bochsrc.txt 文件

有谁知道为什么当我尝试启动 iso 时内核文件中的字符串文字会产生错误?

0 投票
1 回答
1571 浏览

scripting - 在提示用户输入密码进行加密的脚本中使用 `grub-md5-crypt`

正如您已经从标题中知道的那样,我想为 grub 配置一个加密密码/etc/grub.conf。我想使用一个脚本,我将在其中使用grub-md5-crypt,输入我要加密的密码,然后sed/etc/grub.conf. 第二部分对我来说很好。但是如何处理脚本中的密码提示:

如何自动将加密密码保存在变量中或以某种方式管理它,以便在我的脚本的下一行中我可以sed这样:

请帮忙

0 投票
1 回答
52 浏览

ubuntu - 更新到 Ubuntu 12.0.4 后,重启后屏幕不工作

我们将基本映像安装到我们的机器上,以确保每个机器的设置都相同。最近,我们更新了基础镜像以使用 Ubuntu 12.0.4 而不是 Ubuntu 9.04。

我们有一个奇怪的问题,如果我们在打开机器后打开屏幕,那么屏幕就会进入睡眠模式 - 就好像它根本没有插入一样。重新启动机器工作。我可以更改 Xorg.conf 文件或 grub 设置来解决此问题吗?在包含版本 9.04 的旧基础映像中,它不用于执行此操作。

0 投票
1 回答
502 浏览

linux - 重置默认 Grub 引导

我有一个在单个硬盘驱动器上安装了多个 Red Hat 的系统。我想在运行时自动选择默认安装启动。Red Hat 执行此操作的方式(与 Grub 文档略有不同)是进入 grub shell 并说

保存到指定的。

我使用链式加载,所以磁盘上有几个 grub.conf 文件。我只想更改与 /boot 中与 MBR 相关联的 stage2 文件,而不是与安装本身相关联的单个文件。在 grub 中,如果我说

或者

我返回了所涉及的分区和文件的完整路径名的有效列表。在前一种情况下,类似

而在后者

我想改变的是后一种情况。但是,如果我接着说

根 (hd0,0)

或变体,如

或类似的,我得到

我隐约怀疑我没有正确安装分区,并且它可能是我做事的只读方式,但我所做的似乎没有改变正确的 stage2 文件。请注意,如果我只是说

或完全关闭“--stage2=...”选项,该命令会成功,但会更改当前运行的操作系统从其引导的分区上的 stage2 文件 - 而不是与实际控制的 MBR grub.conf 关联的文件初始启动。

我在这里想念什么?