Index: /drbl-virt/install.sh
===================================================================
--- /drbl-virt/install.sh	(revision 184)
+++ /drbl-virt/install.sh	(revision 185)
@@ -23,4 +23,6 @@
 
 mkdir -p $Work_Home
+mkdir $Work_Home/etc
+mkdir $Work_Home/.tmp
 cp -fr $Now_Path/sbin $Work_Home/
 cp -fr $Now_Path/conf $Work_Home/
Index: /drbl-virt/sbin/add_value
===================================================================
--- /drbl-virt/sbin/add_value	(revision 185)
+++ /drbl-virt/sbin/add_value	(revision 185)
@@ -0,0 +1,21 @@
+#!/bin/bash                                                                                                      
+# Program:
+#   Add ip & hostname($1) to $2
+#   $1=/opt/drbl-virt/etc/IP_VM_ethX
+#   $2=/etc/drbl/IP_HOST_TABLE
+# Author: 
+#   rock@nchc.org.tw
+# Version:
+#    1.0
+# History:
+#   2010/06/07  Rock    First release (1.0)
+
+
+# delete
+sed -i "/# drbl-virt $eth add/d" $2
+sed -i "/# drbl-virt $eth end/d" $2
+
+#
+echo "# Crawlzilla $eth add" >> $2
+cat $1 >> $2
+echo "# Crawlzilla $eth end" >> $2
Index: /drbl-virt/sbin/drbl_virt.sh
===================================================================
--- /drbl-virt/sbin/drbl_virt.sh	(revision 184)
+++ /drbl-virt/sbin/drbl_virt.sh	(revision 185)
@@ -13,5 +13,4 @@
 source $Work_Path/functions_drbl_virt
 # [Main]
-install_drbl-virt_dir
 cpu_check
 check_systemInfo
Index: /drbl-virt/sbin/drbl_xen_patch.sh
===================================================================
--- /drbl-virt/sbin/drbl_xen_patch.sh	(revision 184)
+++ /drbl-virt/sbin/drbl_xen_patch.sh	(revision 185)
@@ -35,5 +35,5 @@
 # == Modify PXE booting menu ==
 # if menu doesn't has drbl-virt, then add it
-cat /opt/drbl/sbin/generate-pxe-menu | grep drbl-virt
+cat /opt/drbl/sbin/generate-pxe-menu | grep "label drbl-virt"
 if [  $? != 0 ]; then
 # backup generate-pxe-menu
@@ -68,5 +68,5 @@
 # == Patch /usr/bin/mkpxeinitrd-net (1)Xen network scripts (2)command (3)modules ==
 # backup mkpxeinitrd-net. if already has "drbl-virt add", dones't sed
-cat /usr/bin/mkpxeinitrd-net | grep "drbl-virt add"
+cat /usr/bin/mkpxeinitrd-net | grep "# drbl-virt add"
 if [ $? != 0 ]; then
 cp /usr/bin/mkpxeinitrd-net /usr/bin/mkpxeinitrd-net.drbl-virt_bak
@@ -133,16 +133,11 @@
 fi
 
-# = 4. Re-deploy drbl client =
-# == Cheange Xen Kernel ==
-echo "/opt/drbl/sbin/drblsrv-offline -s $Xen_Kernel"
-/opt/drbl/sbin/drblsrv-offline -s $Xen_Kernel                                                                                                                        
-echo ""
-# == Re-delpoy drbl client ==
-echo "Re-delpoy drbl client"
-echo "/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf"
-/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf
-echo ""
-
-# = 5. enable xend xendomains daemon afterr drblpush =
+# = 4. enable xend xendomains daemon afterr drblpush =
 # /opt/drbl/sbin/drbl-client-service xend on
 
