我正在使用 ssh 远程访问一些机器。这些机器安装了自定义内核(基于 2.6.28 源)。但是,每当我尝试使用 重新启动机器时sudo reboot,系统都会使用 kexec 并加载 2.6.28-19 通用内核,该内核也安装在机器上。
那么如何指定重启后加载哪个内核映像呢?
编辑:我在机器上安装了 ubuntu 9.04,带有 grub 1.something。自定义内核基于 2.6.28 源代码,名称为 2.6.28.10-custom-1.1。机器上安装了另外两个内核 2.6.28-19-generic 和 2.6.28-6-386。我已经检查过,在调用 reboot 之后,机器实际上并没有重新启动,而是使用 kexec 来加载 19 通用内核,即使当前内核是自定义内核。
通常,当您重新启动时,计算机将返回 grub,并允许您通过键盘选择内核,或启动默认配置的内核。但是,如果您安装了 kexec-tools,reboot 命令将短路此行为并直接 kexec 到内核中。您可以通过卸载 kexec 工具或编辑文件来禁用此行为,并在重新启动时返回到 grub
/etc/default/kexec
Run Code Online (Sandbox Code Playgroud)
和设置:
LOAD_KEXEC=false
Run Code Online (Sandbox Code Playgroud)
或者,要保持 kexec 处于活动状态并重新启动到您选择的内核,请尝试使用如下命令行来加载所需的内核:
kexec -l /boot/vmlinux --append=root=/dev/hda1 --initrd=/boot/initrd
Run Code Online (Sandbox Code Playgroud)
然后当稍后运行“kexec -e”时,kexec 行中配置的内核也将运行。因为我相信重新启动脚本最终只会调用“kexec-e”,所以我相信内核更改应该会生效。
| 归档时间: |
|
| 查看次数: |
1220 次 |
| 最近记录: |