Added ubuntu iscsi support
authorPravin Shinde <pravin@black-perl.(none)>
Fri, 14 Aug 2009 13:03:05 +0000 (15:03 +0200)
committerPravin Shinde <pravin@black-perl.(none)>
Fri, 14 Aug 2009 13:03:05 +0000 (15:03 +0200)
added rescue shells
improved the boot time menues

D/D.conf
D/D/DL/live
D/D/debian.bko.tmpl
D/U/U9/casper
D/U/U9/fdisk [new file with mode: 0755]
D/U/U9/generate_initrd.sh
D/U/U9/strace [new file with mode: 0755]
D/U/ubuntu.bko.tmpl
D/pxeknife/pxeknife.conf
pxelinux.cfg/default

index 62b0fb7..5026eca 100644 (file)
--- a/D/D.conf
+++ b/D/D.conf
@@ -1,6 +1,7 @@
-MENU TITLE --== BKO (boot.kernel.org) ==--
-PROMPT 0
-TIMEOUT 100 #this is optional - will start the default after 10 seconds
+DEFAULT menu.c32
+    PROMPT 0
+    TIMEOUT 100 #this is optional - will start the default after 10 seconds
+    MENU TITLE --== BKO (boot.kernel.org) ==--
 
 LABEL rootmenu
        MENU LABEL <---- Root Menu
@@ -11,14 +12,24 @@ LABEL rootmenu
     kernel menu.c32
        append pxelinux.cfg/main
 
-LABEL D-DSL
-       MENU LABEL Damm small linux --->
-    TEXT HELP
-        Boot Damm Small Linux
-        This is 50MB linux with GUI and most common softwares.
+LABEL D-debian
+    MENU DEFAULT
+       MENU LABEL debian --->
+       TEXT HELP
+        Boot Debian live CD 
     ENDTEXT
        kernel menu.c32
-       append D/dsl/dsl.conf
+       append D/D/debian.conf
+
+LABEL D-ubuntu
+       MENU LABEL Ubuntu --->
+       TEXT HELP
+        Boot Ubuntu
+        Does not work correctly, some problem with squashfs
+        So, boot it on your own risk
+    ENDTEXT
+       kernel menu.c32
+       append D/U/ubuntu.conf
 
 LABEL D-knoppix
        MENU LABEL Knoppix --->
@@ -30,14 +41,15 @@ LABEL D-knoppix
     kernel menu.c32
        append D/K/knoppix.conf
 
-LABEL D-debian
-    MENU DEFAULT
-       MENU LABEL debian --->
-       TEXT HELP
-        Boot Debian live CD 
+
+LABEL D-DSL
+       MENU LABEL Damm small linux --->
+    TEXT HELP
+        Boot Damm Small Linux
+        This is 50MB linux with GUI and most common softwares.
     ENDTEXT
        kernel menu.c32
-       append D/D/debian.conf
+       append D/dsl/dsl.conf
 
 
 LABEL D-red-hat
@@ -50,13 +62,14 @@ LABEL D-red-hat
        append default
        append D/R/red_hat.conf
 
-LABEL D-ubuntu
-       MENU LABEL Ubuntu --->
+
+LABEL pxeknife 
+       MENU LABEL pxeknife --->
        TEXT HELP
-        Boot Ubuntu
-        Does not work correctly, some problem with squashfs
-        So, boot it on your own risk
+        utilities from pxeknife for memory tests, hard drive utils
+        ntfs tools and meny more...
     ENDTEXT
        kernel menu.c32
-       append D/U/ubuntu.conf
+       append default
+       append D/pxeknife/pxeknife.conf
 
index 4e20811..f9362a0 100755 (executable)
@@ -19,6 +19,9 @@ USERNAME="user"
 USERFULLNAME="Live user"
 HOSTNAME="host"
 
+export RESCUEBREAK="No"
+
+
 mkdir -p "${mountpoint}"
 
 # Create /etc/mtab for debug purpose and future syncs
