libvirt开启Linux虚拟机启动菜单 boot menu timeout
时间:2022-10-18 09:30:00
测试环境
Red Hat Enterprise Linux release 8.5 (Ootpa) kernel-4.18.0-348.20.1.el8_5.x86_64 libvirt-6.0.0-37.1.module el8.5.0 13858 39fdc467.x86_64 libvirt-client-6.0.0-37.1.module el8.5.0 13858 39fdc467.x86_64
背景介绍
官网下载的guest image是没有root权限的,获得root访问权限的方法有很多,包括libguestfs修改或通过cloud-init开始时写入等。还有一个官方重置Linux主机root详见密码方法Resetting the Root Password,这种方法的前提是你可以访问内核指导boot menu,这就导致了本文讨论的问题。如果你是Linux虚拟机一开始就直接开始内核引导,没有boot menu编辑启动参数的机会。这可以通过本文来解决。
解决方案
案例中的虚拟机名称Fedora-Cloud-Base-35
,虚拟机可以通过以下命令启动并进入console:
# virsh start Fedora-Cloud-Base-35 && virsh console Fedora-Cloud-Base-35
然而,内核直接开始引导,没有机会编辑和启动参数。此时可以通过virsh edit
命令检查虚拟机的配置文件,并根据情况添加以下两行os
标签下:
<bootmenu enable='yes' timeout='30000'/> <bios useserial='yes' rebootTimeout='0'/>
添加的完整配置文件应如下(部分内容省略):
# virsh dumpxml Fedora-Cloud-Base-35 Fedora-Cloud-Base-35 ... hvm ...
这个配置会让boot menu等待30秒,你会有足够的时间做出反应。提示,如果你没有看到它boot menu,试着直接按e
试一下。
参考资料
- https://libvirt.org/formatdomain.html#operating-system-booting