很多时候,尤其是在使用引导加载程序时,我会看到使用的数字驱动器和分区号。例如,在我的/boot/grub/grub.cfgI see 中set root='hd0,gpt2',我的 UEFI 引导条目通常引用驱动器/分区编号,并且它似乎出现在几乎所有涉及引导加载程序的上下文中。
现在我们有了 UUID 和 PARTUUID,以这种方式寻址分区似乎非常不稳定(afaik,不能保证驱动器总是以相同的顺序安装,用户可能会移动插入其主板的驱动器的顺序,等等)
因此,我的问题是双重的:
这个寻址方案是否像我上面概述的那样不稳定?我是否遗漏了标准中的某些内容,这意味着该方案比我预期的要可靠得多,还是因为您的驱动器只是在不同的顺序或将它们插入主板上的不同插槽?
如果上述问题的答案是肯定的,那么为什么还要继续使用这种寻址方案?对所有内容使用 UUID 或 PARTUUID 会不会更加稳定和一致?
在互联网上环顾四周,我发现了一些带有背景图像集的自定义 GRUB 安装的屏幕截图,这可能吗?我怎样才能做到这一点?
我目前正在尝试各种发行版,所以当我启动我的笔记本电脑时,我有几个操作系统可供选择。通常,所有这些发行版都安装grub2并位于列表顶部,因此它们是安装完成后启动的默认发行版。
但 Manjaro 做了一些不同的事情。它安装了一些版本,grub2它会记住我上次启动的发行版并继续启动那个发行版(重新启动时),直到我选择另一个发行版(然后它会启动那个发行版等等)。
这是我想象的吗?Manjaro 真的会这样做吗?如果是这样,我怎么能安装该版本的grub到我的系统?干杯。
这是我的/etc/grub.d/40_custom文件:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
Run Code Online (Sandbox Code Playgroud)
这是我的/etc/default/grub文件:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full …Run Code Online (Sandbox Code Playgroud) 我知道这是一个非常常见的问题,但我尝试了很多常见的答案(下面列举),但都无济于事。
基本设置:我正在设置 Fedora 31 / Ubuntu 18.04 双引导,每个分区都有一个单独的加密 / 和非加密 /boot 分区,以及一个 /boot/efi 分区,总共 5 个。首先安装了 Fedora,然后是Ubuntu。一切都很顺利,我可以从 efi 启动菜单启动到其中一个。我想锁定 efi 启动顺序并在 grub 中进行启动选择,而当前的 Ubuntu grub 选项错过了 Fedora。所以我启动到 Fedora 并尝试grub2-install /dev/sda将 MBR 重置为 Fedora 的 grub 配置并添加 Ubuntu。相反,我得到了 oh-too-common grub2-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory。
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootfloader-id=grub2不做任何更改。dnf reinstall grub2-efi shim grub2-toolsgrub2-efi-modules尽管如此,我在我的/usr/lib/grub目录中可以找到的只是arm64-efiandi386-pc但没有x86_64-efi。我对 bootmgr 的东西有点不了解(我的经验一直延伸到解决这些问题,直到每次我有新安装时它们都能工作)。
有人猜测问题是什么或在其他地方寻找答案吗?
如果我使用 Debian Stable (Squeeze) 安装程序安装 Debian,从一对 RAID1 驱动器启动,它是否会将 grub 写入两个驱动器的 MBR - 如果没有,我应该如何最好地防止驱动器故障 - 如果我只是克隆MBR 不会仍然指向发生故障的设备吗?
我已经在我的机器上安装了 Fedora,带有用于 EFI 引导的/分区、swap分区和ESP分区。
现在,我正在安装 Elementary OS 而不是 Fedora。
/分区 (/dev/sda3)现在,当我启动时,我得到了 Fedora 安装的旧 grub 菜单。我只能通过以下方式启动到 Elementary OS:
/dev/sda1/, 以获取elementary包含grubx64.efi文件的目录。这是/boot/efi/EFI/elementary/grubx64.efi.我该如何解决?我想过格式化引导分区/dev/sda1/,fat16然后在其上重新安装 grub。
我/dev/sda1现在包含这个:
root@rafael:/home/rafael# ls /boot/efi/
EFI mach_kernel System
root@rafael:/home/rafael# ls /boot/efi/EFI/
BOOT/ elementary/ fedora/
root@rafael:/home/rafael# ls /boot/efi/EFI/fedora/
BOOT.CSV fonts gcdx64.efi grub.cfg grubx64.efi MokManager.efi shim.efi shim-fedora.efi
root@rafael:/home/rafael# ls /boot/efi/EFI/elementary/ …Run Code Online (Sandbox Code Playgroud) 我已经阅读了论坛,但似乎我的 grub 启动菜单不遵循配置文件的形式。
我希望菜单不出现,除非Shift被按下。
我的 grub 菜单在每次启动时都会出现并一直保留到您选择菜单项为止。
我的当前/etc/default/grub是:
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=3
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomdmonddf nomdmonisw"
GRUB_CMDLINE_LINUX=""
GRUB_FORCE_HIDDEN_MENU="true"
export GRUB_FORCE_HIDDEN_MENU
Run Code Online (Sandbox Code Playgroud)
(我已经试过true's 带引号和不带引号,它没有区别)
我也做过update-grub和update-grub2。
谁能告诉我为什么当我的系统启动时,它只是位于 Grub 菜单中?这是一个无头系统,不好,因为我必须添加一个键盘才能让它重新启动。
这不是双引导系统。
我正在尝试在 Lenovo Thinkpad 上安装 64 位 Debian 稳定版。当我进入安装引导加载程序的安装步骤时,我收到以下消息:
安装步骤失败。您可以尝试从菜单中再次运行失败的项目,或者跳过它并选择其他内容。失败的步骤是:在硬盘上安装 GRUB 引导加载程序
返回菜单并选择 LILO 给了我同样的错误。安装日志说
May 1 13:24:23 main-menu[188]: WARNING **: Configuring 'grub-installer' failed with error code 1
May 1 13:24:23 main-menu[188]: WARNING **: Menu item 'grub-installer' failed.
May 1 13:24:28 main-menu[188]: INFO: Menu item 'lilo-installer' selected
May 1 13:24:28 main-menu[188]: WARNING **: Unable to set title for fdisk-udeb.
May 1 13:24:28 main-menu[188]: WARNING **: Configuring 'lilo-installer' failed with error code 1
May 1 13:24:28 main-menu[188]: WARNING **: Menu item 'lilo-installer' …Run Code Online (Sandbox Code Playgroud) 我正在使用videotest和vbetest程序检查 grub 菜单中不同的视频分辨率,并且grub在使用此程序后无法返回命令行。系统没有响应 - 就像挂了一样。只有 Virtualbox 的“关闭机器”有帮助。
问题:如何退出这种模式?可能是我使用这个程序的错误方式?
我的行动:
我注意到从前段时间开始,在更新 grub 时会出现以下警告消息:
Run Code Online (Sandbox Code Playgroud)Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
cat /etc/default/grub
Run Code Online (Sandbox Code Playgroud)
列出了以下选项:
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomdmonddf nomdmonisw fsck.mode=force"
GRUB_CMDLINE_LINUX=""
Run Code Online (Sandbox Code Playgroud)
假设如下:
我不使用 grub 菜单。
我希望引导过程不会因某些 grub 超时而减慢。
对我来说有效的选项是什么?
删除线:
Run Code Online (Sandbox Code Playgroud)GRUB_TIMEOUT=10
或者是其他东西?
操作系统:Linux Mint 18.2 Cinnamon 64 位。