@@ -93,6 +96,9 @@ Arguments ()
                 echo "found argument iscsifs here ${ISCSIFS}"
                                ;;
 
+            rescuebreak)
+                export RESCUEBREAK="Yes" 
+                ;;
 
                        target=*)
                                TARGET="${ARGUMENT#target=}"
@@ -782,6 +788,8 @@ nameserver 128.255.1.3" > /etc/resolv.conf
                rc=0
        fi
 
+    echo "Giving rescue shell.... type exit when finished"
+    /bin/bash
        log_end_msg
        return ${rc}
 }
@@ -821,7 +829,7 @@ do_iscsimount ()
         sync
        done
 #   export iscsidevice=`fdisk -l 2> /dev/null | grep "724 MB" | cut -d' ' -f2 | cut -d':' -f1`
-#   mount -t iso9660 "${iscsidevice}" "${mountpoint}"
+   mount -t iso9660 "${iscsidevice}" "${mountpoint}"
     rc=${?}
     sync
     sleep 2
@@ -1685,6 +1693,13 @@ mountroot ()
                fi
        fi
 
+    if [ "${RESCUEBREAK}" = "Yes" ]; then
+        echo "#################################################################"
+        echo "#### giving rescue shell, you can execute any commands here #####"
+        echo "#### When done, type exit, boot process will resume :-)     #####"
+        echo "#################################################################"
+        /bin/sh
+    fi
        if [ -z "${livefs_root}" ]
        then
                panic "Unable to find a medium containing a live file system"
index 8313694..efa3048 100644 (file)
@@ -43,3 +43,13 @@ label debian-live-501-local-iscsi
        append netboot=http boot=live union=aufs iscsifs=P_ISCSI_LOCATION_LOCAL target=debian.5.0 initrd=D/D/DL/initrd1.img
     IPAPPEND 3
 
+label DL5-local-iscsi-rescue
+       MENU LABEL Debian live 501 i386 - iscsi - rescue 
+    TEXT HELP
+        Boots the debian live-5.0.1 for i386
+        It uses the iscsi and uploads ISO for booting and gives rescue shell
+    ENDTEXT
+       kernel D/D/DL/vmlinuz1
+       append netboot=http boot=live union=aufs iscsifs=P_ISCSI_LOCATION_LOCAL target=debian.5.0 initrd=D/D/DL/initrd1.img rescuebreak
+    IPAPPEND 3
+
index 907e508..c633068 100644 (file)
@@ -10,6 +10,7 @@ root_persistence="casper-rw"
 home_persistence="home-rw"
 root_snapshot_label="casper-sn"
 home_snapshot_label="home-sn"
+export RESCUEBREAK="No"
 
 USERNAME=casper
 USERFULLNAME="Live session user"
@@ -36,6 +37,8 @@ parse_cmdline() {
                 export PERSISTENT="Yes" ;;
             nopersistent)
                 export PERSISTENT="" ;;
+            rescuebreak)
+                export RESCUEBREAK="Yes" ;;
             union=*)
                 export UNIONFS="${x#union=}";;
             ip*)
@@ -200,6 +203,9 @@ do_netmount() {
     fi
 
     [ "$quiet" != "y" ] && log_end_msg
+
+    echo "Giving rescue shell.... type exit when finished"
+    /bin/bash
     return ${rc}
 }
 
@@ -221,64 +227,43 @@ do_nfsmount() {
     return ${rc}
 }
 