+# = 5. cp xen kernel & initrd to /home/domains =
+if [ ! -e /home/domains ]; then
+    mkdir /home/domains
+fi
+cp /boot/*{Xen_Kernel}* /home/domains
+
Index: /drbl-virt/sbin/drbl_xen_repush.sh
===================================================================
--- /drbl-virt/sbin/drbl_xen_repush.sh	(revision 184)
+++ /drbl-virt/sbin/drbl_xen_repush.sh	(revision 185)
@@ -15,5 +15,5 @@
 # [Main]
 
-# = 0. Variables setup =
+# = 1. Variables setup =
 # == Get DRBL eth ==
 eths=""
@@ -52,28 +52,32 @@
     generate_Xen_MAC_address
      
-    # == Add VM IP to dhcpd.conf  ==
+    # == Add VM IP to /etc/drbl/IP_HOST_TABLE  ==
     VM_IPs=$(cat /opt/drbl-virt/etc/IP_VM_$eth | awk '{print $1}')
+    VM_IPs_nu=$(cat /opt/drbl-virt/etc/IP_VM_eth1 | awk '{print $1}' | wc -w)
     VM_hosts=$(cat /opt/drbl-virt/etc/IP_VM_$eth | awk '{print $2}')
     VM_MACs=$(cat /opt/drbl-virt/etc/macadr-VM-$eth.txt)
-    add_VM_dhcpd_conf
-     
-    # == Add VM IP to exports  ==
-    #add_VM_nfs_exportd
-     
-    # == Add VM IP to ypserv.securenets  ==
-    #add_VM_ypserv_securenets
-     
-     
+    # delete duplicating value(ip,hostname) in IP_HOST_TABLE
+    if [ -e /etc/drbl/IP_HOST_TABLE ]; then
+    $Work_Path/duplicate_del /etc/drbl/IP_HOST_TABLE
+    fi
+    # add ip & hostname
+    $Work_Path/add_value /opt/drbl-virt/etc/IP_VM_$eth /etc/drbl/IP_HOST_TABLE
+    
+    # == Add Mac address to macadr-ethX.txt ==
+    if [ -e /etc/drbl/macadr-$eth.txt ]; then
+    $Work_Path/duplicate_del_MAC /etc/drbl/macadr-$eth.txt
+    fi
+
 done 
      
-# = 1. Copy VM fs =
-# Kernel & initrd -> /home/domains
-     
-     
-# = 2. Add NFS config =
-     
-# = 3. Add DHCP config =
-     
-# = 4. Add hosts and cp it to all drbl client =
-     
-# = 5. generate guest config file =     
+
+# = 2. Re-deploy drbl client =
+# == Cheange Xen Kernel ==   
+echo "/opt/drbl/sbin/drblsrv-offline -s $Xen_Kernel"
+/opt/drbl/sbin/drblsrv-offline -s $Xen_Kernel                                                                                                                        
+echo "" 
+# == Re-delpoy drbl client ==
+echo "Re-delpoy drbl client"           
+echo "/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf"
+/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf
+echo ""
Index: /drbl-virt/sbin/duplicate_del_MAC
===================================================================
--- /drbl-virt/sbin/duplicate_del_MAC	(revision 185)
+++ /drbl-virt/sbin/duplicate_del_MAC	(revision 185)
@@ -0,0 +1,49 @@
+#!/bin/bash
+# Program:
+#   Delete duplicating ip & hostname
+# Author: 
+#   Rock {waue, shunfa, rock}@nchc.org.tw
+# Version:
+#    1.0
+# History:
+#   2010/08/26  Rock    First release (1.0)
+
+# 刪掉空白行
+#sed -i '/^$/d' "$1"
+
+#read -p "cp - f $1 ${1}.old ; $?"
+cp $1 $1.$(date +%Y-%m-%d-%H-%M-%S).drbl-virt_bak 
+
+# Delete duplating VM IP
+for vm_ip in $(echo $VM_IPs)
+do
+    vm_ip_lines=$(cat -n $1 | grep $vm_ip | awk '{print $1}' )
+    # no duplicated vlaue, doesn't do it
+    if [ -n $vm_ip_lines ]; then
+        vm_ip_count=$(echo $vm_ip_lines | wc -w)
+
+        for (( i=1; i<=${VM_ip_count}; i++ ))
+        do
+            del_line=$(echo $vm_ip_lines | cut -d " " -f${i})
+            sed -i "${del_line}d" $1
+        done
+    fi
+done
+  
+# Dlete duplicating hostname in file
+for vm_host in $(echo $VM_hosts)
+do
+    # line numbers
+    vm_host_lines=$(cat -n $1 | grep "$vm_host" | awk '{print $1}')
+    # no duplicated vlaue, doesn't do it
+    if [ -n $vm_host_lines ]; then
+        vm_host_count=$(echo $vm_host_lines | wc -w)
+  
+        for (( i=1; i<=${vm_host_count}; i++ ))
+        do
+            del_line=$(echo $vm_host_lines | cut -d " " -f${i})
+            sed -i "${del_line}d" $1
+        done                                                                                                                                                             
+    fi
+done
+
Index: /drbl-virt/sbin/functions_drbl_virt
===================================================================
--- /drbl-virt/sbin/functions_drbl_virt	(revision 184)
+++ /drbl-virt/sbin/functions_drbl_virt	(revision 185)
@@ -70,12 +70,4 @@
 }   
 
-
-# [Create drbl-virt path]
-function install_drbl-virt_dir(){
-    mkdir -p $Work_Home/.tmp
-    mkdir -p $Work_Home/etc
-}
-
-
 # [Check Hypervisior]
 function check_hypervisior(){
@@ -219,4 +211,5 @@
 #echo "VM_IP_range=$VM_IP_range"
 }
+
 
 #function get_VM_prefix_name(){ 
@@ -317,18 +310,15 @@
 }
 
-function add_VM_dhcpd_conf(){
-# backup dhcpd.conf
-if [ -e /etc/dhcp3/dhcpd.conf ]; then
-cp -f /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.drbl-virt_bak
-fi
-
-subnet_lines=$(cat -n /etc/dhcp3/dhcpd.conf | grep $eth_network | awk '{print $1}')
-host_lines=$(cat -n /etc/dhcp3/dhcpd.conf | grep 'host ' | grep '{' | awk '{print $1}')
-
-for subnet_line in $subnet_lines
-do
-    host_lines cat -n /etc/dhcp3/dhcpd.conf | sed -n "$subnet_line,\$p" | grep 'host .* {' | awk '{print $1}'
-
-done
-
-}
+#function add_VM_dhcpd_conf(){
+## backup dhcpd.conf
+#if [ -e /etc/dhcp3/dhcpd.conf ]; then
+#cp -f /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.drbl-virt_bak
+#fi
+#subnet_lines=$(cat -n /etc/dhcp3/dhcpd.conf | grep $eth_network | awk '{print $1}')
+#host_lines=$(cat -n /etc/dhcp3/dhcpd.conf | grep 'host ' | grep '{' | awk '{print $1}')
+#
+#for subnet_line in $subnet_lines
+#do
+#    host_lines cat -n /etc/dhcp3/dhcpd.conf | sed -n "$subnet_line,\$p" | grep 'host .* {' | awk '{print $1}'
+#done
+#}
