小论文的实验需要去修改xen的源代码。因此,需要搭建xen的环境,由于需要修改源代码,因此在构建环境的时候必须从源码安装开始。电脑很早之前装了个Fedora21,平时都是师兄在用,发现系统已经被更新成了Fedora25,参考网上的链接,今天总算安装成功了。其实,安装过程中很多步骤以及命令我都是一知半解。下面,主要介绍安装过程,而不涉及每一步是什么意思。

主要参考链接:
Fedora20上Xen的安装与部署
在CentOS7.0上源码安装Xen4.5

准备工作
更新系统,并且安装编译Xen所需要的一些工具以及依赖等。
我也不清楚,他们是怎么知道需要这些工具以及依赖包的,如果按照README一个一个搜索的话特别麻烦。

# yum update# yum groupinstall "Development Tools"
# yum install -y gcc gcc-c++ git patch texinfo# yum install -y python-devel acpica-tools libuuid-devel ncurses-devel glib2 glib2-devel libaio-devel openssl-devel yajl-devel glibc-devel glibc-devel.i686 pixman-devel# wget http://mirror.centos.org/centos/6/os/x86_64/Packages/dev86-0.16.17-15.1.el6.x86_64.rpm
# rpm -ivh dev86-0.16.17-15.1.el6.x86_64.rpm

关闭SELinux
修改/etc/selinux/config文件,将SELINUX改为disabled,如下第7行。更改完以后,重启电脑。

  # This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.####   SELINUX=enforcingSELINUX=disabled# SELINUXTYPE= can take one of these three values:#     targeted - Targeted processes are protected,#     minimum - Modification of targeted policy. Only selected processes are#     mls - Multi Level Security protection.SELINUXTYPE=targeted

下载、安装Xen
下载地址:Xen源码下载链接
我下载的是目前最新的版本“Supported Xen Project 4.8 Series ”,网上搜索了解压命令,解压后进入目录。然后安装xen

#make clean
#./configure
#make dist
#make install

安装Domain0内核
Domain0内核的版本最好与当前正在使用的Linux的内核版本保持一致。如下所示,我当前的内核版本是4.9.10

#uname -a
Linux localhost.localdomain 4.9.10-200.fc25.x86_64 #1 SMP Wed Feb 15 23:28:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

去内核的官网下载对应版本的内核,进行配置,编译,安装。

#wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.10.tar.xz
#tar xf linux-4.9.10.tar.xz
#cd linux-4.9.10
#make menuconfig

make menuconfig命令执行后,会出来内核配置的界面。但是,我不太清楚,需要配置什么。我看了一下虚拟化支持那里差不多都选上了就按照默认设置退出了。这时会在对应的目录下自动生成一个.config文件。没有自动生成说明,没弄好,我记得就是进去,然后Exit就会提示是否生成.config文件。接着,修改config文件,将其中的几个配置保存如下。(找到对应的位置进行修改)

CONFIG_X86_IO_APIC=y
CONFIG_ACPI=y
CONFIG_ACPI_PROCFS=y (optional)
CONFIG_XEN_DOM0=y
CONFIG_PCI_XEN=y
CONFIG_XEN_DEV_EVTCHN=y
CONFIG_XENFS=y
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_BACKEND=y
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y

接着,就可以编译,安装内核。我第一次出错了,第二次成功了。第一次应该是配置文件没弄好。

#make
#make modules
#make modules_install
#make install

配置Grub

# grep ^menuentry /boot/grub2/grub.cfg | cut -d "'" -f2
Windows 10 (loader) (on /dev/sda1)
Fedora (4.9.10-200.fc25.x86_64) 25 (Workstation Edition)
Fedora, with Xen hypervisor#grub2-set-default 'Fedora, with Xen hypervisor'
# grub2-editenv list
saved_entry=Fedora, with Xen hypervisor

修改错误
重启以后尝试命令xl info发现有错。
参考在CentOS7.0上源码安装Xen4.5可能出现的错误和解决办法
进入/usr/lib/目录将/usr/local/lib/目录下所有的绿色文件做了链接,链接到/usr/lib/目录下。最后别忘了执行ldconfig。

