如何使用qemu在终端上运行非gui操作系统?

Met*_*est 20 solaris qemu

我想在我的部门的高性能计算机(使用8核处理器)上运行一些程序.现在我使用终端ssh使用该机器.机器上安装了Red Hat linux.但我的程序需要在Solaris上运行.我使用Nexenta Solaris for x86.

可以使用qemu通过终端在该机器上运行Nexenta Solaris.我需要说服管理员可以,否则他不会在该机器上安装qemu,因此允许我通过虚拟机使用Solaris.另请注意,我不使用Nexenta Solaris的GUI,只使用命令行.在我的机器中,我使用VMware来运行它.

osg*_*sgx 32

您可以自己编译qemu并将其安装到您的主目录中.将没有内核模式qemu加速器,但qemu将工作,速度将相当高.

Qemu有两个非gui启动选项:http://wiki.qemu.org/download/qemu-doc.html

显示选项:

-nographic - 通常,QEMU使用SDL显示VGA输出.使用此选项,您可以完全禁用图形输出,以便QEMU是一个简单的命令行应用程序.模拟的串行端口在控制台上重定向.因此,您仍然可以使用QEMU通过串行控制台调试Linux内核.

-curses - 通常,QEMU使用SDL显示VGA输出.使用此选项,QEMU可以在文本模式下使用curses/ncurses接口显示VGA输出.图形模式下不显示任何内容.

它还可以通过VNC协议将图形输出发送到另一台机器(-vnc选项)

  • 诅咒是美丽的:http://blog.scaramanga.co.uk/wp-content/uploads/2010/06/winxp-textmode.png (25认同)
  • 是的,“-curses”可以通过 ssh 运行,而 -ngraphic 则挂起。 (4认同)

Cir*_*四事件 8

-append 'console=ttyS0'

除了-nographicosgx提到的Linux内核也需要该选项,如:

qemu-system-x86_64 -append 'console=ttyS0' \
                   -initrd rootfs.cpio.gz \
                   -kernel bzImage \
                   -nographic \
                   -serial mon:stdio \
Run Code Online (Sandbox Code Playgroud)

现在您可以执行以下操作:

console=ttyS0告诉内核使用串口而不是显示器.串口在主机和客户机之间发送字符,而不是显示器上的像素,然后QEMU可以在终端上显示这些字符.

-serial mon:stdio在这个最小的命令中是可选的,但通常是一个好主意.例如,如果您-monitor telnet以后想要添加一个方便的话,它会改善行为:

这可以使用Buildroot轻松测试qemu_x86_64_defconfig.我创建了这是一个高度自包含和自动化的设置,允许您轻松地尝试这一点

在Ubuntu 18.04,QEMU 2.11.1上测试.

  • 什么是“-kernel bzImage”? (2认同)

小智 5

我为此苦了一段时间,终于想出了如何让它为我工作的方法:

您需要安装SGABIOS。有趣的是,此BIOS不包含在debian qemu软件包中,因此您需要安装它(以超级用户身份):

apt install sgabios  
Run Code Online (Sandbox Code Playgroud)

然后,当您运行qemu时,请使用-device选项告诉虚拟机使用sga输出

qemu-system-i386 -nographic -device sga discimage.bin
Run Code Online (Sandbox Code Playgroud)

瞧!通过stdio发送的监视器和文本输出都可以在ssh上完美运行。您可以使用Ca c访问qemu监视器。

欢呼声,本