-do_iscsifsmount() {
-    # objectives: 
-    # Setup networking.
-    # Find the location from which we need to get the ISO.
-    # Mount the ISO.
-    rc=1
-
-#      ifconfig lo 127.0.0.1 up
-#      ifconfig eth0 up
-#    echo "The ip configuration is $ip"
-#    myip=`echo $ip | cut -d: -f1`
-#    echo "Using ip address $myip"
-#    mynm=`echo $ip | cut -d: -f4`
-#    echo "Using Netmask $mynm"
-#    mygw=`echo $ip | cut -d: -f3`
-#    echo "Using gateway ip $mygw"
-#    ifconfig eth0 $myip netmask $mynm 
-#    echo "verify the ip address"
-#    ifconfig eth0
-
-#    echo "setting route"
-#    route add default gw $mygw 
-
-
-       echo  "passed on path is ${ISCSIFS}" 
-       echo "The location of ubuntu iso  is $ISO_PATH" 
-       echo "mounting CDROM" 
-
-
-#      losetup -r /dev/loop0 $FILEPATH
-#      busybox mount -t iso9660 $FILEPATH "${mountpoint}" -o loop -o ro
+do_iscsifsmount ()
+{
+       rc=1
 
     echo "inside iscsimount" 
             
-
-    modprobe scsi_transport_iscsi
-    modprobe libiscsi
-    modprobe iscsi_tcp
     insmod /modules/libcrc32c.ko
     insmod /modules/crc32c.ko
-    insmod /modules/ib_iser.ko
+    modprobe scsi-transport-iscsi
+    modprobe libiscsi
+    modprobe iscsi_tcp
     mkdir /var/run
     /sbin/iscsid
+    sleep 4
     iscsiadm -m discovery -t st -p "${ISCSIFS}"
+    sleep 4
     targetname=`iscsiadm -m node | grep "${TARGET}" | cut -d' ' -f2`
     iscsiadm -m node --targetname "${targetname}" --portal "${ISCSIFS}" --login
-    sleep 2
-    mount -t iso9660 /dev/sdb "${mountpoint}"
+#    dmesg > /messages
+    sync
+       i=0
+#   iscsiadm -m session -P 3 | grep "attached scsi disk"
+    export iscsidevice=/dev/disk/by-label/Ubuntu\\x209.04\\x20i386
+       while [ "$i" -lt 160 ]
+       do
+        ls -l "${iscsidevice}" && break
+               i="$(($i + 1))"
+        echo "waiting for iscsi disk to appear $i"
+               sleep 1
+        sync
+       done
+   mount -t iso9660 "${iscsidevice}" "${mountpoint}"
     rc=${?}
-
-       # test if knoppix is there
-       if test -d /cdrom/casper
-       then
-               echo "successfully mounted the Image" >> /output
-               return 0
-       fi
-       return ${rc}
-
+    sync
+    sleep 2
+    rc=0
+    return $rc
 }
 
 
@@ -696,6 +681,13 @@ mountroot() {
         done
     fi
 
+    if [ "${RESCUEBREAK}" = "Yes" ]; then
+        echo "#################################################################"
+        echo "#### giving rescue shell, you can execute any commands here #####"
+        echo "#### When done, type exit, boot process will resume :-)     #####"
+        echo "#################################################################"
+        /bin/sh
+    fi
     if [ -z "${livefs_root}" ]; then
         panic "Unable to find a medium containing a live file system"
     fi
diff --git a/D/U/U9/fdisk b/D/U/U9/fdisk
new file mode 100755 (executable)
index 0000000..19805a2
Binary files /dev/null and b/D/U/U9/fdisk differ
index 9a9123e..cd4f497 100755 (executable)
@@ -17,6 +17,8 @@ cd ..
 
 echo "coping the needed files..."
 
+cp strace mpoint/bin/
+
 cp run-init mpoint/bin/
 chmod 777 mpoint/bin/run-init
 
@@ -37,12 +39,11 @@ mkdir mpoint/etc/iscsi
 cp iscsi/iscsid.conf mpoint/etc/iscsi/
 cp iscsi/initiatorname.iscsi mpoint/etc/iscsi/
 cp iscsi/tools/* mpoint/sbin/
+cp fdisk mpoint/sbin/
 
 mkdir mpoint/modules
 cp modules/* mpoint/modules/
 
-
-
 sudo chown -R root.root mpoint
 cd mpoint
 echo "creating initrd from new system filesystem"
diff --git a/D/U/U9/strace b/D/U/U9/strace
new file mode 100755 (executable)
index 0000000..4587271
Binary files /dev/null and b/D/U/U9/strace differ
index 2b12993..54926a1 100644 (file)
@@ -42,3 +42,13 @@ label ubuntu904desktopi386-iscsi
        append file=/cdrom/preseed/ubuntu.seed netboot=iscsi boot=casper iscsifs=P_ISCSI_LOCATION_LOCAL target=ubuntu.iso initrd=D/U/U9/initrd.gz
     IPAPPEND 3
 
+label ubuntu904desktopi386-iscsi-rescue
+       MENU LABEL Ubuntu 9.04 Desktop i386 - iscsi - rescue
+    TEXT HELP
+       Boot ubuntu 9.04 Desktop 
+       It uses iscsi for booting also gives rescue shell
+    ENDTEXT
+       kernel D/U/U9/vmlinuz
+       append file=/cdrom/preseed/ubuntu.seed netboot=iscsi boot=casper iscsifs=P_ISCSI_LOCATION_LOCAL target=ubuntu.iso initrd=D/U/U9/initrd.gz rescuebreak
+    IPAPPEND 3
+
index 31c1763..a7d738d 100644 (file)
@@ -3,13 +3,13 @@ PROMPT 0
 TIMEOUT 100 #this is optional - will start the default after 10 seconds
 
 LABEL rootmenu
-       MENU LABEL <---- Root Menu
+       MENU LABEL <---- BKO Menu
     TEXT HELP
-        Go back to boot time menu
-        You can boot from local hard-disk from there.
+        Go back to BKO menu
+        You can select any distribution to boot from here.
     ENDTEXT
     kernel menu.c32
-       append pxelinux.cfg/main
+       append D/D.conf
 
 LABEL D/pxeknife-hd
        MENU LABEL Harddrive Utils --->
index bf312b4..76832fe 100755 (executable)
@@ -12,14 +12,24 @@ LABEL rootmenu
     kernel menu.c32
        append pxelinux.cfg/main
 
-LABEL D-DSL
-       MENU LABEL Damm small linux --->
-    TEXT HELP
-        Boot Damm Small Linux
-        This is 50MB linux with GUI and most common softwares.
+LABEL D-debian
+    MENU DEFAULT
+       MENU LABEL debian --->
+       TEXT HELP
+        Boot Debian live CD 
     ENDTEXT
        kernel menu.c32
-       append D/dsl/dsl.conf
+       append D/D/debian.conf
+
+LABEL D-ubuntu
+       MENU LABEL Ubuntu --->
+       TEXT HELP
+        Boot Ubuntu
+        Does not work correctly, some problem with squashfs
+        So, boot it on your own risk
+    ENDTEXT
+       kernel menu.c32
+       append D/U/ubuntu.conf
 
 LABEL D-knoppix
        MENU LABEL Knoppix --->
@@ -31,14 +41,15 @@ LABEL D-knoppix
     kernel menu.c32
        append D/K/knoppix.conf
 
-LABEL D-debian
-    MENU DEFAULT
-       MENU LABEL debian --->
-       TEXT HELP
-        Boot Debian live CD 
+
+LABEL D-DSL
+       MENU LABEL Damm small linux --->
+    TEXT HELP
+        Boot Damm Small Linux
+        This is 50MB linux with GUI and most common softwares.
     ENDTEXT
        kernel menu.c32
-       append D/D/debian.conf
+       append D/dsl/dsl.conf
 
 
 LABEL D-red-hat
@@ -51,13 +62,14 @@ LABEL D-red-hat
        append default
        append D/R/red_hat.conf
 
-LABEL D-ubuntu
-       MENU LABEL Ubuntu --->
+
+LABEL pxeknife 
+       MENU LABEL pxeknife --->
        TEXT HELP
-        Boot Ubuntu
-        Does not work correctly, some problem with squashfs
-        So, boot it on your own risk
+        utilities from pxeknife for memory tests, hard drive utils
+        ntfs tools and meny more...
     ENDTEXT
        kernel menu.c32
-       append D/U/ubuntu.conf
+       append default
+       append D/pxeknife/pxeknife.conf