Grub(或其他)将命令行参数发送到 linux 内核,以修改某些参数。
如果我想在内核启动(并可能对其进行修改)之前进入并查看此信息,人们会在哪里看?这是否存储在内核知道要查找的内存中的特定位置?
我知道一旦内核启动它就会放在 /proc 条目下,但我正在寻找有关它如何工作的预操作系统信息(也许这是错误的地方?)
这是一个关于引导加载程序将信息传递给序列中的下一个精灵(通常但不限于内核)的方法的问题。这与 grub 设置无关
Grub(或其他)将命令行参数发送到 linux 内核,以修改某些参数。
如果我想在内核启动(并可能对其进行修改)之前进入并查看此信息,人们会在哪里看?这是否存储在内核知道要查找的内存中的特定位置?
我知道一旦内核启动它就会放在 /proc 条目下,但我正在寻找有关它如何工作的预操作系统信息(也许这是错误的地方?)
这是一个关于引导加载程序将信息传递给序列中的下一个精灵(通常但不限于内核)的方法的问题。这与 grub 设置无关
Grub 实现了多重引导规范。当它加载内核并将控制权交给它时,它会传递一个指向内存中信息结构的指针。该结构中的字段之一是命令行。
Linux 内核有自己的引导协议,但命令行以类似的方式处理:引导加载程序将其留在内存中,并填充内核数据结构中的各个字段,以便内核找到它。
在引导加载程序完成引导加载后,它会启动一个最小的操作系统环境,通常基于 initrd.img 或 initramfs。您在 grub 文件中看到的内核参数被定向到在这个最小环境之后启动的内核。通常,当您执行 mkinitrd 时,出于所有意图和目的,从 /etc 中选择的合理设置用于配置此 initrd 映像。
到通常的启动顺序发生时,初始环境已被移除并使用通常的内核。需要注意的一点是,在 initrd 中启动的驱动程序可以在正常执行中保持常驻,这可能是令人头疼的一个来源。