问题标签 [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.
c - 内核在使用 GRUB 2 而不是 GRUB 0.97 引导时抛出 GPF 异常
我正在尝试从 GRUB 0.97 (stage2_eltorito) 切换到 GRUB 2,生成一个引导操作系统的 ISO 映像。但是,我面临一个特殊的错误。只是为了提供一些上下文,我最近设置了一些异常处理 ISR 和两个 IRQ:一个用于键盘输入,一个用于计时器滴答声。当使用 GRUB Legacy 引导时,内核工作正常,键盘输入也工作。当使用 GRUB 2 引导时,出于某种原因,内核会捕获一般保护错误异常并停止系统。我已经多次校对我的代码,但在任何地方都找不到可能导致此 GPF 错误的错误。我的问题是什么,如何解决?这是内核的程序集入口点,包括 Multiboot 标头:
(我不认为这是 Multiboot 问题,因为内核实际上在这两种情况下都能完美加载)此处提到的 load_gdt 和相关标签(因为我认为这可能是问题的一部分)
设置操作系统的 init() 函数(当然,在我创建 initrd 之前)
当然,我的主
提前致谢!(注意:multiboot_info_t 在我用来访问内存映射的 Multiboot 标头中定义,指向其类型的指针通过将 EBX 推送到 kernel.asm 中的堆栈作为参数传递给 kmain)
PS:kvm -kernel
似乎工作...
assembly - GNU GRUB 为 Multiboot2 提供“错误:不支持的标签:0xc”
我尝试将以下代码用于兼容 Multiboot2 的内核的标头,但是当我multiboot2
在 grub 中尝试该命令时,它给出了以下错误消息:
错误:不支持的标签:0xc
我的 Multiboot2 标头定义为:
我的项目存储库提供了完整的源代码。我用make test_longmode.iso
. 我用 QEMU 测试。
导致标签错误的问题是什么,我该如何解决?
ubuntu - 升级 18.04 后没有 gui 可用只有 tty
将我的 Ubuntu 桌面从 17.10 升级到 18.04 后,一切都很顺利,直到我重新启动了我的电脑。
我注意到的第一件可疑的事情是它与 17.10 具有相同的 grub - 它从菜单中选择了旧的 grub(自动选择),然后向我显示了启动屏幕。但后来我只获得了终端访问权限(tty1),而不是 GUI。
我该如何解决?我尝试运行:
但没有运气,最初的 grub 仍然是一样的。我该如何解决这个问题?
ubuntu - GRUB 的多个 EFI 可执行文件的引导行为
安装Ubuntu后, EFI系统分区的/efi/UBUNTU/里面有几个*.efi文件:
- GRUBX64.EFI
- MOKMANAG.EFI
- SHIMX64.EFI
- mmx64.efi
- fwupx64.efi
但是UEFI 规范 2.7在“ 13.3.1.3 目录结构”部分中说:
每个供应商子目录中的每个支持的处理器架构也必须只有一个可执行的 EFI 映像。这保证了 EFI 引导管理器只能从供应商子目录加载一个映像。如果存在多个可执行 EFI 映像,则系统的引导行为将不是确定性的。
我会明确 GRUB 的 5 个 EFI 可执行文件的引导行为。
pipe - 如何通过管道将 yes 传递给 Dockerfile 中的 ./script 以安装 virtualbox
我正在尝试在我的 docker 映像中使用 VirtualBox。但是当我安装最新的 VirtualBox 时,它会询问我是否要安装 grub,我已经尝试过
和
但我还没有完成
linux - Linux 内核无法从 USB 挂载 rootfs
我正在使用具有 64 位 x86 架构的 Intel Joule 570x 板作为参考。
我使用 GRUB2 作为引导加载程序和主线内核 4.9。我构建了内核,还构建了busybox rootfs,然后在qemu上对其进行了测试,我可以启动到shell。
现在我将内核bzImage
、GRUB 和 rootfs 放到 USB 上。我创建了第一个分区为 FAT 并将 bzImage 和 GRUB 文件放在那里。我将第二个分区创建为 ext4 并将 rootfs 文件放在那里。然后我把它插到开发板上。
这是我的 GRUB 菜单项:
内核抛出错误:
任何人都可以请帮忙。我的 USB 也被检测到了,我已将所有文件系统(fat、ext4 等)构建到内核中。该板还具有 eMMC 内置存储和 SD 卡,它们也被检测到。
以下是完整的启动日志:
编辑
我注意到的一个意外行为,如果我从 GRUB2 传递内核参数 as /dev/sdb
,那么内核显示sda1
和sda2
作为可用分区,并出现相同的错误。
backup - 恢复centos“/”分区回来的问题
将“/”分区恢复到新的centos时遇到问题。我的计划是将备份的 centos(安装了一些像 openstack 这样的软件包)恢复到新机器中。
还原过程作为 PXE 引导的一部分进行。我有一些可以做这些事情的 kickstart 文件。
我的 PXE 符合要求
- 在 CENT OS 之前安装一些软件包
- 安装 CENT 操作系统
- 将备份的“/”数据复制到最新的“/”中
不幸的是,新的 Cent 操作系统并没有开始进入紧急模式并要求我按 Ctrl+D。
任何帮助真的很棒!
x86-64 - grub 可以切换到长模式吗?
我想知道是否可以使用 grub 切换到长模式然后加载 64 位内核?我希望 grub 切换到长模式,设置页表以便将虚拟地址一对一映射到物理地址,并设置足够的页表来覆盖物理内存。
makefile - GRUB 构建无法编译
我从 Github https://github.com/coreos/grub克隆了 grub ,但是它无法编译并给出错误。错误似乎很明显,但关键是上游代码没有编译。我做错什么了吗?
我做了以下事情来编译:
我收到此错误:
我尝试使用 gcc 4.8,5 和 7,但同样的错误。我的主机是 Ubuntu-18 64 位。
windows-10 - 我无法在双启动模式下访问我的 ubuntu
我已经在我的 acer aspire 中安装了 ubuntu 18。然后我在双启动模式下安装了 Windows 10。安装windows后,我无法访问ubuntu。未显示 grub 加载程序。而且没有办法访问我的ubuntu。我什至尝试在cmd中将引导加载程序的路径更改为ubuntu。但没有成功。请帮帮我。