资讯详情

libvirt开启Linux虚拟机启动菜单 boot menu timeout

测试环境

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  <domain type='kvm' id='17'>   <name>Fedora-Cloud-Base-35</name>   ...   <os>     <type arch='x86_64' machine='pc-q35-rhel8.2.0'>hvm</type>     <boot dev='hd'/>     <bootmenu enable='yes' timeout='30000'/>     <bios useserial='yes' rebootTimeout='0'/>   </os>   ... </domain> 

这个配置会让boot menu等待30秒,你会有足够的时间做出反应。提示,如果你没有看到它boot menu,试着直接按e试一下。

参考资料

  1. https://libvirt.org/formatdomain.html#operating-system-booting

标签: 12通用hvm10二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台