第一步:安装需要的软件包
安装编译 Xen 和 Linux xen kernel 所需要的软件包:
sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext \
zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev \
libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev \
libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot \
build-essential crash kexec-tools makedumpfile libncurses5 \
libncurses5-dev iasl gawk
第二步:安装xen vmm
32位和64位系统的区别也很重要。64位按下面步骤很简单,32位就不同,因为xen需要开启pae,默认是没有开启的,所以32位ubuntu首先得执行下面这个命令:
sudo apt-get install linux-image-server
sudo apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils
这里xen-hypervisor-4.1要分32位、64位,64位系统用xen-hypervisor-4.1-amd64,32位用xen-hypervisor-4.1-i386.
第三步:重启机器,选择有xen的内核启动,进入系统之后,再检查一下 Xen 是否已经成功安装:
$ sudo xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1879 2 r----- 6.6
出现上面的信息,则代表安装成功。
第四步:修改配置文件
sudo gedit /etc/xen/xend-config.sxp
将/etc/xen/xend-config.sxp文件中的“#(xend-unix-server no)”跟“#(xend-relocation-server no)”注释去掉 即把“#”去掉,并把“no”改成“yes”,保存即可。 relocation是迁移必须要开启的服务,其他的服务在没有必要的时候不要随便打开
然后重启xend服务(手动启动/停止/重启Xen服务命令:/etc/init.d/xend start / stop / restart)
sudo gedit ~/.bashrc ,在打开的.bashrc文件中添加下面这句话
export VIRSH_DEFAULT_CONNECT_URI="xen:///"
第六部:安装virt-manager
sudo apt-get install virtinst virt-viewer virt-manager
第七部:安装ssh服务
sudo apt-get install openssh-server
第八部:安装libvir
1.安装依赖的软件包
apt-get install libvirt-bin libvirt-dev libxml2 libxml2-dev gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev libnl-dev python-dev
2.安装YAJL
sudo apt-get install g++
sudo apt-get install cmake ruby
进入YAJL所在目录(这里只是软件包的简称,可能还有版本名,如YAJL即为lloyd-yajl-ce86b0f,以下同。)
(1)./configure
(2)make
(3)make install
3.安装device-mapper
进入device-mapper所在目录
(1) ./configure
(2) sudo make
(3) sudo make install
4.进入libvirt所在目录
(1)./configure
(2)make
(3)make install
出现的问题及解决办法:
(1)解决error while loading shared libraries: libvirt.so.0
第一种:
定义shell变量 LD_LIBRARY_PATH
$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ ./example
第二种:
修改系统动态链接库配置文件
(the system dynamic linker configuration)
进入目录/etc/ld.so.conf.d
添加一个文件libvirt.conf,内容是:
# libvirt default configuration
/usr/local/lib
更新动态链接库缓存
sudo ldconfig
(2)解决failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock':no such file or directory
添加libvirt用户组
sudo groupadd libvirt
添加当前用户到libvirt组里
sudo gpasswd -a root libvirt
(6) error: ebiptablesDriverInit:4129 : essential tools to support ip(6) tables firewalls could not be located
编辑文件/usr/local/etc/libvirt/libvirtd.conf
取消一下几项的注释
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/run/libvirt"修改为
unix_sock_dir = "/usr/local/var/run/libvirt"
auth_unix_ro = "none"
auth_unix_rw = "none"
最后:如果要启动自动运行libvirtd
编辑文件/etc/rc.local
在exit 0之前添加
sudo libvirtd &
这里就安装结束了,但打开virt-manager时可能会出现如下错误,下面也给出解决办法:
创建时因为相关资源路径问题可能会报以下错误
6.1 ******/usr/lib/xen/bin/qemu-dm:****
路径中xen应该是xen-4.1,解决办法如下
mkdir /usr/lib/xen -p
cp /usr/lib/xen-4.1/* -r /usr/lib/xen/
并在/usr/lib/xen/bin下面的qemu-dm文件剪切到/usr/lib64/xen/bin目录下。
6.2 ****** libvirtError: POST操作失败: xend_post:来自 xen 守护进程的错误:****
查看日志 /var/log/xen/xend.log 和 /var/log/xen/qemu-dm-demo.log
日志显示/usr/share/qemu/keymaps/en-us could not be found, the keymaps ***
路径中qemu应该是qemu-linaro,解决办法如下
cp -r /usr/share/qemu-linaro/ /usr/share/qemu
最后使用virsh version查看环境是否配置正确,若不正确,则会报错。
安装编译 Xen 和 Linux xen kernel 所需要的软件包:
sudo apt-get install gcc g++ make patch libssl-dev bzip2 gettext \
zlib1g-dev python libncurses5-dev libjpeg62-dev libx11-dev \
libgcrypt11-dev pkg-config bridge-utils bcc bin86 libpci-dev \
libsdl-dev python-dev texinfo libc6-dev uuid-dev bison flex fakeroot \
build-essential crash kexec-tools makedumpfile libncurses5 \
libncurses5-dev iasl gawk
第二步:安装xen vmm
32位和64位系统的区别也很重要。64位按下面步骤很简单,32位就不同,因为xen需要开启pae,默认是没有开启的,所以32位ubuntu首先得执行下面这个命令:
sudo apt-get install linux-image-server
sudo apt-get install xen-hypervisor-4.1-amd64 xen-utils-4.1 xenwatch xen-tools xen-utils-common xenstore-utils
这里xen-hypervisor-4.1要分32位、64位,64位系统用xen-hypervisor-4.1-amd64,32位用xen-hypervisor-4.1-i386.
第三步:重启机器,选择有xen的内核启动,进入系统之后,再检查一下 Xen 是否已经成功安装:
$ sudo xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 1879 2 r----- 6.6
出现上面的信息,则代表安装成功。
第四步:修改配置文件
sudo gedit /etc/xen/xend-config.sxp
将/etc/xen/xend-config.sxp文件中的“#(xend-unix-server no)”跟“#(xend-relocation-server no)”注释去掉 即把“#”去掉,并把“no”改成“yes”,保存即可。 relocation是迁移必须要开启的服务,其他的服务在没有必要的时候不要随便打开
然后重启xend服务(手动启动/停止/重启Xen服务命令:/etc/init.d/xend start / stop / restart)
sudo gedit ~/.bashrc ,在打开的.bashrc文件中添加下面这句话
export VIRSH_DEFAULT_CONNECT_URI="xen:///"
第六部:安装virt-manager
sudo apt-get install virtinst virt-viewer virt-manager
第七部:安装ssh服务
sudo apt-get install openssh-server
第八部:安装libvir
1.安装依赖的软件包
apt-get install libvirt-bin libvirt-dev libxml2 libxml2-dev gnutls-doc gnutls-bin libneon27-gnutls libcurl4-gnutls-dev libnl-dev python-dev
2.安装YAJL
sudo apt-get install g++
sudo apt-get install cmake ruby
进入YAJL所在目录(这里只是软件包的简称,可能还有版本名,如YAJL即为lloyd-yajl-ce86b0f,以下同。)
(1)./configure
(2)make
(3)make install
3.安装device-mapper
进入device-mapper所在目录
(1) ./configure
(2) sudo make
(3) sudo make install
4.进入libvirt所在目录
(1)./configure
(2)make
(3)make install
出现的问题及解决办法:
(1)解决error while loading shared libraries: libvirt.so.0
第一种:
定义shell变量 LD_LIBRARY_PATH
$ LD_LIBRARY_PATH=/usr/local/lib
$ export LD_LIBRARY_PATH
$ ./example
第二种:
修改系统动态链接库配置文件
(the system dynamic linker configuration)
进入目录/etc/ld.so.conf.d
添加一个文件libvirt.conf,内容是:
# libvirt default configuration
/usr/local/lib
更新动态链接库缓存
sudo ldconfig
(2)解决failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock':no such file or directory
添加libvirt用户组
sudo groupadd libvirt
添加当前用户到libvirt组里
sudo gpasswd -a root libvirt
记得要重启,才能有用
(3)启动libvirt时LIBVIERT_VERSION_0.7没找到,才发现原来系统原来有个libvirt.so.0,于是删除原来的,并将新的替换原来的
mv libvirt.so.0.7.0 libvirt.so.0
(4)找不到libvirt-sock,说没有这个文件,错误情况:“libvir: Remote error : unable to connect to '/usr/local/var/run/libvirt/libvirt-sock': No such file or directory”再做个链接
ln -s /var/run/libvirt/libvirt-sock /usr/local/var/run/libvirt/libvirt-sock
(5)找不到libvirt-sock,说没有这个文件,错误情况:“libvir: Remote error : unable to connect to '/usr/local/var/run/libvirt/libvirt-sock-ro': No such file or directory”再做个链接
ln -s /var/run/libvirt/libvirt-sock-ro /usr/local/var/run/libvirt/libvirt-sock-ro
(6) error: ebiptablesDriverInit:4129 : essential tools to support ip(6) tables firewalls could not be located
编辑文件/usr/local/etc/libvirt/libvirtd.conf
取消一下几项的注释
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/run/libvirt"修改为
unix_sock_dir = "/usr/local/var/run/libvirt"
auth_unix_ro = "none"
auth_unix_rw = "none"
最后:如果要启动自动运行libvirtd
编辑文件/etc/rc.local
在exit 0之前添加
sudo libvirtd &
这里就安装结束了,但打开virt-manager时可能会出现如下错误,下面也给出解决办法:
创建时因为相关资源路径问题可能会报以下错误
6.1 ******/usr/lib/xen/bin/qemu-dm:****
路径中xen应该是xen-4.1,解决办法如下
mkdir /usr/lib/xen -p
cp /usr/lib/xen-4.1/* -r /usr/lib/xen/
并在/usr/lib/xen/bin下面的qemu-dm文件剪切到/usr/lib64/xen/bin目录下。
6.2 ****** libvirtError: POST操作失败: xend_post:来自 xen 守护进程的错误:****
查看日志 /var/log/xen/xend.log 和 /var/log/xen/qemu-dm-demo.log
日志显示/usr/share/qemu/keymaps/en-us could not be found, the keymaps ***
路径中qemu应该是qemu-linaro,解决办法如下
cp -r /usr/share/qemu-linaro/ /usr/share/qemu
最后使用virsh version查看环境是否配置正确,若不正确,则会报错。
也可以安装虚拟机查看环境是否配置正确。
https://wiki.debian.org/libvirt