CentOS升级内核及KVM安装(已试验,可行)

由于CentOS 默认内核为2.6.18,故需要升级内核

升级内核到2.6.27,很容易,但升级到2.6.28后的版本折腾了我很久

升级到2.6.27
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.gz 
tar zxvf linux-2.6.27.tar.gz -C /usr/src 
cd /usr/src/linux-2.6.27 
make menuconfig 
make 
make modules_install 
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.27-root (注意:目录i386是根据你的系统类型, 如果是64位系统, 那就很可能是x86_64) 
cp System.map /boot/System.map-2.6.27-root 
mkinitrd /boot/initrd-2.6.27-root.img 2.6.27

vi /etc/grub.conf
title CentOS (2.6.27)
        root (hd0,6)
        kernel /vmlinuz-2.6.27-root ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.27-root.img
title CentOS (2.6.18-92.1.18.el5)
        root (hd0,6)
        kernel /vmlinuz-2.6.18-92.1.18.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-92.1.18.el5.img
title CentOS (2.6.18-53.el5)
        root (hd0,6)
        kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /initrd-2.6.18-53.el5.img
title qrpeng windows xp
        rootnoverify (hd0,0)
        chainloader +1
reboot

升级到2.6.33
由于需要安装LVS,需要内核版本为2.6.28以上,于是开始升级新内核,折腾了很久,最后按照如下步骤搞定的:

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.tar.gz 
tar zxvf linux-2.6.33.tar.gz -C /usr/src 
cd /usr/src/linux-2.6.33 
make distclean
cp /boot/config-2.6.18-164.el5 .config 
make menuconfig 
修改.config文件,在.config文件搜索CONFIG_SYSFS_DEPRECATED_V2,会发现#CONFIG_SYSFS_DEPRECATED_V2 is notset这一行,将该行修改为CONFIG_SYSFS_DEPRECATED_V2=y
make all
make modules_install
make install
不要重新启动需要修改initrd

1.解压initrd

cp /boot/initrd-2.6.33.img /tmp
cd /tmp/
mkdir newinitrd
cd newinitrd/
zcat ../initrd-2.6.33.img |cpio -i
2,编辑init,删掉重复的两行
echo “Loading dm-region-hash.ko module”
insmod /lib/dm-region-hash.ko
echo “Loading dm-region-hash.ko module”
insmod /lib/dm-region-hash.ko
3,重新打包initrd

find .|cpio -c -o > ../initrd
cd ..
gzip -9 < initrd > initrd-2.6.33.img

initrd-2.6.33.img就是重新打包的initrd了,然后把initrd-2.6.33.img拷贝到/boot。

安装kernel-devel

http://ftp.yz.yamagata-u.ac.jp/pub/linux/Vine/VineSeed/i386/RPMS.main/ 或者http://fr.rpmfind.net/linux/RPM/fedora/devel/i386/Fedora_Project.html相应版本即可

安装KVM

开启SELinux
(如果你的SELinux被禁用,virt-install将不会正常工作)

system-config-securitylevel-tui

kvm安装
(a)检查CPU是否支持硬件虚拟化-运行命令

egrep ‘(vmx|svm)’ –color=always /proc/cpuinfo

(如果输出的结果包含 vmx,它是 Intel;如果包含 svm,它是 AMD。如果你甚么都得不到,那应你的系统并没有支持虚拟化的处理。)

(b)安装KVM和virtinst(一个创建虚拟机的工 具),我们运行

yum install kvm kmod-kvm qemu libvirt python-virtinst

然后重新启动系统:

Reboot

检查
使用下列命令检查KVM是否成功安装

virsh -c qemu:///system list

将会显示如下结果:

[root@server1 ~]# virsh -c qemu:///system list

Id Name State

———————————-

[root@server1 ~]#

如果在这里显示的是一个错误的信息,说明有些东西出现了问题。

桥接网络
1)假如你想客端在内联网上以个别一台主机出现,让整个网络看得见,你需要采用桥接网络。

yum install bridge-utils2)创建文件/etc/sysconfig/network-scripts/ifcfg-br0

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

TYPE=Bridge

BOOTPROTO=static

BROADCAST=192.168.0.255

IPADDR=192.168.0.100

NETMASK=255.255.255.0

NETWORK=192.168.0.0

ONBOOT=yes

注意将上面的IP地址配置为你本机的IP地址

3)修改/etc/sysconfig/network-scripts/ifcfg-eth0,蓝色信息注释掉,红色为新添加

vi /etc/sysconfig/network-scripts/ifcfg-eth0

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+

DEVICE=eth0

#BOOTPROTO=static

#BROADCAST=192.168.0.255

HWADDR=00:10:A7:05:AF:EB

#IPADDR=192.168.0.100

#NETMASK=255.255.255.0

#NETWORK=192.168.0.0

ONBOOT=yes

BRIDGE=br0

注意,此处一定要将eth0(即物理网卡,根据自己机器来确定名字)的IP地址要注释掉,否则配置不正确

KVM管理
GUI
安装 virt-viewer 或者virt-manager

yum install virt-viewer  virt-manager

以GUI安装OS
终端中输入 virt-manager 或者点击系统菜单:Applications—>System tools –>Virtual Machine Manager,将弹出GUI界面,利用该界面就很容易的安装新操作系统了。

注意,在此步执行前,请确保SELinux关闭或者是 permissive

管理客户机
可通过virt-manager或者virsh命令尽力管理

连接到virtual shell,运行

virsh –connect qemu:///system

进入后可用help命令寻求帮助

FAQ
如果新建客户机总是报错,说“Internal Error:Domain xxx didn’t show up”,是SELinux的问题,把SELinux设置permissive就可以了

 

在虚拟机中编译27内核时出现make: *** [_modinst_post] Error 137错误。

查了一下,是swap不够大,晕掉……

posted @ 2010-07-21 18:57  chinacloud  阅读(3614)  评论(2编辑  收藏  举报