[root@localhost lib]# cd /usr/lib/
[root@localhost lib]# ln -s /usr/local/lib/libxlutil.so.4.8.0 libxlutil.so.4.8
[root@localhost lib]# ln -s /usr/local/lib/libxlutil.so.4.8.0 libxlutil.so
[root@localhost lib]# ln -s /usr/local/lib/libxenlight.so.4.8.0 libxenlight.so.4.8
[root@localhost lib]# ln -s /usr/local/lib/libxenlight.so.4.8.0 libxenlight.so
[root@localhost lib]# ln -s /usr/local/lib/libxenctrl.so.4.8.0 libxenctrl.so.4.8
[root@localhost lib]# ln -s /usr/local/lib/libxenctrl.so.4.8.0 libxenctrl.so
[root@localhost lib]# ln -s /usr/local/lib/libxenguest.so.4.8.0 libxenguest.so.4.8.0
[root@localhost lib]# ln -s /usr/local/lib/libxenguest.so.4.8.0 libxenguest.so.4.8
[root@localhost lib]# ln -s /usr/local/lib/libxenguest.so.4.8.0 libxenguest.so
[root@localhost lib]# ln -s /usr/local/lib/libxenstat.so.0.0 libxenstat.so.0
[root@localhost lib]# ln -s /usr/local/lib/libxenstat.so.0.0 libxenstat.so
[root@localhost lib]# ln -s /usr/local/lib/libxenstore.so.3.0.3 libxenstore.so.3.0
[root@localhost lib]# ln -s /usr/local/lib/libxenstore.so.3.0.3 libxenstore.so
[root@localhost lib]# ln -s /usr/local/lib/libxenvchan.so.4.8.0 libxenvchan.so.4.8
[root@localhost lib]# ln -s /usr/local/lib/libxenvchan.so.4.8.0 libxenvchan.so
[root@localhost lib]# ln -s /usr/local/lib/libblktapctl.so.1.0.0 libblktapctl.so.1.0
[root@localhost lib]# ln -s /usr/local/lib/libblktapctl.so.1.0.0 libblktapctl.so
[root@localhost lib]# ln -s /usr/local/lib/libfsimage.so.1.0.0 libfsimage.so.1.0
[root@localhost lib]# ln -s /usr/local/lib/libfsimage.so.1.0.0 libfsimage.so
[root@localhost lib]# ln -s /usr/local/lib/libvhd.so.1.0.0 libvhd.so.1.0
[root@localhost lib]# ln -s /usr/local/lib/libvhd.so.1.0.0 libvhd.so
[root@localhost lib]# ln -s /usr/local/lib/libxencall.so.1.0 libxencall.so.1.0
[root@localhost lib]# ln -s /usr/local/lib/libxencall.so.1.0 libxencall.so
[root@localhost lib]# ln -s /usr/local/lib/libxenevtchn.so.1.0 libxenevtchn.so.1.0
[root@localhost lib]# ln -s /usr/local/lib/libxenevtchn.so.1.0 libxenevtchn.so
[root@localhost lib]# ln -s /usr/local/lib/libxenforeignmemory.so.1.0 libxenforeignmemory.so.1.0
[root@localhost lib]# ln -s /usr/local/lib/libxenforeignmemory.so.1.0 libxenforeignmemory.so
[root@localhost lib]# ln -s /usr/local/lib/libxengnttab.so.1.1 libxengnttab.so.1
[root@localhost lib]# ln -s /usr/local/lib/libxengnttab.so.1.1 libxengnttab.so
[root@localhost lib]# ln -s /usr/local/lib/libxentoollog.so.1.0 libxentoollog.so.1
[root@localhost lib]# ln -s /usr/local/lib/libxentoollog.so.1.0 libxentoollog.so[root@localhost lib]# ldconfig

再次运行xl info成功,如下:

[root@localhost lib]# xl info
host                   : localhost.localdomain
release                : 4.9.10-200.fc25.x86_64
version                : #1 SMP Wed Feb 15 23:28:59 UTC 2017
machine                : x86_64
nr_cpus                : 4
max_cpu_id             : 3
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 1
cpu_mhz                : 3192
hw_caps                : b7ebfbff:77bae3ff:28100800:00000001:00000001:00000281:00000000:00000100
virt_caps              : hvm hvm_directio
total_memory           : 8122
free_memory            : 128
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 8
xen_extra              : .0
xen_version            : 4.8.0
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          :
xen_commandline        : placeholder
cc_compiler            : gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
cc_compile_by          : bearox
cc_compile_domain      : localdomain
cc_compile_date        : Wed Feb 22 10:07:48 CST 2017
build_id               : 308d8cce77adca4d502c71a2dc66202a0b6cff9e
xend_config_format     : 4

最后,启动xencommons,旧版本的xend已经被xencommons取代了。

root@localhost lib]# /etc/init.d/xencommons start
Starting /usr/local/sbin/oxenstored...Setting domain 0 name, domid and JSON config...
Done setting up Dom0
Starting xenconsoled...
Starting QEMU as disk backend for dom0
[root@localhost lib]# xl list
Name                                        ID   Mem VCPUs  State   Time(s)
Domain-0                                     0  7881     4     r-----     966.2

