Centos7系统KVM虚拟化安装方式(3)--编译安装

本文详细介绍了从源码编译安装KVM的过程,包括获取源码、安装编译工具、配置内核、编译内核及模块、安装内核和initramfs等关键步骤。

0x0、获取KVM最新源码的方式有三种方式(需要科学上网)

这里给出几个源码的下载地址:
git://git.kernel.org/pub/scm/virt/kvm/kvm.git
https://git.kernel.org/pub/scm/virt/kvm/kvm.git
https://kernel.googlesource.com/pub/scm/virt/kvm/kvm.git

0x1、需要下载kvm的源码 安装git工具

sudo yum install git
#创建目录
cd /usr/local/src
#拉取代码
localhost:kvm azkaban$ git clone https://kernel.googlesource.com/pub/scm/virt/kvm/kvm.git
Cloning into 'kvm'...
remote: Sending approximately 1.46 GiB ...
remote: Counting objects: 10984, done
remote: Total 7164785 (delta 6013714), reused 7164785 (delta 6013714)
Receiving objects: 100% (7164785/7164785), 1.46 GiB | 2.06 MiB/s, done.
Resolving deltas: 100% (6013714/6013714), done.
Checking out files: 100% (66368/66368), done.
warning: the following paths have collided (e.g. case-sensitive paths
on a case-insensitive filesystem) and only one from the same
colliding group is in the working tree:

  'include/uapi/linux/netfilter/xt_CONNMARK.h'
  'include/uapi/linux/netfilter/xt_connmark.h'
  'include/uapi/linux/netfilter/xt_DSCP.h'
  'include/uapi/linux/netfilter/xt_dscp.h'
  'include/uapi/linux/netfilter/xt_MARK.h'
  'include/uapi/linux/netfilter/xt_mark.h'
  'include/uapi/linux/netfilter/xt_RATEEST.h'
  'include/uapi/linux/netfilter/xt_rateest.h'
  'include/uapi/linux/netfilter/xt_TCPMSS.h'
  'include/uapi/linux/netfilter/xt_tcpmss.h'
  'include/uapi/linux/netfilter_ipv4/ipt_ECN.h'
  'include/uapi/linux/netfilter_ipv4/ipt_ecn.h'
  'include/uapi/linux/netfilter_ipv4/ipt_TTL.h'
  'include/uapi/linux/netfilter_ipv4/ipt_ttl.h'
  'include/uapi/linux/netfilter_ipv6/ip6t_HL.h'
  'include/uapi/linux/netfilter_ipv6/ip6t_hl.h'
  'net/netfilter/xt_DSCP.c'
  'net/netfilter/xt_dscp.c'
  'net/netfilter/xt_HL.c'
  'net/netfilter/xt_hl.c'
  'net/netfilter/xt_RATEEST.c'
  'net/netfilter/xt_rateest.c'
  'net/netfilter/xt_TCPMSS.c'
  'net/netfilter/xt_tcpmss.c'
  'tools/memory-model/litmus-tests/Z6.0+pooncelock+poonceLock+pombonce.litmus'
  'tools/memory-model/litmus-tests/Z6.0+pooncelock+pooncelock+pombonce.litmus'

localhost:kvm azkaban$ ls
kvm
localhost:kvm azkaban$ cd kvm/
localhost:kvm azkaban$ ls
COPYING     Kconfig     README      crypto      init        mm      security    virt
CREDITS     LICENSES    arch        drivers     ipc     net     sound
Documentation   MAINTAINERS block       fs      kernel      samples     tools
Kbuild      Makefile    certs       include     lib     scripts     usr

0x2、安装编译工具

[root@localhost source]# yum -y groupinstall "development tools"
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.huaweicloud.com
 * extras: mirror.bit.edu.cn
 * updates: mirrors.huaweicloud.com
