听说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_p_w_picpaths/xp.img,hda,w’,’file:/root/xen_p_w_picpaths/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进入或出来,关掉窗口就关掉了虚拟机。

转载于:https://blog.51cto.com/nxlhero/1039927

ubuntu 12.04 源码安装 Xen 4.2相关推荐

  1. ubuntu 16.04 源码安装samba并且配置

    好久没发博客了,毕业季整天玩哈哈哈 最近有需求要在ubuntu 16.04 上搭一个samba服务器,要求用源码 环境: VMware workstation上的ubuntu 16.04   ,   ...

  2. Ubuntu 16.04源码编译安装Apache 2.4.25教程

    这篇文章主要为大家详细介绍了Ubuntu 16.04源码编译安装Apache 2.4.25,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文为大家介绍了Ubuntu 16.04源码编译安装Apa ...

  3. Ubuntu 16.04 源码编译安装 uhd gnuradio

    Ubuntu 16.04 源码编译安装 uhd & gnuradio 环境介绍 UHD安装 1 安装依赖 2 编译 3 测试安装结果 4 配置 USB gnuradio安装 1 安装依赖 2 ...

  4. OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装

    OpenCPN + Ubuntu 18.04 源码编译 文章目录 一.参考资料 二.源码编译流程 三.利用 IDE 编译 四.利用 IDE 调试 四.测试界面开发工具 一.参考资料 OpenCPN - ...

  5. 在 CentOS 7.0 上源码安装 Xen 4.5

    上周 CentOS 7.0 正式版发布了,Xen4CentOS 项目还没来得及更新支持 CentOS 7.0,所以目前要在 CentOS 7.0 上玩 Xen 的唯一办法只有编译源代码了.貌似这次 C ...

  6. Ubuntu 12.04 x64 下安装 GStreamer+FFmpeg+Opencv

    Ubuntu 12.04 x64 下安装 GStreamer+FFmpeg+Opencv 近期,因为安装这三个开发软件,搞编译环境,上网找方法,足足耗费了我一个多星期的时间,现在将经验记录一下,在虚拟 ...

  7. ubuntu16.04源码安装opencv3.4.0

    ubuntu16.04源码安装opencv3.4.0 opencv下载地址:https://opencv.org/releases/page/3/ 1.下载安装包 2.安装依赖 sudo apt-ge ...

  8. ubuntu16.04源码安装python3.7

    ubuntu16.04源码安装Python3.7 python源码安装包下载:https://www.python.org/downloads/release/python-371/ 在安装的过程中, ...

  9. Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译

    Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译 转载于:https://blog.csdn.net/phdsky/article/details/782 ...

  10. linux搭建erp教程,Ubuntu 12.04+OpenERP7.0安装笔记

    不经意的一次看到OpenERP这个开源ERP,就被其丰富的功能,简洁的画面,熟悉的语言所吸引.迫不及待的多方查询资料,自己架设一个测试环境来进行了解.以下为Ubuntu 12.04下测试安装时候的步骤 ...

最新文章

  1. Win10下VisualStudio2019安装和Helloworld测试
  2. 图形颜色填充_Processing-2-基本图形绘制
  3. Java黑皮书课后题第7章:*7.30(模式识别:四个连续相等的数)编写下面的方法,测试某数组是否有四个连续相同值的数。编写测试程序,提示用户输入一个整数列表,调用方法看是否有4个连续且相等的数
  4. 机器学习——决策树学习
  5. 关于nginx,你不可不知的几大特色功能
  6. android用来显示界面的组件,Android 自学之基本界面组件(上)
  7. 喜欢赌球的你,可能被AI盯上了
  8. python迭代_Python迭代
  9. xcode免证书真机调试iphone(ipad)程序的具体方法(总结贴)转贴)
  10. xsmax是大黑边?_苹果iPhone11和xsmax,8p x xr xs怎么选?干货分享!
  11. 为什么说数据不动代码动?移动计算比移动数据更划算?
  12. 移动硬盘写保护,无法格式化的解决办法。
  13. 51单片机 独立按键k1控制数码管移位 k2控制数值加
  14. 程序员键盘使用进阶技巧
  15. HBASE学习使用经验
  16. 【冬察冬见】FFmpeg系列学习笔记
  17. 6:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转
  18. hexo部署到云服务器
  19. 明确生产计划,做好生产进度跟踪
  20. 弘辽科技:淘宝直通车显示排查下架是什么?还能推广吗?

热门文章

  1. 129 MySQL数据类型(重要)
  2. 传入一个月份获取该月的统计信息
  3. nginx 502 .sock failed (11: Resource temporarily unavailable) while connecting to upstream
  4. Weblogic常见故障常:JDBC Connection Pools
  5. php如何以post形式发送xm并返回xmll数据
  6. wordpress and theme
  7. 用ASP为blog程序编写Trackback功能 - 小李刀刀(转载)
  8. 基于ROS的运动识别
  9. linux下批量查找UTF-8的BOM文件,并去除BOM
  10. ABP中module-zero快速集成微信用户认证