bad*_*hop 33 redhat command-line-interface console guest kvm-virtualization
我正在尝试仅使用命令行(管理程序和来宾)在 KVM(RHEL 6)上安装完全虚拟化的来宾(Fedora 14 x86_64)。它没有错误,也没有明显的结果。我想知道如何进行纯文本安装。
所以,这就是我所做的:
# virt-install \
--name=FE --ram=756 --vcpus=1 \
--file=/var/lib/libvirt/images/FE.img --network bridge:br0 \
--nographics --os-type=linux \
--extra-args='console=tty0' -v \
--cdrom=/media/usb/Fedora-14-x86_64-Live-Desktop.iso
Starting install...
Creating domain... | 0 B 00:00
Connected to domain FE
Escape character is ^]
ÿ
Run Code Online (Sandbox Code Playgroud)
怎么办?正如我在谷歌搜索几天后所了解的那样,我应该从文本安装中看到来宾的输出,但没有任何反应。virt-viewer 无法连接到它,建议我通过添加 --help(我做了)来探索所有选项。如果我重新连接 virsh,我会看到:
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
[root@v ~]
# virsh console FEConnected to domain FE
Escape character is ^]
Run Code Online (Sandbox Code Playgroud)
这表明VM正在运行
# virsh list
Id Name State
----------------------------------
8 FE running
Run Code Online (Sandbox Code Playgroud)
Qemu 日志:
LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin /usr/libexec/qemu-kvm -S -M rhel6.0.0 -enable-kvm -m 756 -smp 1,sockets=1,cores=1,threads=1 -name FE -uuid 6989d008-7c89-424c-d2d3-f41235c57a18 -nographic -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/FE.monitor,server,nowait -mon chardev=monitor,mode=control -rtc base=utc -no-reboot -boot d -drive file=/var/lib/libvirt/images/FE.img,if=none,id=drive-ide0-0-0,format=raw,cache=none -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive file=/media/usb/Fedora-14-x86_64-Live-Desktop.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=20,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:0a:65:8d,bus=pci.0,addr=0x2 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
char device redirected to /dev/pts/1
Run Code Online (Sandbox Code Playgroud)
/etc/libvirt/qemu/FE.xml 的输出
# cat /etc/libvirt/qemu/FE.xml
<domain type='kvm'>
<name>FE</name>
<uuid>6989d008-7c89-424c-d2d3-f41235c57a18</uuid>
<memory>774144</memory>
<currentMemory>774144</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.0.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/var/lib/libvirt/images/FE.img'/>
<target dev='hda' bus='ide'/>
<address type='drive' controller='0' bus='0' unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' unit='0'/>
</disk>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:0a:65:8d'/>
<source bridge='br0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target port='0'/>
</console>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</memballoon>
</devices>
</domain>
Run Code Online (Sandbox Code Playgroud)
我显然错过了许多其他人没有的东西,但它是什么?提前谢谢!
小智 12
我--extra-args='console=ttyS0'上次从互联网上复制了一个地方,它有效!
请参阅:http : //anaconda-installer.readthedocs.io/en/latest/boot-options.html
--nographics已使用,并且除了 tty0 控制台之外,您在来宾中没有设置控制台。如果你想要一个图形控制台,尤其是远程可用,你需要启用 vga 和 vnc,或者 qxl 和 spice。这是一个例子:http : //www.linux-kvm.com/content/tip-how-run-headless-guest-machine-using-vnc-kvm
http://www.linux-kvm.com/content/running-kvm-nographics-no-console-output或http://ubuntuforums.org/showpost.php?p=9610421&postcount=7也是一个解决方案。
我在尝试执行 CentOS 的纯文本安装时遇到了类似的问题。这一切都归结为添加用于指定串行输出控制台的内核参数,console=ttyS0以便您可以在使用--graphics none或--nographics使用时连接到它。从virt-install的手册:
--图形 无
不会为来宾分配图形控制台。完全虚拟化的客户机(Xen FV 或 QEmu/KVM)需要在客户机的第一个串行端口上配置一个文本控制台(这可以通过 --extra-args 选项完成)。Xen PV 会自动设置。命令“virsh console NAME”可用于连接到串行设备。
我设法通过两种方式解决了它:
--cdrom选项--location选项--extra-args1.修改图片
为了修改iso安装盘上的内核参数:
isolinux/isolinux.cfg图像上的文件,打开它,找到它的第一行initrd=并将console=ttyS0其附加到它以及具有上述参数的所有其他行。virt-install像往常一样使用修改后的图像,例如:
$ sudo virt-install --name centos-vm --ram 1024 --disk path=/home/user/domains/centos-vm --cdrom /home/user/images/centos-modified.iso --os-type linux --nographics --accelerate
Run Code Online (Sandbox Code Playgroud)完毕。
2. 使用 NFS 共享
挂载镜像:
$ sudo mount -o loop,unhide -t iso9660 -r /home/user/images/CentOS.iso /home/user/mnt/cdrom
Run Code Online (Sandbox Code Playgroud)如果未运行,请启动 NFS 服务: service nfs start
添加以下行/etc/exports以使其对客户端可用:
/home/user/mnt/cdrom *(ro,insecure,all_squash)
Run Code Online (Sandbox Code Playgroud)使用以下内容刷新系统的导出表:
$ exportfs -r
Run Code Online (Sandbox Code Playgroud)使用共享并virt-install确保包含--extra-args,例如:
$ sudo virt-install --name centos-vm --ram 1024 --disk path=/home/user/domains/centos-vm --location /home/user/mnt/cdrom --os-type linux --nographics --accelerate --extra-args="console=ttyS0"
Run Code Online (Sandbox Code Playgroud)在 CentOS 安装过程中,您会收到询问安装文件位置的提示。您必须输入机器的地址和共享的完整路径。
完毕。