ubuntu 12.04 源码安装 Xen 4.2

简介:

听说Xen 4.2支持嵌套虚拟化了(nested virtualization,在虚拟机里可以使用vmx或者svm),赶紧下来试试。

目标系统:ubuntu 12.04 i386 + i5 2510E + QM67

CPU和主板都支持vt-d,因此除了实验嵌套虚拟化,还可以实验设备passthrough。

xen主要由两部分组成,一个是hypervisor,就是编译出来的xen.gz文件,这个是开机启动时加载的。

另一部分是工具。

一般编译Xen只需要两部,make xen tools && make install-xen install tools

还有一部分可选,stubdom,我们在这也编译,make stubdom && make install-sbudom

准备工作

sudo apt-get install bcc python-dev gettext iasl uuid-dev libncurses5-dev libglib2.0-dev  libyajl-dev texinfo git

sudo apt-get install lib-sdl1.2-dev (安装sdl,这样就可以以sdl方式查看虚拟机,不会有两个鼠标)

编译Xen

因为我要编译XSM模块,也就是Xen Security Module,所以先要修改一下Config.mk

修改Config.mk,将XSM_ENABLE和FLASK_ENABLE改为y

make xen

出现下面的错误

这时出现了一个关于类型的警告,是与XSM有关的代码,直接修改一下代码就行了

 

xen/xsm/flask/ss/policydb.c

1779行

 

    if ( len != strlen(POLICYDB_STRING) )

    {

        printk(KERN_ERR "Flask:  policydb string length %d does not "

               "match expected length %lu\n",

               len, strlen(POLICYDB_STRING));

        goto bad;

    }

改为(unsigned long) (strlen(POLICYDB_STRING)

这样就可以编译通过了,编译完就可以安装Xen,make install-xen

编译tools

这一步的依赖关系最多,不过前边都已经把依赖库安好了,直接make tools就行了,注意这一步会使用git下来一部分代码,因此需要网络连接。

安装tools的时候要格外注意,make install-tools PYTHON_PREFIX_ARG=

不然在启动xend的时候会遇到下面的问题:

 

$ sudo /etc/init.d/xend start

Traceback (most recent call last):

  File "/usr/sbin/xend", line 36, in 

    from xen.xend.server import SrvDaemon

ImportError: No module named xen.xend.server

Traceback (most recent call last):

  File "/usr/sbin/xend", line 36, in 

    from xen.xend.server import SrvDaemon

ImportError: No module named xen.xend.server

这是Python的路径问题,因为 xend 会默认从 /usr/local/lib/python2.6/dist-packages/ 找 script 和导入库,但是这时候 /usr/local/lib/python2.6/dist-packages/ 下面什么东西都没有。

所以要改变 install-tools 的默认安装路径到 /usr/local/lib/python2.6/dist-packages/ 下,PYTHON_PREFIX_ARG 不带任何参数就可以了

编译stubdom

这一步没遇到问题,直接make stubdom && make install-stubdom即可,需要网络连接。

启动Xen Dom0

sudo update-grub2,更新grub

开机之后,到了scrubbling free ram...这个地方就重启,找了很多地方也没找到原因,最后升级了个内核解决了问题。

安装虚拟机

不使用xm和xend,使用新的xl工具,安装一个windows xp虚拟机

  • 创建一个虚拟硬盘,直接使用dd

dd if=/dev/zero of=xp.img bs=1M count=10240

  • 创建虚拟机配置文件xp.cfg,如下:

 

name = “xp” #名字

memory = 512  #内存

disk =[‘file:/root/xen_images/xp.img,hda,w’,’file:/root/xen_images/xp.iso,hdc:cdrom,r’]

#xp.img是磁盘,xp.iso是xp安装文件,作为cdrom使用

boot = ‘da’  # a表示harddisk,d表示cdrom,此处为启动顺序

vnc = 0

sdl = 1 #这样使用xl创建虚拟机时会自动打开虚拟机界面

 

  • 启动虚拟机

sudo xl create xp.cfg

自动出现界面

使用sdl方式时,不会出现两个鼠标,使用Alt+Ctrl进入或出来,关掉窗口就关掉了虚拟机。


本文转自nxlhero 51CTO博客,原文链接:http://blog.51cto.com/nxlhero/1039927,如需转载请自行联系原作者

相关文章
|
Ubuntu
ubuntu源码安装flex和bison
ubuntu源码安装flex和bison
718 0
|
Ubuntu 应用服务中间件 nginx
|
关系型数据库 PostgreSQL 数据库
|
16天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
98 25
|
4天前
|
Ubuntu TensorFlow 算法框架/工具
如何在Ubuntu上安装TensorFlow 24.04
如何在Ubuntu上安装TensorFlow 24.04
27 1
|
27天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
330 15
|
2月前
|
弹性计算 Ubuntu Java
OS-Copilot-ubuntu镜像版本的具体测试使用(安装方式有单独注明)
作为一名个人开发者,我主要负责云资源的运维和管理。在使用OS Copilot的过程中,我遇到了一些配置问题,特别是在ECS实例中设置AccessKey时,但最终成功解决了。通过使用OS Copilot的-t/-f/管道功能,我大大提升了效率,减少了命令编写的工作量,特别是在搭建Java运行环境时效果显著。此外,| 功能帮助我快速理解文档,整体体验非常流畅,推荐给其他开发者使用。
52 6
|
3月前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
250 13
|
3月前
|
监控 关系型数据库 MySQL
Ubuntu24.04安装Librenms
此指南介绍了在Linux系统上安装和配置LibreNMS网络监控系统的步骤。主要内容包括:安装所需软件包、创建用户、克隆LibreNMS仓库、设置文件权限、安装PHP依赖、配置时区、设置MariaDB数据库、调整PHP-FPM与Nginx配置、配置SNMP及防火墙、启用命令补全、设置Cron任务和日志配置,最后通过网页完成安装。整个过程确保LibreNMS能稳定运行并提供有效的网络监控功能。