我可以virt-install
使用以下选项将输入/输出重定向到控制台--console
:
virt-install \
--name centos \
--ram 1024 \
--os-type linux \
--os-variant centos7.0 \
--graphics none \
--location ~/CentOS-7-x86_64-Minimal-1908.iso \
--extra-args 'console=ttyS0,115200n8 serial' \
--console pty,target.type=serial
我想从脚本发送控制台输入,因此我尝试了命名管道。在普通 kvm 中,可以使用以下选项:
-serial pipe:/tmp/centos
/tmp/centos
命名管道在哪里:
mkfifo /tmp/centos.in /tmp/centos.out
在virt-install
我尝试--console
用以下几种组合替换:
--console pty,target.type=serial,source.path=/tmp/centos
但没有任何可用:
cat /tmp/centos.out
并且没有任何内容发送到虚拟机:
echo cmd > /tmp/centos.in
如何通过管道将命令从主机脚本传输到客户机?
答案1
Libvirt 具有用于“管道”选项的本机 XML:https://libvirt.org/formatdomain.html#elementsCharPipe
使用 virt-install 应该是:--console pipe,source.path=/path/to/my/pipe
- 编辑以删除不正确的语法