Xen 从 4.1 版本开始引入了新版工具集 xl/libxl,并在后续的版本中逐步替代旧的 xm/xend,在 4.5 版本中已经完全删除了 xm/xend.

Fedora25下源码安装Xen4.8相关推荐

  1. linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  2. Linux下源码安装CodeBlocks

    Linux下源码安装CodeBlocks qianghaohao(CodingNutter) 一. 安装平台说明: CentOs6.4-i686  gcc-4.4.7 二. 下载最新源码: http: ...

  3. rhel 7.2 安装mysql_在rhel7.2下源码安装mysql-5.6.35

    如何在一台新机rhel7.2下源码安装mysql-5.6.35 一.前期准备工作 1.首先安装依赖包,避免在安装过程中出现问题 yum -y install gcc gcc-c++ cmake ncu ...

  4. centos7源码安装mysql报错_CentOS7 下源码安装MySQL数据库 8.0.11

    本文主要向大家介绍了CentOS7 下源码安装MySQL数据库 8.0.11,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. CentOS7 下源码安装MySQL 8.0.11 系 ...

  5. unbuntu cmake安装mysql_Ubuntu下源码安装MySQL-5.5.25a

    Ubuntu下源码安装MySQL-5.5.25a,今天在Ubuntu Linux下本来玩玩Android的源码看下的.那小的怎看根目录的空间已然不多.所以想把 今天在Ubuntu Linux下本来玩玩 ...

  6. linux 自动安装mysql数据库_linux系统下源码安装mysql5.6数据库

    linux系统下源码安装mysql5.6数据库 下载mysql数据库相关软件包(百度云盘:http://pan.baidu.com/s/1bnL31c7) 从mysql 5.5版本开始,mysql源码 ...

  7. 阿里云服务器——centos7下源码安装tomcat9

    阿里云服务器--centos7下源码安装tomcat9 (第一次写文章,俺会努力的) 首先进入src文件夹: cd /usr/local/src 使用wget命令下载tomcat : wget htt ...

  8. ubuntu16.04下源码安装arachni扫描器

    前段时候看一个对各开源扫描器的评测,arachni在综合评价上胜出.最近正好想研究一下arachni的源码,那就在ubuntu下先把玩一下.其实之前在kali和ubuntu下源码安装都失败了,这次算是 ...

  9. 【转载】64位Linux下源码安装apache2

    64位下源码安装apache2,中间过程遇到了好几个错误,总结起来都是跟64位机器下,lib库格式不匹配的问题,如: /usr/lib/libexpat.so: could not read symb ...

最新文章

  1. Mac 上使用 Clion 阅读C++源码的一些操作
  2. ffmpeg之常用命令的学习
  3. python 杂记(二)
  4. [Android Studio] Android Studio如何查看branch列表及切换branch(转载)
  5. webUI自动化一元素定位
  6. python 直线过滤掉不在边缘上的点_不存在所谓的机器学习平台
  7. Kubernetes 网络原理
  8. 电脑如何进入bios模式_电脑如何进入bios,你还不收藏?
  9. 浙江大学计算机程序设计能力考试(PAT)简介
  10. python和ruby性能比较_Ruby和Python的比较
  11. h.265/HEVC 和 h.264/AVC 比较,在技术上的改进和优势
  12. 【AI视野·今日NLP 自然语言处理论文速览 第十七期】Thu, 1 Jul 2021
  13. nodejs 定时任务
  14. excel单元格内换行的方法
  15. mysql_union all 纵向合并建表_20170123
  16. Bable的快速入门
  17. 转:firefox os 框架解析
  18. mysql统计姓名为小明_MySQL练习2
  19. 利用Chrome Edge浏览器调试AndroidWebView
  20. #453 原汤话原食:除夕夜请热心市民陪我销毁一下烟花爆竹

热门文章

  1. Qt通过QNetworkAccessManager下载
  2. 对数据采集工程师的一点理解
  3. java多线程及线程池使用
  4. 利用API实现获取城市的天气预报信息和给指定手机号码发送验证码——基于Java
  5. python爬取虾米音乐_虾米音乐爬虫
  6. 初步认识android databinding
  7. 【python】python实现屏幕指定区域文字提取(百度API)
  8. matlab求解拉普拉斯方程,急求用matlab编写解拉普拉斯方程的程序
  9. Archlinux软件包管理
  10. 深搜+回溯+广搜小结