Rjl931189261 (talk | contribs) m (→介绍) |
Rjl931189261 (talk | contribs) m (→任务/常见问题) |
||
Line 30: | Line 30: | ||
<pre># grubby --set-default=/boot/vmlinuz-5.11.12-300.fc34.x86_64</pre> | <pre># grubby --set-default=/boot/vmlinuz-5.11.12-300.fc34.x86_64</pre> | ||
= | =更新 GRUB 2 主配置文件= | ||
<code>/boot/grub2/grub.cfg</code> 是默认的 GRUB 配置文件。通常来说你不需要去改动这个静态文件,除非你对磁盘进行了更换或并行安装了其他系统。 | |||
== 探测使用中的固件 == | |||
执行下面的命令: | |||
# | * 在 UEFI 系统: | ||
</pre> | <pre># ls -ld /sys/firmware/efi</pre> | ||
* 在 BIOS 系统: | |||
<pre># ls -lrt /etc/grub2.cfg</pre> | |||
输出的结果即为你使用的固件。 | |||
<code>grub2-mkconfig -o /boot/grub2/grub.cfg</code> 将探测其他的操作系统并更新引导选单,这是通过 <code>os-prober</code> 实现的。 | |||
{{admon/note|使用 Fedora 32 或更早版本的用户可能需要使用 <code>grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg</code>. |}} | |||
== 修复 GRUB 2 == | |||
如果你的系统无法引导,尝试进入恢复模式以对引导进行修复,详见 [https://docs.fedoraproject.org/en-US/fedora/rawhide/install-guide/advanced/Boot_Options/#sect-boot-options-rescue Fedora Docs 的相关文章]。 | |||
然后,执行下面的命令挂载根分区: | |||
<pre> | <pre># chroot /mnt/sysimage</pre> | ||
</pre> | |||
== 重新安装 GRUB 2 == | |||
GRUB 2 软件包包含了安装引导器和生成 <code>grub.cfg</code> 配置文件的相关脚本。 | |||
<code>grub2-install</code> 会在 MBR 安装引导器,引导器的相关文件会储存在 <code>/boot/</code> 目录。 | |||
要重装 GRUB 2: | |||
* 了解系统正在使用的固件有那些。 [https://fedoraproject.org/wiki/GRUB_2#Discovering_what_firmware_the_system_is_running 请阅读本章节] 了解详情。 | |||
* 在 UEFI 系统: | |||
<pre> | <pre># dnf reinstall shim-* grub-efi-*</pre> | ||
</pre> | |||
* 在 BIOS 系统: | |||
** 查看 <code>/boot/</code> 目录位于哪个分区上: | |||
<pre> | <pre> | ||
( | # mount | grep "/boot " | ||
/dev/sda4 on /boot type ext4 (rw,relatime,seclabel) | |||
</pre> | </pre> | ||
就如上面的例子,目录位于 <code>/dev/sda4</code>. | |||
** 重新安装引导器: | |||
<pre> | <pre> | ||
# grub2-install /dev/sda | |||
Installing for i386-pc platform. | |||
Installation finished. No error reported. | |||
</pre> | </pre> | ||
{{admon/warning| Do not use the <code>grub2-install</code> command on UEFI systems. On those systems, bootloaders are in the <code>shim</code> and <code>grub-efi</code> packages. By reinstalling those packages, the bootloaders are reinstalled to their proper location in <code>/boot/efi/</code> (the EFI system partition). }} | |||
< | |||
</ | |||
< | |||
</ | |||
</ | |||
</ | |||
=深入阅读= | =深入阅读= |
Revision as of 01:04, 8 May 2021
介绍
GRUB 2 是 GNU GRUB (GRand Unified Bootloader) 的最新版本。bootloader(引导程序) 是计算机开机时第一个运行的软件程序。它负责加载操作系统内核并把控制权交给操作系统内核(Fedora 下就是 Linux 了)。反过来,内核初始化操作系统的其余部分。
GRUB 2 已经取代了之前的 GRUB (即,0.9x 版本),使 GRUB 成为了 GRUB Legacy 。
从 Fedora 16 开始,GRUB 2 就是 x86 BIOS 系统下默认的引导程序了。对于 BIOS 系统的升级也是默认安装 GRUB 2,但是您完全可以选择跳过配置引导程序。
使用 Grubby 管理内核引导参数
Grubby 可用于更新引导相关的配置文件,我们推荐你使用它更新内核引导参数和设定默认内核。
下面我们简单介绍 grubby
的用法:
- 为单个引导项添加一个内核参数:
# grubby --args=<NEW_PARAMETER> --update-kernel=/boot/vmlinuz-5.11.14-300.fc34.x86_64
- 为单个引导项添加多个内核参数:
# grubby --args="<NEW_PARAMETER1> <NEW_PARAMETER2 <NEW_PARAMETER_n>" --update-kernel=/boot/vmlinuz-5.11.14-300.fc34.x86_64
- 为所有引导项添加内核参数:
# grubby --args=<NEW_PARAMETER> --update-kernel=ALL
- 从当前和以后的所有引导项中删除内核参数:
# grubby --remove-args=<PARAMETER_TO_REMOVE> --update-kernel=ALL
- 设置默认内核:
# grubby --set-default=/boot/vmlinuz-5.11.12-300.fc34.x86_64
更新 GRUB 2 主配置文件
/boot/grub2/grub.cfg
是默认的 GRUB 配置文件。通常来说你不需要去改动这个静态文件,除非你对磁盘进行了更换或并行安装了其他系统。
探测使用中的固件
执行下面的命令:
- 在 UEFI 系统:
# ls -ld /sys/firmware/efi
- 在 BIOS 系统:
# ls -lrt /etc/grub2.cfg
输出的结果即为你使用的固件。
grub2-mkconfig -o /boot/grub2/grub.cfg
将探测其他的操作系统并更新引导选单,这是通过 os-prober
实现的。
修复 GRUB 2
如果你的系统无法引导,尝试进入恢复模式以对引导进行修复,详见 Fedora Docs 的相关文章。
然后,执行下面的命令挂载根分区:
# chroot /mnt/sysimage
重新安装 GRUB 2
GRUB 2 软件包包含了安装引导器和生成 grub.cfg
配置文件的相关脚本。
grub2-install
会在 MBR 安装引导器,引导器的相关文件会储存在 /boot/
目录。
要重装 GRUB 2:
- 了解系统正在使用的固件有那些。 请阅读本章节 了解详情。
- 在 UEFI 系统:
# dnf reinstall shim-* grub-efi-*
- 在 BIOS 系统:
- 查看
/boot/
目录位于哪个分区上:
- 查看
# mount | grep "/boot " /dev/sda4 on /boot type ext4 (rw,relatime,seclabel)
就如上面的例子,目录位于 /dev/sda4
.
- 重新安装引导器:
# grub2-install /dev/sda Installing for i386-pc platform. Installation finished. No error reported.
深入阅读
http://www.gnu.org/software/grub/manual/grub.html
http://fedoraproject.org/wiki/Features/Grub2
http://fedoraproject.org/wiki/Anaconda/Features/Grub2Migration