我在使用 KVM 在 CentOS 7 上进行虚拟化时遇到了一些问题。每当我尝试创建虚拟机时,它都会告诉我通过控制台连接到机器并完成安装。每当我连接时,我都无法输入任何内容,我只能退出控制台。
我创造机器的方式:
virt-install --name vm1 --network bridge:br0 --ram=1024 --vcpus=1 --disk path=/var/lib/libvirt/imagesw.img,size=10 --graphics none --location=/mnt/iso
机器正在运转,至少是这样的
virsh 列表 --all
告诉我。我如何完成安装并从服务器内部开始使用客户操作系统?我没有 GUI 来访问它,我只能使用终端。
先感谢您!
BR: 伯特
答案1
您所描述的要么是未配置串行控制台设置的启动系统,要么是未添加串行设备的 VM。在大多数情况下,您必须修改安装程序启动选项(具体来说,是内核参数)以包含类似以下内容的内容console=tty0 console=ttyS0,115200
。另外,请确保您在 virt-install 行中包含了串行设备,因为我没有看到添加任何设备。我将在后面的回答中详细说明这一点。
您可以使用更适合整个任务的工具,并使用virt-builder
。这将在最小安装中创建具有相当通用的可接受默认值的虚拟机磁盘映像。它是一款高度可定制的工具virt-install
。它的手册页写得非常好。
virt-builder
将从几个专用存储库中获取已签名的虚拟机映像,并使用这些内容构建磁盘映像文件(磁盘映像格式取决于所选的选项)。例如,以下命令将创建一个 qcow2 格式的 CentOS 7 磁盘映像,稀疏地分配到 20GiB。它还会将我的公共 ssh 密钥注入 root 的主目录,并将主机名设置为fubar
。仔细阅读手册页,因为选项远不止这些。
# virt-builder centos-7 --arch amd64 -o /var/lib/libvirt/images/centos-7.qcow2 --format qcow2 --size 20G --hostname fubar --ssh-inject root:file:~/.ssh/id_rsa.pub
此磁盘映像已准备好连接到虚拟机,可以使用 来完成virt-install
,几乎与您在问题中所做的方式相同。有一个很大的区别,我们将指定--import
旁边--disk
,以便我们指向现有映像而不是创建新映像。我们也不会在 中指定“大小” --disk
,因为--import
排除了该选项。另请注意,我明确添加了一个--serial
选项,因为我们需要确保该设备存在才能打开控制台。
# virt-install --name vm1 --network bridge=br0 --ram=1024 --vcpus=1 --disk path=/var/lib/libvirt/images/vm1.qcow2 --import --nographics --serial=pty --os-type=linux --os-variant rhel7
这将启动“安装程序”,在本例中只是启动新配置的虚拟机并连接到其串行控制台。