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

时间:2011-07-15 16:56:44

标签: solaris qemu

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

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

4 个答案:

答案 0 :(得分:29)

您可以自己编译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 选项)

答案 1 :(得分:7)

<强> -append 'console=ttyS0'

除了osgx提到的-nographic之外,Linux内核也需要该选项,如下所示:

qemu-system-x86_64 -append 'console=ttyS0' \
                   -initrd rootfs.cpio.gz \
                   -kernel bzImage \
                   -nographic \
                   -serial mon:stdio \

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

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

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

使用Buildroot qemu_x86_64_defconfig可以轻松测试。我创建了this is a highly self-contained and automated setup,可让您轻松尝试

在Ubuntu 18.04上测试,QEMU 2.11.1。

答案 2 :(得分:3)

我已经挣扎了一段时间,最后想出了如何让它为我工作:

您需要安装SGABIOS。有趣的是这个BIOS不包含在debian qemu包中,所以你需要安装它(作为超级用户):

apt install sgabios  

然后当你运行qemu时,使用-device选项告诉virtural机器使用sga输出

qemu-system-i386 -nographic -device sga discimage.bin

瞧!通过stdio发送的监视器和文本输出完全适用于ssh。您可以使用C-a c。

访问qemu监视器 欢呼,本

答案 3 :(得分:0)

os终端无法运行qemu。因此,您应该在Windows PC上使用腻子或使用Linux机器终端。