我有一台虚拟化服务器,上面运行着几台虚拟机。所有这些都是使用带有 KVM 的 Ubuntu 服务器版本以及通过 SSH 连接使用 virt-manager 完成的。
这些虚拟机是 Lucid 10.04 64 位虚拟机。当我通过
apt-get upgrade
ncurses 屏幕之间的 SSH 连接升级它们时,它会询问我是否应该安装引导加载程序并选择Yes
或No
。
我不知道我应该在这里选择什么,所以我取消了升级。由于这是一台生产机器,我无法指定任何这样的事情。所以请告诉我什么是正确的。
答案1
这取决于机器的启动方式。如果你的机器是不是设置为‘直接内核启动’
您可以通过打开 virt-manager、查看虚拟机的属性并选择“启动选项”配置面板来检查这一点。如果设置了“内核路径”设置(位于“直接内核启动”下拉菜单下),则操作系统将由 KVM 加载,您不需要引导加载程序。
如果这是空,那么您将需要一个引导加载程序来从虚拟磁盘加载内核。
您还可以使用 virsh 检查此参数:
virsh dumpxml <virtual-machine>
这将转储机器的 KVM 配置数据。查找标签<os>
。如果有标签<kernel>
,如下所示:
<操作系统> <type arch='x86_64' machine='pc-0.11'>hvm</type> <内核>/var/lib/libvirt/images/vmlinuz-2.6.32-29-服务器</内核> <initrd>/var/lib/libvirt/images/initrd.img-2.6.32-29-server</initrd> <cmdline>root=/dev/vda console=ttyS0 ro debug nosplash</cmdline> <boot dev='hd'/> </os>
然后内核就会用 KVM 加载,不需要 bootloader。如果没有<kernel>
标签,则需要 bootloader。
答案2
KVM 托管其他操作系统的完整安装,因此您必须拥有系统上的“常用内容”,其中包括引导加载程序,当您的 KVM 尝试启动该 VM 时,它将在 KVM 开始运行映像/分区时启动。
对于您来说,我会准确测试一切发生的情况,因为如果您设法破坏某些东西,无论阅读多少内容都无法立即修复您的生产服务器。
备份正在运行的虚拟机文件也是一个好主意。