我正在使用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
和设置:
LOAD_KEXEC=false
或者,要保持kexec处于活动状态并将其重新启动到您选择的内核中,请尝试使用这样的命令行来加载所需的内核:
kexec -l /boot/vmlinux --append=root=/dev/hda1 --initrd=/boot/initrd
然后当’kexec -e’稍后运行时,kexec行中的配置内核也将运行.我相信重启脚本最终只调用’kexec-e’,我相信内核更改应该会生效.
标签:linux,kernel
来源: https://codeday.me/bug/20190810/1641176.html