xen的安装
1. apt-get或yum安装
2. 下载deb或rpm包安装
3. 源码安装
如果从xen网站上下载的xen和Linux内核都是同一个版本的,例如3.1,
则直接"make dist"或"make world"后"make install"即可,这在README中都有,"make help"命令也有提示。
昨天我没有这样安装,因为想装xen-3.3,而相应的Linux内核据说下载下来后不能用,而且xen邮件列表中给出的用hg(类似CVS和svn的工具)到官网实时下载安装的方法也不行(网速问题),所以只能用kernel.org上提供的内核,通过xen自己编译(只能通过xen-3.1编译,xen-3.2或3.3都不行:别人的经验之谈)。我选择通过xen-3.1来编译Linux内核2.6.18-8,编译时,xen可以修改内核,最后编译出来的内核可以作为domain 0的内核。
第一步
在xen-3.3的文件夹中用make install-xen && make install-tools && make install-docs(注意权限问题)安装了xen、tools等。
第二步
把从kernel.org下载的内核(不要解压)放到xen-3.1的文件夹中,按照README中"Quick-Start Guide - Source Release"部分的第五点,运行
"make linux-2.6-xen-config CONFIGMODE=menuconfig"
注:
1. 本来这一步和下面两步可以"make kernels"一个命令搞定,但开始用的是kernel.org上最新版本内核,出了问题,于是到buildconfigs/mk.linux-2.6-xen中,修改相应版本号(默认是2.6.18),结果运行时还是识别不了,最后不得不下载了默认版本内核:2.6.18
2. 编译内核需要很长时间,之前会有一些选项让你选,选完开始编译
第三步
"make linux-2.6-xen-config CONFIGMODE=menuconfig"之后,
"make linux-2.6-xen-build"
第四步
"make linux-2.6-xen-install",内核生成并被拷贝到相应目录
第五步
"mkinitrd",生成"initrd-2.6.18.8-xen.img"并将其拷贝到/boot下
最后
修改grub并重启
后记1:
由于xen-3.1.4中编译出的Domain0的内核默认并没有把loop设备部分当作模块来编译,而是内核的一部分来编译,于是不得不重新编译一次xen,让其支持loop设备模块。
p.s.
1. linux默认只支持8个loop设备(/dev/loop0-/dev/loop7),如果有loop设备模块的话就可以改变支持的loop设备的上限。
2. 系统中那些部分作为内核一部分,那些作为模块形式加载,这些都在config文件中定义。在编译xen之前,config配置文件是xen- 3.1.4/build-linux-2.6.18.8-xen_x86_64/.config,编译时会按照这个文件来编译,编译并安装后会把该配置文件放到/boot/config-2.6.18.8-xen。文件中等号右边的y表示编译进内核,m表示以模块形式编译。
重装xen的过程如下:
首先config,然后build,然后install,接下来depmod(可有可无)和mkinitrd。
其中config这一步既可以按make help中的命令make prep-kernels,也可以按照README中make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig),两个命令在屏幕上的输出基本上是一样的;config文件就是该命令产生的,具体位置为xen-3.1.4/build-linux- 2.6.18.8-xen_x86_64/.config;在menuconfig中用菜单手动设置CONFIG_BLK_DEV_LOOP=m,而对于 make prep-kernels,需要在 .config 文件中把CONFIG_BLK_DEV_LOOP手动设置为m。
p.s. 查看/boot/config-2.6.18-8.el5,可以看到物理机的内核默认把loop设备以模块方式编译,而在xen-3.1.4中编译Domain0内核时,默认把loop设备当成内核一部分来编译。
在build这一步,可以利用make命令的-j选项来增加编译速度:sudo make -j 8 linux-2.6-xen-build:这样编译时同时运行8个编译任务,速度快了很多。
接下来的make linux-2.6-xen-install据说会做两件事情:把编译好的内核放到/boot/vmlinuz-2.6.18.8-xen,以及把编译好的模块放到/lib/modules/2.6.18.8-xen/中。
sudo depmod 2.6.18.8-xen这一步没输出。
最后的sudo mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18.8-xen.img 2.6.18.8-xen命令在当前目录生成initrd-2.6.18.8-xen.img,把这个文件拷贝到/boot/下面就可以了。
后记2:
make linux-2.6-xen-config CONFIGMODE=menuconfig命令可以用
cd build-linux-2.6.18-xen_x86_64
后make menuconfig。
后记3:
在xenXXX/buildYYY/.config中修改CONFIG_BLK_DEV_LOOP为CONFIG_BLK_DEV_LOOP=m;
而当用menuconfig时,修改Device Drivers ---> Block devices ---> Loopback device support为M即可。
后记4:
刚装好xen后重启,运行 xm list 命令出现错误:
Error: Unable to connect to xend: Connection refused. Is xend running?
原因是xend没有运行,用命令
chkconfig --add xend
把xend添加进服务,重启或手动启动xend即可。
后记5:
今天发现原来装xen时docs以前从来没有装上去过,这次终于解决:
开始提示说是没装latex,但rhel5的源中没有latex,只有 tetex,于是装上了tetex,接下来又提示fig2dev这个包没装上,搞了半天,找不着这个包,最后在rpmfind上找到了,原来真正的名字是 transfig,装上后终于把xen的docs搞定了
Labels: Linux, Operation and Maintenance
5 Comments:
由于xen-3.1.4中编译出的Domain0的内核默认并没有把loop设备部分当作模块来编译,而是内核的一部分来编译,于是不得不重新编译一次xen,让其支持loop设备模块。
p.s.
1. linux默认只支持8个loop设备(/dev/loop0-/dev/loop7),如果有loop设备模块的话就可以改变支持的loop设备的上限。
2. 系统中那些部分作为内核一部分,那些作为模块形式加载,这些都在config文件中定义。在编译xen之前,config配置文件是xen-3.1.4/build-linux-2.6.18.8-xen_x86_64/.config,编译时会按照这个文件来编译,编译并安装后会把该配置文件放到/boot/config-2.6.18.8-xen。文件中等号右边的y表示编译进内核,m表示以模块形式编译。
重装xen的过程如下:
首先config,然后build,然后install,接下来depmod(可有可无)和mkinitrd。
其中config这一步既可以按make help中的命令make prep-kernels,也可以按照README中make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig),两个命令在屏幕上的输出基本上是一样的;config文件就是该命令产生的,具体位置为xen-3.1.4/build-linux-2.6.18.8-xen_x86_64/.config;在menuconfig中用菜单手动设置CONFIG_BLK_DEV_LOOP=m,而对于make prep-kernels,需要在 .config 文件中把CONFIG_BLK_DEV_LOOP手动设置为m。
p.s. 查看/boot/config-2.6.18-8.el5,可以看到物理机的内核默认把loop设备以模块方式编译,而在xen-3.1.4中编译Domain0内核时,默认把loop设备当成内核一部分来编译。
在build这一步,可以利用make命令的-j选项来增加编译速度:sudo make -j 8 linux-2.6-xen-build:这样编译时同时运行8个编译任务,速度快了很多。
接下来的make linux-2.6-xen-install据说会做两件事情:把编译好的内核放到/boot/vmlinuz-2.6.18.8-xen,以及把编译好的模块放到/lib/modules/2.6.18.8-xen/中。
sudo depmod 2.6.18.8-xen这一步没输出。
最后的sudo mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.18.8-xen.img 2.6.18.8-xen命令在当前目录生成initrd-2.6.18.8-xen.img,把这个文件拷贝到/boot/下面就可以了。
make linux-2.6-xen-config CONFIGMODE=menuconfig命令可以用
cd build-linux-2.6.18-xen_x86_64
后make menuconfig。
在xenXXX/buildYYY/.config中修改CONFIG_BLK_DEV_LOOP为CONFIG_BLK_DEV_LOOP=m;
而当用menuconfig时,修改Device Drivers ---> Block devices ---> Loopback device support为M即可。
刚装好xen后重启,运行 xm list 命令出现错误:
Error: Unable to connect to xend: Connection refused. Is xend running?
原因是xend没有运行,用命令
chkconfig --add xend
把xend添加进服务,重启或手动启动xend即可。
今天发现原来装xen时docs以前从来没有装上去过,这次终于解决:
开始提示说是没装latex,但rhel5的源中没有latex,只有tetex,于是装上了tetex,接下来又提示fig2dev这个包没装上,搞了半天,找不着这个包,最后在rpmfind上找到了,原来真正的名字是transfig,装上后终于把xen的docs搞定了
Post a Comment
Subscribe to Post Comments [Atom]
<< Home