命令行上的QEMU-KVM Linux虚拟化

我最近发现qemu-kvm有一个非常有前途的-curses选项,它不会启动X窗口,而是显示来自guest虚拟机的ncurses输出,适合从命令行管理 Linux guest虚拟机(或者更令人满意的是,在屏幕会话,甚至是ssh).

所以我试了一下,发现我的Arch Linux客户进入“图形模式”,使这个功能变得毫无用处.从我能够确定的,问题是客户内核初始化帧缓冲区以允许高于80×60的字符分辨率(和漂亮的图形).所以我继续寻找阻止客户内核启动帧缓冲的方法.我已经尝试了各种内核参数,nomodeset,fb = false,vga = 0x0FF,vga = ask(以及随后选择VGA而不是VESA模式),但无济于事:每次qemu-kvm -curses报告都在guest虚拟机上的“图形模式”(在初始启动菜单之后),我无法从主机上的命令行终端与guest虚拟机进行交互.

有没有简单的方法可以将guest虚拟机内核保持在它启动的相同模式(没有帧缓冲区)而不更改内核构建参数?如果没有,我应该更改哪些内核构建选项来编译没有帧缓冲支持的内核?是否有更好的方法从主机上的终端以纯文本模式登录VM(例如,适合在主机上的屏幕会话中运行),而无需在guest虚拟机上运行sshd?

解决方法

因此需要禁用的底层模块是fbcon,但Arch的内核不会将其编译为模块,因此将其列入黑名单.可能仍然可以识别和禁用fbcon启动的特定驱动程序但是lsmod没有列出这样的驱动程序,因此qemu-kvm的驱动程序被编译成Arch.要禁用fbcon本身,必须使用自己奇怪的引导选项语法:
fbcon=map:99

其中99只是一些任意大的数字,大于系统上帧缓冲设备的数量(通常为1-2).

有关详细信息,请参阅fbcon.txt.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...