base                                                                                                     | 3.6 kB  00:00:00     
extras                                                                                                   | 2.9 kB  00:00:00     
updates                                                                                                  | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package autoconf.noarch 0:2.69-11.el7 will be installed
--> Processing Dependency: m4 >= 1.4.14 for package: autoconf-2.69-11.el7.noarch
--> Processing Dependency: perl(Data::Dumper) for package: autoconf-2.69-11.el7.noarch
---> Package automake.noarch 0:1.13.4-3.el7 will be installed
--> Processing Dependency: perl(Thread::Queue) for package: automake-1.13.4-3.el7.noarch
--> Processing Dependency: perl(TAP::Parser) for package: automake-1.13.4-3.el7.noarch
---> Package bison.x86_64 0:3.0.4-2.el7 will be installed
---> Package byacc.x86_64 0:1.9.20130304-3.el7 will be installed
---> Package cscope.x86_64 0:15.8-10.el7 will be installed
--> Processing Dependency: emacs-filesystem for package: cscope-15.8-10.el7.x86_64
---> Package ctags.x86_64 0:5.8-13.el7 will be installed
---> Package diffstat.x86_64 0:1.57-4.el7 will be installed
---> Package doxygen.x86_64 1:1.8.5-3.el7 will be installed
---> Package elfutils.x86_64 0:0.176-2.el7 will be installed
--> Processing Dependency: elfutils-libs(x86-64) = 0.176-2.el7 for package: elfutils-0.176-2.el7.x86_64
--> Processing Dependency: elfutils-libelf(x86-64) = 0.176-2.el7 for package: elfutils-0.176-2.el7.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.175)(64bit) for package: elfutils-0.176-2.el7.x86_64
--> Processing Dependency: libdw.so.1(ELFUTILS_0.173)(64bit) for package: elfutils-0.176-2.el7.x86_64
---> Package flex.x86_64 0:2.5.37-6.el7 will be installed
---> Package gcc.x86_64 0:4.8.5-39.el7 will be installed
--> Processing Dependency: libgomp = 4.8.5-39.el7 for package: gcc-4.8.5-39.el7.x86_64
--> Processing Dependency: cpp = 4.8.5-39.el7 for package: gcc-4.8.5-39.el7.x86_64
--> Processing Dependency: libgcc >= 4.8.5-39.el7 for package: gcc-4.8.5-39.el7.x86_64
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-39.el7.x86_64
--> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-4.8.5-39.el7.x86_64
--> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-4.8.5-39.el7.x86_64
---> Package gcc-c++.x86_64 0:4.8.5-39.el7 will be installed
--> Processing Dependency: libstdc++-devel = 4.8.5-39.el7 for package: gcc-c++-4.8.5-39.el7.x86_64
--> Processing Dependency: libstdc++ = 4.8.5-39.el7 for package: gcc-c++-4.8.5-39.el7.x86_64
---> Package gcc-gfortran.x86_64 0:4.8.5-39.el7 will be installed
--> Processing Dependency: libquadmath-devel = 4.8.5-39.el7 for package: gcc-gfortran-4.8.5-39.el7.x86_64
--> Processing Dependency: libquadmath = 4.8.5-39.el7 for package: gcc-gfortran-4.8.5-39.el7.x86_64
--> Processing Dependency: libgfortran = 4.8.5-39.el7 for package: gcc-gfortran-4.8.5-39.el7.x86_64
--> Processing Dependency: libgfortran.so.3()(64bit) for package: gcc-gfortran-4.8.5-39.el7.x86_64
---> Package indent.x86_64 0:2.2.11-13.el7 will be installed
---> Package intltool.noarch 0:0.50.2-7.el7 will be installed
--> Processing Dependency: perl(XML::Parser) for package: intltool-0.50.2-7.el7.noarch
--> Processing Dependency: gettext-devel for package: intltool-0.50.2-7.el7.noarch
---> Package libtool.x86_64 0:2.4.2-22.el7_3 will be installed
---> Package patch.x86_64 0:2.7.1-12.el7_7 will be installed
---> Package patchutils.x86_64 0:0.3.3-4.el7 will be installed
---> Package rcs.x86_64 0:5.9.0-5.el7 will be installed
---> Package redhat-rpm-config.noarch 0:9.1.0-88.el7.centos will be installed
--> Processing Dependency: dwz >= 0.4 for package: redhat-rpm-config-9.1.0-88.el7.centos.noarch
--> Processing Dependency: zip for package: redhat-rpm-config-9.1.0-88.el7.centos.noarch
--> Processing Dependency: python-srpm-macros for package: redhat-rpm-config-9.1.0-88.el7.centos.noarch
--> Processing Dependency: perl-srpm-macros for package: redhat-rpm-config-9.1.0-88.el7.centos.noarch
---> Package rpm-build.x86_64 0:4.11.3-40.el7 will be installed
--> Processing Dependency: rpm = 4.11.3-40.el7 for package: rpm-build-4.11.3-40.el7.x86_64
--> Processing Dependency: unzip for package: rpm-build-4.11.3-40.el7.x86_64
--> Processing Dependency: /usr/bin/gdb-add-index for package: rpm-build-4.11.3-40.el7.x86_64
---> Package rpm-sign.x86_64 0:4.11.3-40.el7 will be installed
--> Processing Dependency: rpm-build-libs(x86-64) = 4.11.3-40.el7 for package: rpm-sign-4.11.3-40.el7.x86_64
---> Package subversion.x86_64 0:1.7.14-14.el7 will be installed
--> Processing Dependency: subversion-libs(x86-64) = 1.7.14-14.el7 for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_wc-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_subr-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_repos-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_ra_svn-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_ra_neon-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_ra_local-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_ra-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_fs_util-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_fs_fs-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_fs_base-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_fs-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_diff-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_delta-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libsvn_client-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libneon.so.27()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: subversion-1.7.14-14.el7.x86_64
---> Package swig.x86_64 0:2.0.10-5.el7 will be installed
---> Package systemtap.x86_64 0:4.0-10.el7_7 will be installed
--> Processing Dependency: systemtap-devel = 4.0-10.el7_7 for package: systemtap-4.0-10.el7_7.x86_64
--> Processing Dependency: systemtap-client = 4.0-10.el7_7 for package: systemtap-4.0-10.el7_7.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-5.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package cpp.x86_64 0:4.8.5-39.el7 will be installed
---> Package dwz.x86_64 0:0.11-3.el7 will be installed
---> Package elfutils-libelf.x86_64 0:0.172-2.el7 will be updated
---> Package elfutils-libelf.x86_64 0:0.176-2.el7 will be an update
---> Package elfutils-libs.x86_64 0:0.172-2.el7 will be updated
---> Package elfutils-libs.x86_64 0:0.176-2.el7 will be an update
---> Package emacs-filesystem.noarch 1:24.3-22.el7 will be installed
---> Package gdb.x86_64 0:7.6.1-115.el7 will be installed
---> Package gettext-devel.x86_64 0:0.19.8.1-2.el7 will be installed
--> Processing Dependency: gettext-common-devel = 0.19.8.1-2.el7 for package: gettext-devel-0.19.8.1-2.el7.x86_64
---> Package glibc-devel.x86_64 0:2.17-292.el7 will be installed
--> Processing Dependency: glibc-headers = 2.17-292.el7 for package: glibc-devel-2.17-292.el7.x86_64
--> Processing Dependency: glibc = 2.17-292.el7 for package: glibc-devel-2.17-292.el7.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.17-292.el7.x86_64
---> Package libgcc.x86_64 0:4.8.5-36.el7 will be updated
---> Package libgcc.x86_64 0:4.8.5-39.el7 will be an update
---> Package libgfortran.x86_64 0:4.8.5-39.el7 will be installed
---> Package libgomp.x86_64 0:4.8.5-36.el7 will be updated
---> Package libgomp.x86_64 0:4.8.5-39.el7 will be an update
---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed
---> Package libquadmath.x86_64 0:4.8.5-39.el7 will be installed
---> Package libquadmath-devel.x86_64 0:4.8.5-39.el7 will be installed
---> Package libstdc++.x86_64 0:4.8.5-36.el7 will be updated
---> Package libstdc++.x86_64 0:4.8.5-39.el7 will be an update
---> Package libstdc++-devel.x86_64 0:4.8.5-39.el7 will be installed
---> Package m4.x86_64 0:1.4.16-10.el7 will be installed
---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed
---> Package neon.x86_64 0:0.30.0-4.el7 will be installed
--> Processing Dependency: libproxy.so.1()(64bit) for package: neon-0.30.0-4.el7.x86_64
--> Processing Dependency: libpakchois.so.0()(64bit) for package: neon-0.30.0-4.el7.x86_64
---> Package perl-Data-Dumper.x86_64 0:2.145-3.el7 will be installed
---> Package perl-Test-Harness.noarch 0:3.28-3.el7 will be installed
---> Package perl-Thread-Queue.noarch 0:3.02-2.el7 will be installed
---> Package perl-XML-Parser.x86_64 0:2.41-10.el7 will be installed
---> Package perl-srpm-macros.noarch 0:1-8.el7 will be installed
---> Package python-srpm-macros.noarch 0:3-32.el7 will be installed
---> Package rpm.x86_64 0:4.11.3-35.el7 will be updated
--> Processing Dependency: rpm = 4.11.3-35.el7 for package: rpm-libs-4.11.3-35.el7.x86_64
--> Processing Dependency: rpm = 4.11.3-35.el7 for package: rpm-python-4.11.3-35.el7.x86_64
---> Package rpm.x86_64 0:4.11.3-40.el7 will be an update
---> Package rpm-build-libs.x86_64 0:4.11.3-35.el7 will be updated
---> Package rpm-build-libs.x86_64 0:4.11.3-40.el7 will be an update
---> Package subversion-libs.x86_64 0:1.7.14-14.el7 will be installed
---> Package systemtap-client.x86_64 0:4.0-10.el7_7 will be installed
--> Processing Dependency: systemtap-runtime = 4.0-10.el7_7 for package: systemtap-client-4.0-10.el7_7.x86_64
--> Processing Dependency: mokutil for package: systemtap-client-4.0-10.el7_7.x86_64
---> Package systemtap-devel.x86_64 0:4.0-10.el7_7 will be installed
--> Processing Dependency: kernel-devel-uname-r for package: systemtap-devel-4.0-10.el7_7.x86_64
---> Package unzip.x86_64 0:6.0-20.el7 will be installed
---> Package zip.x86_64 0:3.0-11.el7 will be installed
--> Running transaction check
---> Package gettext-common-devel.noarch 0:0.19.8.1-2.el7 will be installed
---> Package glibc.x86_64 0:2.17-260.el7 will be updated
--> Processing Dependency: glibc = 2.17-260.el7 for package: glibc-common-2.17-260.el7.x86_64
---> Package glibc.x86_64 0:2.17-292.el7 will be an update
---> Package glibc-headers.x86_64 0:2.17-292.el7 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-292.el7.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.17-292.el7.x86_64
---> Package kernel-debug-devel.x86_64 0:3.10.0-1062.9.1.el7 will be installed
---> Package libproxy.x86_64 0:0.4.11-11.el7 will be installed
--> Processing Dependency: libmodman.so.1()(64bit) for package: libproxy-0.4.11-11.el7.x86_64
---> Package mokutil.x86_64 0:15-2.el7.centos will be installed
--> Processing Dependency: libefivar.so.1(libefivar.so.0)(64bit) for package: mokutil-15-2.el7.centos.x86_64
--> Processing Dependency: libefivar.so.1(LIBEFIVAR_0.24)(64bit) for package: mokutil-15-2.el7.centos.x86_64
--> Processing Dependency: libefivar.so.1()(64bit) for package: mokutil-15-2.el7.centos.x86_64
---> Package pakchois.x86_64 0:0.4-10.el7 will be installed
---> Package rpm-libs.x86_64 0:4.11.3-35.el7 will be updated
---> Package rpm-libs.x86_64 0:4.11.3-40.el7 will be an update
---> Package rpm-python.x86_64 0:4.11.3-35.el7 will be updated
---> Package rpm-python.x86_64 0:4.11.3-40.el7 will be an update
---> Package systemtap-runtime.x86_64 0:4.0-10.el7_7 will be installed
--> Processing Dependency: libsymtabAPI.so.9.3()(64bit) for package: systemtap-runtime-4.0-10.el7_7.x86_64
--> Processing Dependency: libdyninstAPI.so.9.3()(64bit) for package: systemtap-runtime-4.0-10.el7_7.x86_64
--> Running transaction check
---> Package dyninst.x86_64 0:9.3.1-3.el7 will be installed
--> Processing Dependency: libdwarf.so.0()(64bit) for package: dyninst-9.3.1-3.el7.x86_64
--> Processing Dependency: libboost_date_time-mt.so.1.53.0()(64bit) for package: dyninst-9.3.1-3.el7.x86_64
---> Package efivar-libs.x86_64 0:36-12.el7 will be installed
---> Package glibc-common.x86_64 0:2.17-260.el7 will be updated
---> Package glibc-common.x86_64 0:2.17-292.el7 will be an update
---> Package kernel-headers.x86_64 0:3.10.0-1062.9.1.el7 will be installed
---> Package libmodma
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络安全-李彦亮(本人)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值