问题标签 [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 - 早期配置中的 GRUB2 菜单
我正在尝试在文件中的 GRUB 2.04 的早期配置文件中创建一个菜单early.cfg
:
我正在构建 core.img:
在引导时,没有可用的文件系统(还)可以从中加载 grub.cfg。当我启动时,我得到grub>
提示。
如何进入菜单?我尝试输入normal
+ Enter,Esc,Esc,但它没有显示菜单,它只是让我回到grub>
提示并清除屏幕。
最终我想默认激活早期配置中定义的菜单。我怎么做?
ls - grub2 没有列出 iso9660 内容
我正在构建 BOOTX64.EFI 图像:
然后我以给定的前缀将它嵌入到 FAT16 分区(esp.img)中,并使用 xorriso 创建 ISO:
它启动到:
但是当ls
被调用时,没有列出任何文件系统(proc 除外),而我希望在下面看到 (cd0) 和 msdos 分区。
我将我的与 debian netinst 进行比较,当我ls
在 grub shell 中读取详细输出时,我会看到kern/disk.c
并disk/efi/efidisk.c
处理我的命令,而我的详细输出是无声的。此外,lsmod
在 debian netinst 列表lsefi
模块上,而我的没有。
我错过了一些东西,我要求提示。
ansible - Ansible 无法为 Redhat 中的 GRUB 引导加载程序设置密码
作为 Salam-o-Alikum,我编写了一个 Ansible 剧本,用于在 RedHat 和 Ubuntu 上设置 GRUB 引导加载程序密码,没有错误,我可以在两个位置看到Grub2.cfg的变化。奇怪的是,当我重新启动两台机器时,Ubuntu 机器会询问用户名和密码,但 Redhat 机器不会。我已经看到 50 多个教程过程是相同的,而且非常简单,但我不明白它为什么会这样。任何帮助将不胜感激。
这是我尝试过的。
硬化.yml
grub-redhat.j2
grub-ubuntu.j2
Ansible 分发
Red Hat 7.7 Maipo 和 Ubuntu 18.04 仿生
linux - Mount device after bootup in isolinux or grub (Fedora CoreOS)
I have a isolinux.cfg and grub.cfg file in which I invoke a vmlinuz kernel. I already append some kernel parameters but I would like to mount my device /dev/sda1 on boot before the vmlinuz parameter invokes my installation.
In my case the kernel parameter: coreos.inst=yes will trigger the installation process to automatically start, but in beforehand the device should get mounted.
grub.cfg
isolinux.cfg
So in the end I would like that /mnt/ is the mounted device: /dev/sda1
This most likely would mean to execute something like this: mount -t auto -v /dev/sdb1 /mnt/
Is this somehow possible to do as an appended option on the initrd or kernel? (Within those configuration files.)
If not, what would be the approach to do something similar without changing initramfs.img or vmlinuz file?
PS: It's not necessary that this approach works for both, legacy and efi boot. One would be enough, of course it would be nice if it's something that works in both cases.
Edit: It might be possible with the kernel parameter: systemd.* for example systemd.run=mount something like this.
anaconda - 从lvm安装anaconda引导
我正在通过 tftp 安装 Fedora 31。我的系统有 3 个磁盘: sda - 要安装的磁盘;sdb/sdc 位于lvm
具有一个 lv (lv1) 的 vg 组 (VG1) 中。这个 lv 有 F31 磁盘映像 (.iso),以及一个 kickstart 文件。
问题:如何使用此设置启动 anaconda?vmlinuz
并且initrd
图像从原始 F31 安装 DVD 中提取(并复制到 tftp 服务器)。
更具体一点:如何告诉 grub 将根路径设置为 VG1/lv1?
我是否需要生成一个新的vmlinuz
和initrd
(可能需要添加lvm
内核模块)?
FWIW:通过相同的安装nfs
工作正常。但是,对于此安装,我需要从连接到同一系统的 VG/lv 访问安装/kickstart 设置。
TIA
肯
rhel - 如何在 Centos-8 下的命令行中列出和编辑 GRUB2 的“菜单项”?
如何在 Centos-8 下的命令行中列出 GRUB2 的“菜单项”?使用的可行方法“fgrep menuentry /etc/grub2.conf”失败。
因为在 Centos-8/RHEL-8 中,它们不会将 menuentry 存储在 /etc/grub2.conf 中。相反,它们在启动运行时搜索和构建条目。
以及如何将自定义 cmdline 参数添加到特殊菜单项?/etc/grub2.conf 中没有menuentry,我无法编辑任何menuentry。
installation - Fedora:无法设置新的 efi 引导目标
在我的惠普笔记本电脑上安装 Fedora 31 时得到了关注。
无法设置新的 efi 引导目标
为了解决这个问题,我在安装基于 Ubuntu 的发行版时曾经发生过类似的事情,我使用了此处描述的解决方案,即手动安装grub2
。正如我所观察到的,这是一个特定于硬件的问题,因为当时基于 Ubuntu 的发行版在我的桌面上安装得很好,但在我的笔记本电脑上却没有。
但是如何在 Fedora 中解决这个问题呢?
linux - grub/i386-pc/normal.mod 未找到 centos 7
安装在 ESXI 之上的 CnetOS7 虚拟机突然停止启动并将屏幕显示为 grub secure>
我已经尝试了解决方案 https://unix.stackexchange.com/questions/70538/grub-error-file-grub-i386-pc-normal-mod-not-found但无法通过。
我的前缀设置如下。前缀=(hd0,msdos1)/boot/grub 根=hd0,msdos1
ls: (hd0) (hd0,msdos2) (hd0,msdos1)
ls (hd0,msdos2) 未知文件系统
ls (hd0) 未知文件系统
-- 以上确认不是我们的分区。
ls (hd0,msdos1) (hd0,msdos1); 文件系统是 xfs - 这是我们的分区,我们的前缀也相同。[前缀=(hd0,msdos1)/boot/grub]
但是当我在 (hd0,msdos1) 的对象中列出时,我什么也没得到,它显示了下面的一部分 ./ ../
任何人都可以有任何解决方案吗?
linux - 重启后无法登录虚拟机
我为交叉发布道歉,因为这也存在于 Unix 和 Linux Stack Exchange 上。我需要为此找到答案。
我们的虚拟机在 VMWare 上运行。我不确定版本,但我想说它是 ESX 6(或 vSphere 6)。我支持和管理的客人都是CentOS 7
今天,我浏览并扩展了物理和逻辑卷以使用最近添加的磁盘空间。物理分区之前已经使用 fdisk 进行了扩展,我只是没有完成调整 LVM 大小的步骤。分配和调整大小都很顺利,没有任何问题。然后我重新启动了 VM 以确保进行了更改并且没有发生错误。
这就是我的问题所在。重新启动后,我无法再通过 ssh 进入虚拟机。我可以通过 vSphere 客户端访问虚拟机。VM 的状态看起来不错。它处于运行状态,我可以看到正在使用的所有 IP 地址(我们运行了几个 docker 容器,因此显示了许多 IP 地址),有 CPU 和内存使用情况。但是,似乎没有任何服务启动,例如 ssh、docker(因为我们在容器中部署了多个 Web 应用程序,我无法访问这些 Web 应用程序。
重新启动后,我尝试 ssh 进入虚拟机,但连接超时。因此,我从 vSphere 客户端打开了一个远程控制台,并尝试使用两个不同的管理员用户登录。两者都不起作用,我在 30 秒后返回登录提示。我重新启动了虚拟机,尝试了不同的选项,例如使用救援内核、进入 grub 并尝试各种设置,例如 root、linux 内核等。每次虚拟机启动并加载到登录提示时,就是这样。
我会假设,如果出现错误,我会看到并被带到紧急/崩溃外壳,但没有这样的事情。从所有外观来看,VM 似乎已正确启动。
在我们的 vCenter 上,我只有最低限度的权限。所以我的问题是:
- 有没有办法绕过登录,仅从控制台,能够查看引导记录?我认为不会,因为这将是一个巨大的安全风险。
- 无论如何,是否有任何东西从客人报告给主人?同样,我假设有,但我无权查看输出。
- 由于无法登录,有什么方法可以从客人那里获取引导记录?我假设没有
- 我已经安装了一个 ISO,但我无法更改设置以强制执行 BIOS 设置,所以有没有办法使用 grub 命令行来伪造虚拟机,使其没有安装操作系统?我想这样做是为了修复安装、引导记录等。
linux - 如何将磁盘映像附加到包含 Linux 内核根文件系统的 QEMU?
我可以使用 QEMU 启动 linux 内核-kernel
,这非常简单明了。
但现在我正在尝试不同的东西。我正在模拟 UEFI + GRUB + Kernel 的组合。
我已经从源代码构建了 OVMF 和 GRUB2,并且还能够加载内核映像,但是很难创建 rootfs 磁盘映像并将其附加到 qemu 以便内核检测到它。
这就是我为内核准备 rootfs.img 的方式:
这就是我的 GRUB 配置的样子:
这是我用来启动 qemu 的命令:
我附加的 FAT 磁盘hda
包含我的 GRUB 和内核映像。我想要一个单独的磁盘用于 rootfs,并且不想为此目的使用这个 FAT。
安装程序启动到内核,但内核无法挂载磁盘sdb1
,因此在 rootfs 中看不到init
,因此我得到内核恐慌。以下是内核日志:
有人可以指导在 qemu 中附加磁盘的正确方法可以解决这个问题,或者如果我需要更改 GRUB 配置中的某些内容?
编辑
这次我按照@stark 的建议创建了带有分区表的磁盘映像。
现在我再次使用与上面相同的命令启动内核,但这次内核只是挂起:
除此之外没有输出。我etc/init.d/rcS
在 rootfs.img 中创建了以下内容:
编辑2
我console=tty0
从 GRUB 配置中删除,内核启动到 shell。但我不确定为什么它会导致在这个虚拟环境中挂起?
我在想,因为tty0
代表当前显示并且因为-display none
是为 qemu 设置的,所以这种混淆会产生一些冲突,因此会出现这个问题......
但是请有人在这个问题上给出一个正确而具体的结论,以便这个线程将来对某人有用。