进修 GRUB 引导加载法度榜样是若何预告你的体系并启动操作体系内核的。
自负年夜上个月为我的文┞仿《Linux 引导和启动过程简介》做研究开端,我对更深刻懂得 GRUB2 产生了兴趣。这篇文┞仿供给了设备 GRUB2 的扼要介绍。为了简便起见,我大年夜多半情况下会应用 GRUB 指代 GRUB2。
GRUB 来自 GRand Unified Bootloader 的缩写。它的功能是在启动时大年夜 BIOS 接收掌控、加载自身、加载 Linux 内核到内存,然后再把履行权交给内核。一旦内核开端掌控,GRUB 就完成了它的义务,也就不再须要了。
GRUB 支撑多种 Linux 内核,并许可用户在启动时经由过程菜单在个中选择。我发明这是一种异常有效的对象,因为我有很多次碰到一个应用法度榜样或者体系办事在特定内核版本下掉败的问题。有好几回,引导到一个较旧的内核时就可以避免类似的问题。默认情况下,应用 yum 或 dnf 进行更新时会保存三个内核 - 最新的以及两个比较旧的。在被担保理器删除之前所保存的内核数量可以在 /etc/dnf/dnf.conf 或 /etc/yum.conf 文件中设备。我平日把 installonly_limit 的值修改为 9 以便保存 9 个内核。当我不得不恢复到低几个版本的内核时这异常有效。
GRUB 菜单
GRUB 菜单的功能是当默认的内核不是想要的时,许可用户大年夜已经安装的内核中选择一个进行引导。经由过程高低箭头键许可钠揭捉?中想要的内核,敲击回车键会使悠揭捉?中的内核持续引导过程。
GRUB 菜单也供给了超机会制,是以如不雅用户没有做任何选择,GRUB 就会在没有效户干涉的情况下应用默认内核持续引导。敲击键盘上除了回车键之外的任何键会停止终端上显示的倒数急鹞鲼。急速敲击回车键会应用默认内核或者选中的内核持续引导过程。
GRUB 菜单供给了一个 “救济rescue” 内核,用于故障清除或者因为某些原因导致的惯例内核不克不及完成启动过程。不幸的是,这个救济内核不会引导到救济模式。文┞仿后面会更具体介绍这方面的器械。
grub.cfg 文件
grub.cfg 文件是 GRUB 设备文件。它由 grub2-mkconfig 法度榜样根据用户的设备应用一组主设备文件以及 grub 默认文件而生成。/boot/grub2/grub.cfg 文件在 Linux 安装时会初次生成,安装新内核时又会从新生成。
grub.cfg 文件包含了类似 Bash 脚本的代码以及一个按照安装次序排序的已安装内核列表。例如,如不雅你有 4 个已安装内核,最新的内核索引是 0,前一个内核索引是 1,最旧的内核索引是 3。如不雅你能拜访 grub.cfg 文件,你应当去看看感触感染一下它看起来是什么样。grub.cfg 太大年夜也就没有包含在这篇文┞仿中。
GRUB 设备文件
grub.cfg 的重要设备文件都在 /etc/grub.d 目次。该目次中的每个文件都包含了最终会整合到 grub.cfg 文件中的 GRUB 代码。这些设备文件的定名模式以排序方法设计,这使得最终的 grub.cfg 文件可以按精确的次序整合而成。每个文件都有注释注解该部分的开端和停止,这些注释也是最终的 grub.cfg 文件的一部分,大年夜而可以看出每个部分是由哪个文件生成。分隔注释看起来像如许:
- ### BEGIN /etc/grub.d/10_linux ###
- ### END /etc/grub.d/10_linux ###
不要修改┞封些文件,除非你是一个 GRUB 专家并明白更改会产生什么。无论若何,修改 grub.cfg 文件时你也总应当保存一个原始文件的备份。 40_custom 和 41_custom 这两个特其余文件用于生采取户对 GRUB 设备的修改。你仍然要留意对这些文件的更改的后不雅,并保存一份原始 grub.cfg 文件的备份。
你也可以把你本身的文件添加到 /etc/grub.d 目次。如许做的一个可能的原因是为非 Linux 操作体系添加菜单行。要留意遵守定名规矩,确保设备文件中额外的菜单选项刚好在 10_linux 条目之前或之后。
GRUB 默认文件
老版本 GRUB 的设备异常简单而清楚明了,我只须要修改 /boot/grub/grub.conf 就可以了。对于新版本的 GRUB2,我固然还可以经由过程更改 /boot/grub2/grub.cfg 来修改,但和老版本的 GRUB 比拟,新版本相对加倍复杂。别的,安装一个新内核时 grub.cfg 可能会被重写,是以任何修改都可能消掉。当然,GNU.org 的 GRUB 手册确切有过直接创建和修改 /boot/grub2/grub.cfg 的评论辩论。
/etc/default/grub 文件异常简单。这个 grub 默认文件已经列出了一些有效的键值对。你可以简单地更改现有键值或者添加其它文件中还没有的键。下面的列表 1 显示了一个没有更悛改的 /etc/default/grub 文件。
- GRUB_TIMEOUT=5
- GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g'
- /etc/system-release)"
- GRUB_DEFAULT=saved
- GRUB_DISABLE_SUBMENU=true
- GRUB_TERMINAL_OUTPUT="console"
- GRUB_CMDLINE_LINUX="rd.lvm.lv=fedora_fedora25vm/root
- rd.lvm.lv=fedora_fedora25vm/swap
推荐阅读
如今的 CSS 前端框架的成长异常迅猛,然则真正好的框架不多。在这篇文┞仿中,我将对我认为当今最好的 5 个框架进行比较。每个框架都有它本身的强项和弱项,以及合适的范畴,你须要根据这些特点来进行选择。例如,如>>>详细阅读
本文标题:Linux GRUB2配置简介
地址:http://www.17bianji.com/lsqh/35736.html
1/2 1