zoukankan      html  css  js  c++  java
  • 在 CentOS 下源码安装 Xen

    http://www.vpsee.com/2010/04/install-xen-on-centos-from-source/

    在 CentOS 源码编译安装 Xen 的过程和在 Debian 上编译安装 Xen 的过程差不多,只是第一步安装编译所需要的工具和软件包有所不同,后续步骤有点小差别,不过方法都是一样的,这也说明各个 Linux 发行版之间的区别真的不大,没有必要为选择 Linux 发行版而发愁。编译一个 Xen 内核和编译一个普通 Linux 内核没有什么不同,如果发现编译后的内核启动不了,出现 kernel panic 的情况,多半是内核与机器的硬件没有配置好的原因,和 Xen 没有关系,比如常见的 switchroot: mount failed: No such file or directory 就可能是因为内核配置的时候忘了加上 root 的硬盘驱动,也可能找到驱动了但是挂载的时候发现文件系统类型不对,等等。VPSee 在一台 Intel(R) Core(TM) i3 CPU 540 @ 3.07GHz, 4GB 机器上使用最新的 Xen 4.0.0 源代码和 CentOS 5.4 完成以下操作。这里还有在 Ubuntu 上源码安装 Xen 的详细过程。如果觉得源码安装很麻烦的话,这里有 在 CentOS 上安装和配置 Xen 的二进制安装过程。

    安装需要的软件包

    首先最小化安装 CentOS,然后安装编译 Xen 和 Linux xen kernel 所需要的软件包:

    # yum groupinstall "Development Tools" 
    # yum install hmaccalc ncurses-devel zlib-devel openssl-devel python-devel 
    bridge-utils  libtool-ltdl iasl xorg-x11-drv-evdev xorg-x11-drv-fbdev 
    xorg-x11-drv-i810-devel xorg-x11-drv-via-devel xorg-x11-proto-devel 
    xorg-x11-server-sdk xorg-x11-xtrans-devel
    

    安装完以上软件包后,剩下的操作就和在 Debian 上编译和安装 Xen 差不多了。

    安装 Xen hypervisor 和 tools

    到 http://www.xen.org/products/xen_source.html 下载最新的 Xen 源代码,然后解开、编译、安装,标准的 Linux 软件源码安装动作:

    $ tar zxvf xen-4.0.0.tar.gz
    $ cd xen-4.0.0/
    $ make xen tools stubdom
    # make install-xen install-tools install-stubdom
    

    上面 make stubdom 的时候会从网上自动下载一些东西,所以如果是用代理上网的话需要在自己根目录下的 .wgetrc 里加上代理服务器,以便 wget 能通过代理正常下载:

    $ vi .wgetrc
    http_proxy = http://proxy.vpsee.com:3128/
    use_proxy = on
    

    加入到启动脚本:

    # /sbin/chkconfig --add xend
    # /sbin/chkconfig --add xendomains
    # /sbin/chkconfig xend on
    # /sbin/chkconfig xendomains on
    

    安装 Xen 内核

    下载 Linux 内核后给内核打 xen 补丁:

    $ cd
    $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.8.tar.bz2
    $ tar -xjf linux-2.6.31.8.tar.bz2
    
    $ wget http://gentoo-xen-kernel.googlecode.com/files/
    xen-patches-2.6.31-10.tar.bz2
    $ mkdir xenpatch-2.6.31.8
    $ cd xenpatch-2.6.31.8
    $ tar -xjf ../xen-patches-2.6.31-10.tar.bz2
    $ cd ..
    
    $ cd linux-2.6.31.8
    $ for i in `ls ../xenpatch-2.6.31.8/`; 
    do patch -p1 < ../xenpatch-2.6.31.8/"$i"; done
    

    配置带 xen 的 Linux 内核:

    $ make menuconfig
    
    Processor type and features --->
      [*] Enable Xen compatible kernel
    Networking support --->
      Networking options --->
        <*> 802.1d Ethernet Bridging
    Device Drivers --->
      XEN --->
        [*] Privileged Guest (domain 0)
         Backend driver support
           Block-device backend driver
           Block-device tap backend driver
           Block-device tap backend driver 2
           Network-device backend driver
           PCI-device backend driver
           SCSI backend driver
           USB backend driver
        <*> Block-device frontend driver
        <*> Network-device frontend driver
         SCSI frontend driver
         USB frontend driver
        <*> Framebuffer-device frontend driver
        <*>   Keyboard-device frontend driver
        [*] Disable serial port drivers
        <*> Export Xen attributes in sysfs
            Xen version compatibility (3.3.0 and later) --->
               3.3.0 and later
    

    配置好内核参数以后,保存并退出,开始编译 Linux 内核:

    $ make
    $ make modules
    # make modules_install
    # make install
    # /sbin/depmod 2.6.31.8
    

    更新 grub:

    #  vi /boot/grub/menu.lst
    ...
    title CentOS (2.6.31.8-xen)
            root (hd0,0)
            kernel /xen-4.0.0.gz
            module /vmlinuz-2.6.31.8 ro root=/dev/VolGroup00/LogVol00
            module /initrd-2.6.31.8.img
    ...
    

    重启系统,确认 Xen 安装成功:

    # reboot
    
    # uname -a
    Linux localhost.localdomain 2.6.31.8 #2 SMP Tue Apr 20 11:19:19 SAST 2010 x86_64 GNU/Linux
    
    # xm list
    Name                                        ID   Mem VCPUs      State   Time(s)
    Domain-0                                     0  3713     4     r-----     36.0
  • 相关阅读:
    小结css2与css3的区别
    javascript变量的作用域
    javascript面向对象
    小结php中几种网页跳转
    foreach
    post与get,这两人到底神马区别??
    typescript遍历Map
    dataTable.js参数
    showModal()和show()的区别
    javascript中location.protocol、location.hostname和location.port
  • 原文地址:https://www.cnblogs.com/heidsoft/p/3975977.html
Copyright © 2011-2022 走看看