CentOS dom0中安装CentOS domU有多种方式,我觉得以下这一种最方便:

  1. 下载CentOS5.x x86_64/x86的安装镜像;

    $ axel -n 10 http://ftp.jaist.ac.jp/pub/Linux/CentOS/5.8/isos/i386/CentOS-5.8-i386-bin-DVD-1of2.iso
    推荐使用axel这个多线程下载工具
  2. 准备安装源

    使用iso在本地创建一个ftp安装源是最快的安装媒介;

    $ sudo yum install vsftpd
    $ sudo mount -o loop /path/to/CentOS-5.8-i386-bin-DVD-1of2.iso /var/ftp
    $ sudo service vsftpd start

    这样,匿名用户就可以直接访问CentOS镜像的文件了。

  3. 下载kernel和ramdisk文件

    $ cd /boot/centos5/
    $ wget "http://mirror.centos.org/centos/5/os/i386/images/xen/initrd.img"
    $ wget "http://mirror.centos.org/centos/5/os/i386/images/xen/vmlinuz"
    $ sudo mv initrd.img initrd-xen-install.img
    $ sudo mv vmlinuz vmlinuz-xen-install
  4. 创建domU配置文件

    /etc/xen/domU/CNOS-58-32-template.cfg
    kernel = "/boot/centos5/vmlinuz-xen-install"
    ramdisk = "/boot/centos5/initrd-xen-install.img"
    extra = "text console=xvc0"
    name = "CNOS-58-32-template"
    memory = "2048"
    disk = [ 'tap:aio:/path/to/CNOS-58-32-template.img,xvda,w']
    vif = [ 'bridge=eth0',  ]
    vcpus=2

    该配置文件既适用于安装VM,安装完毕后还需要修改此文件,详见下文。

  5. 创建VM镜像文件

    $ sudo dd if=/dev/zero of=/path/to/your/vm/CNOS-58-32-template.img oflag=direct bs=1M seek=8192 count=0 (1)
    1 文件尺寸=bs*count
  6. 启动安装

    $ sudo xm create /etc/xen/domU/CNOS-58-32-template.cfg -c
    建议直接将OS安装在裸盘上,即:取消LVM这种磁盘管理方式,同时仅创建一个分区,用于挂载“/”,不创建swap分区。
  7. 修改domU配置文件

    /etc/xen/domU/CNOS-0058-32-template.cfg
    bootloader="/usr/bin/pygrub" (1)
    #kernel = "/boot/centos5/vmlinuz-xen-install" (2)
    #ramdisk = "/boot/centos5/initrd-xen-install.img" (3)
    extra = "text console=xvc0"
    name = "CNOS-58-32-template"
    memory = "2048"
    disk = [ 'tap:aio:/path/to/CNOS-58-32-template.img,xvda,w']
    vif = [ 'bridge=eth0',  ]
    vcpus=2

    因为centos内核并未包含xen,所以在安装domU的时候,需要使用xen化的centos内核。安装结束后,在切换回dom0中自带的pygrub。

  8. VM的日常操作

    • 启动并附着控制台

      $ xm create CNOS-0058-32-template.cfg -c
    • 附着控制台

      $ xm console <vm-id>
    • 脱离控制台

      在VM console中按ctrl+]

快速创建大镜像文件

当使用dd创建一个大的文件时,速度非常慢,但是如果采用以下参数组合可以大大加快速度:

$ dd if=... of=...  oflag=direct bs=1M seek=40960 count=0