source: drbl-virt/sbin/drbl_kvm_patch.sh @ 215

Last change on this file since 215 was 215, checked in by rock, 14 years ago

Add: KVM support (check KVM kernel)

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1#!/bin/bash
2# Program:
3#   Path DRBL evironment to support KVM
4# Author:
5#   Jazz, Rock {jazz, rock}@nchc.org.tw
6# Version:
7#    1.0
8# History:
9#   2010/10/18  Rock    First release (1.0)
10
11# [Source]
12source /opt/drbl-virt/conf/drbl-virt.conf
13source $Work_Path/functions_drbl_virt
14
15# [Main]
16# = 1. Patch DRBL xen env for client =
17# == Shutdown all drbl client ==
18echo -e "\nPlease shutdown all drbl client !!!"
19echo "You can use /opt/drbl/sbin/dcs to shutdown."
20read -p "Push [Enter] to continue......"
21
22# == check KVM Kernel version
23check_kvm
24
25# == Modify PXE booting menu ==
26# if menu doesn't has drbl-virt, then add it
27cat /opt/drbl/sbin/generate-pxe-menu | grep "label drbl-virt" >> /dev/null
28if [  $? != 0 ]; then
29# backup generate-pxe-menu
30cp /tftpboot/nbi_img/pxelinux.cfg/default /tftpboot/nbi_img/pxelinux.cfg/default.drbl-virt_bak
31cp /opt/drbl/sbin/generate-pxe-menu /opt/drbl/sbin/generate-pxe-menu.drbl-virt_bak
32
33generate_PXE_menu="/opt/drbl/sbin/generate-pxe-menu"
34declare -i modify_line=$(cat -n $generate_PXE_menu | grep 'label drbl' | awk 'NR==1 {print $1}')
35# delete default
36sed -i 's/^  MENU DEFAULT/  # MENU DEFAULT/g' $generate_PXE_menu
37# modify menu
38sed -i "${modify_line}i\label drbl-virt" $generate_PXE_menu
39modify_line=$modify_line+1
40sed -i "${modify_line}i\  MENU DEFAULT" $generate_PXE_menu
41modify_line=$modify_line+1
42sed -i "${modify_line}i\  # MENU HIDE" $generate_PXE_menu
43modify_line=$modify_line+1
44sed -i "${modify_line}i\  MENU LABEL DRBL-Virtualization ($KVM_Kernel)" $generate_PXE_menu
45modify_line=$modify_line+1
46sed -i "${modify_line}i\  kernel vmlinuz-pxe" $generate_PXE_menu
47modify_line=$modify_line+1
48sed -i "${modify_line}i\  append  initrd=initrd-pxe.img devfs=nomount drblthincli=off selinux=0 nomodeset"
49modify_line=$modify_line+1
50sed -i "${modify_line}i\  TEXT HELP" $generate_PXE_menu
51modify_line=$modify_line+1
52sed -i "${modify_line}i\  ENDTEXT" $generate_PXE_menu
53modify_line=$modify_line+1
54sed -i "${modify_line}i\ " $generate_PXE_menu
55fi
56
57
58# = 2. Patch DRBL initrd to support bridge =
59# == Patch /usr/bin/mkpxeinitrd-net (1)Xen network scripts (2)command (3)modules ==
60# backup mkpxeinitrd-net. if already has "drbl-virt add", dones't sed
61source $Work_Path/drbl_bridge_patch.sh
62
63
64# = 3. Load KVM module when booting =
65# for Debian & Ubuntu
66if [ -e /etc/modules ]; then
67    grep kvm /etc/modules
68    if [ $? -eq 1 ]; then
69       echo "kvm" >> /etc/modules
70    fi
71# for CentOS & Fedora
72elif [ -e /etc/sysconfig/modules ]; then
73    grep -r "modprobe kvm" /etc/sysconfig/modules/
74    if [ $? -eq 1 ]; then
75        cat  > /etc/sysconfig/modules/kvm.modules << EOF
76#!/bin/sh                 
77echo -n "Loading kvm module..."
78if $(/sbin/modprobe kvm)
79    then
80        echo "[SUCCESS]:"
81    else
82        echo "[FAILURE]:"
83fi
84EOF
85    chmod +x /etc/sysconfig/modules/kvm.modules
86    fi
87fi
88
89# = 4. Copy xen kernel & initrd to /home/domains =
90if [ ! -e /home/domains ]; then
91    mkdir /home/domains
92fi
93cp /tftpboot/nbi_img/vmlinuz-pxe /home/domains
94cp /tftpboot/nbi_img/initrd-pxe.img /home/domains
95
96
Note: See TracBrowser for help on using the repository browser.