Changeset 611 in MondoRescue for branches/2.0.8


Ignore:
Timestamp:
Jun 2, 2006, 11:48:53 PM (18 years ago)
Author:
bcornec
Message:

merge -r 606:610 $SVN_M/branches/stable
(mindi fixes for RH4+swap label + support for interface name in PXE)

Location:
branches/2.0.8
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2.0.8/mindi/README.pxe

    r576 r611  
     1$Id$
     2
    13README for mondo/mindi usage with PXE
    24
     
    911label mondo
    1012        kernel vmlinuz-mondo
    11         append initrd=initrd-mondo load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=36864 rw root=/dev/ram iso_mode acpi=off apm=off devfs=nomount exec-shield=0 pxe [prefix="machine"] [ipconf=(ipadr:netmask:broadcast:gateway|dhcp)] [ping=#] ...
     13        append initrd=initrd-mondo load_ramdisk=1 prompt_ramdisk=0 ramdisk_size=36864 rw root=/dev/ram iso_mode acpi=off apm=off devfs=nomount exec-shield=0 pxe [prefix="machine"] [ipconf=(ipdev:ipadr:netmask:broadcast:gateway|ipdev:dhcp)] [ping=#] ...
     14
     15ipdev is the device name (e.g. eth2)
     16ipadr is the IP Address (e.g. 192.168.1.1)
     17netmask is the Netmask (e.g. 255.255.255.0)
     18broadcast is the Network broadcast (e.g. 192.168.1.255)
     19gateway is the default gateway (e.g. 192.168.1.254)
     20dhcp is a keyword. Using it will provide all the previous 4 values to activate the LAN interface.
    1221
    1322The initrd and kernel file come rom the first bootable media
     
    2534Without prefix keyword, the name of the images used during archiving with the -p option will be used (they may differ). If -p wasn't used then the name mondorescue-1.iso, ... will be used.
    2635
    27 During boot mondorestore will start your NFS configuration and mount mondo's content from the network rather than from a physical media. You may alter the IP configuration stored from the original machine by passing the ipconf option describing respectively the IP address, netmask, broadcast and default gateway you want to setup for the machine, separated by ':'. Or alternatively, you may specify the dhcp keyword so that a DhCP request is made to get those information. On some configurations, you may also want to increase the number of ping queries made before the NFS mount, which is of 3 by default, using the ping option and give the number you want.
     36During boot mondorestore will start your NFS configuration and mount mondo's content from the network rather than from a physical media. You may alter the IP configuration stored from the original machine by passing the ipconf option describing respectively the IP address, netmask, broadcast and default gateway you want to setup for the machine, separated by ':'. Or alternatively, you may specify the dhcp keyword so that a DHCP request is made to get those information. In the 2 cases, you have to mention on which physical interface those parameters should apply. On some configurations, you may also want to increase the number of ping queries made before the NFS mount, which is of 3 by default, using the ping option and give the number you want.
    2837
    2938Please report any problem around that tool to bruno@mondorescue.org
    3039
     402006-06-02 ipdev added to allow redeployment on another interface
    31412005-12-18 new ipconf and ping option
    32422005-12-14 detailed explanations on where to find initrd and kernel
  • branches/2.0.8/mindi/mindi

    r586 r611  
    13141314   
    13151315    if [ -d "/proc/lvm" ] || [ -d "/dev/mapper" ]; then
    1316     echo -en "\rAnalyzing LVM...\r"
    1317     all_partitions=`$MINDI_LIB/analyze-my-lvm | fgrep ">>>" | cut -d' ' -f2-32`
     1316        echo -en "\rAnalyzing LVM...\r"
     1317        all_partitions=`$MINDI_LIB/analyze-my-lvm | fgrep ">>>" | cut -d' ' -f2-32`
    13181318    fi
    13191319    all_partitions="$all_partitions `ListAllPartitions 2> /dev/null`"
     
    13261326    for c_p in $all_partitions ; do
    13271327#        echo "c_p = $c_p" > /dev/stderr
    1328     [ "`echo "/dev/floppy /dev/fd0h1440 /dev/fd0H1440 /dev/cdrom /dev/cdrom/cdrom /dev/cdrom/cdrom1 /dev/cdrom/cdrom2 /dev/cdrom0 /dev/cdrom1 /dev/cdrom2 /dev/cdrom3 /dev/cdrw" | fgrep "$c_p"`" != "" ] || [ "`echo "$c_p" | fgrep "/dev/scd"`" != "" ] || [ "`echo "$c_p" | fgrep "/dev/ram"`" != "" ] || [ "`echo "$c_p" | grep ":"`" != "" ] || [ "`echo "$c_p" | fgrep ":/"`" != "" ] && continue
     1328        [ "`echo "/dev/floppy /dev/fd0h1440 /dev/fd0H1440 /dev/cdrom /dev/cdrom/cdrom /dev/cdrom/cdrom1 /dev/cdrom/cdrom2 /dev/cdrom0 /dev/cdrom1 /dev/cdrom2 /dev/cdrom3 /dev/cdrw" | fgrep "$c_p"`" != "" ] || [ "`echo "$c_p" | fgrep "/dev/scd"`" != "" ] || [ "`echo "$c_p" | fgrep "/dev/ram"`" != "" ] || [ "`echo "$c_p" | grep ":"`" != "" ] || [ "`echo "$c_p" | fgrep ":/"`" != "" ] && continue
    13291329        [ "`echo "/dev/scd0 /dev/scd1 /dev/sr0 /dev/sr1 /dev/cdrom /dev/cdrom1" | fgrep "$c_p"`" ] && continue
    1330     [ "`echo "$c_p" | grep -x "/dev/cdroms.*"`" ] && continue
    1331     if [ -h "$c_p" ] && [ "`echo "$c_p" | fgrep "/dev/hd"`" = "" ] && [ "`echo "$c_p" | fgrep "/dev/sd"`" = "" ] && [ "`echo "$c_p" | fgrep "/dev/md"`" = "" ] ; then
    1332         current_partition=`ResolveSoftlink $c_p`
    1333         [ "`echo "$current_partition" | fgrep "/dev/mapper"`" != "" ] && current_partition="$c_p"
    1334         [ "`echo "/dev/scd0 /dev/scd1 /dev/sr0 /dev/sr1 /dev/cdrom /dev/cdrom1" | fgrep "$current_partition"`" ] && continue
    1335     else
    1336         current_partition="$c_p"
    1337     fi
    1338     [ "$c_p" = "none" ] && continue
    1339     absolute_partition=`ResolveSoftlink $c_p`
    1340     partition_mountpt=`tr -s '\t' ' ' < $MY_FSTAB | /bin/grep -w "$current_partition" | /bin/grep -vx " *#.*" | $AWK '{print $2}' | head -n1`
    1341 
    1342     # This part tries to retrieve the correct device from a LABEL line in /etc/fstab
    1343     # current_partition contains only first column of /etc/fstab
    1344     if [ "`echo "$current_partition" | /bin/grep -f -i "LABEL="`" != "" ] ; then
    1345         str_to_find_fmt_with=$current_partition
    1346         redhat_label=`echo "$current_partition" | /bin/cut -d'=' -f2`
    1347         actual_dev=""
    1348 
     1330        [ "`echo "$c_p" | grep -x "/dev/cdroms.*"`" ] && continue
     1331        if [ -h "$c_p" ] && [ "`echo "$c_p" | fgrep "/dev/hd"`" = "" ] && [ "`echo "$c_p" | fgrep "/dev/sd"`" = "" ] && [ "`echo "$c_p" | fgrep "/dev/md"`" = "" ] ; then
     1332            current_partition=`ResolveSoftlink $c_p`
     1333            [ "`echo "$current_partition" | fgrep "/dev/mapper"`" != "" ] && current_partition="$c_p"
     1334            [ "`echo "/dev/scd0 /dev/scd1 /dev/sr0 /dev/sr1 /dev/cdrom /dev/cdrom1" | fgrep "$current_partition"`" ] && continue
     1335        else
     1336            current_partition="$c_p"
     1337        fi
     1338        [ "$c_p" = "none" ] && continue
     1339        absolute_partition=`ResolveSoftlink $c_p`
     1340        partition_mountpt=`tr -s '\t' ' ' < $MY_FSTAB | /bin/grep -w "$current_partition" | /bin/grep -vx " *#.*" | $AWK '{print $2}' | head -n1`
     1341
     1342        # This part tries to retrieve the correct device from a LABEL line in /etc/fstab
     1343        # current_partition contains only first column of /etc/fstab
     1344        if [ "`echo "$current_partition" | /bin/grep -i "LABEL="`" != "" ]; then
     1345            str_to_find_fmt_with=$current_partition
     1346            redhat_label=`echo "$current_partition" | /bin/cut -d'=' -f2`
     1347            actual_dev=""
     1348   
    13491349        # 1st try : blkid, the good way
    1350         if [ -x "/sbin/blkid" ] ; then
     1350        if [ -x "/sbin/blkid" ]; then
    13511351            actual_dev=`/sbin/blkid | /bin/grep "$current_partition" | /bin/cut -d':' -f1`
    13521352        fi
    13531353
    13541354        # 2nd try, which works on a standard partition (ext2/3), but not on swap
    1355         if [ "x$actual_dev" = "x" ] ; then
    1356             actual_dev=`/bin/mount -l | /bin/grep " [$redhat_label]" | /bin/cut -d' ' -f1`
     1355        if [ "x$actual_dev" = "x" ]; then
     1356            actual_dev=`/bin/mount -l | /bin/grep "\[$redhat_label\]" | /bin/cut -d' ' -f1`
    13571357        fi
    13581358
    13591359        # 3rd try, with vol_id (which works with swap)
    1360         if [ "x$actual_dev" = "x" -a -x "/sbin/vol_id" ] ; then
     1360        if [ "x$actual_dev" = "x" -a -x "/sbin/vol_id" ]; then
    13611361                list_swaps=`cat /proc/swaps | /bin/grep "/dev/" | /bin/awk '{ print $1 }' `
    13621362                for dev_swap in $list_swaps ; do
    13631363                    dev_exists=`/sbin/vol_id $dev_swap | /bin/grep "$redhat_label"`
    1364                     if [ "x$dev_exists" != "x" ] ; then
     1364                    if [ "x$dev_exists" != "x" ]; then
    13651365                        actual_dev=$dev_swap
    13661366                        break;
     
    13701370
    13711371        # 4th try : pre-formated LABEL. Format is : LABEL=SWAP-mydevice. e.g. : LABEL=SWAP-hda5
    1372         if [ "x$actual_dev" = "x" -a  "`echo "$current_partition" | /bin/grep -i "LABEL=SWAP"`" != ""] ; then
     1372        if [ "x$actual_dev" = "x" -a  _"`echo $current_partition | /bin/grep -i 'LABEL=SWAP'`" != _"" ]; then
    13731373                try_dev="`echo "$redhat_label" | /bin/cut -d '-' -f2`"
    13741374                present_dev="`/bin/cat /proc/swaps | /bin/grep -w /dev/$try_dev`"
     
    13791379
    13801380        # Check if one of all those tries has known success
    1381         if [ "x$actual_dev" != "x" ] ; then
     1381        if [ "x$actual_dev" != "x" ]; then
    13821382                current_partition=$actual_dev
    13831383        else
     
    13891389
    13901390    partition_format=`$AWK '$1 == "'"$str_to_find_fmt_with"'" {print $3}' $MY_FSTAB`
    1391     if [ -d "/proc/lvm" ] && [ "`lvdisplay $current_partition 2> /dev/null`" ] ; then
     1391    if [ -d "/proc/lvm" ] && [ "`lvdisplay $current_partition 2> /dev/null`" ]; then
    13921392        partition_size="lvm"
    1393     elif [ -d "/dev/mapper" ] && [ "`lvm lvdisplay $current_partition 2> /dev/null`" ] ; then
     1393    elif [ -d "/dev/mapper" ] && [ "`lvm lvdisplay $current_partition 2> /dev/null`" ]; then
    13941394        partition_size="lvm"
    13951395    else
  • branches/2.0.8/mondo/mondo/common/libmondo-files.c

    r415 r611  
    12791279    fprintf(fout, "done\n");
    12801280    fprintf(fout, "ifconfig lo 127.0.0.1  # config loopback\n");
     1281    fprintf(fout, "ipdev=%s\n", nfs_dev);
    12811282    fprintf(fout, "ipaddress=%s\n", nfs_client_ipaddr);
    12821283    fprintf(fout, "ipnetmask=%s\n", nfs_client_netmask);
     
    12871288    fprintf(fout, "    echo $i | grep -qi ipconf= && ipconf=`echo $i | cut -d= -f2`\n");
    12881289    fprintf(fout, "done\n");
    1289     fprintf(fout, "if [ \"$ipconf\" = \"dhcp\" ]; then\n");
    1290     fprintf(fout, "    udhcpc -i %s\n", nfs_dev);
     1290    fprintf(fout, "grep -q \"dhcp\" \"$ipconf\"\n");
     1291    fprintf(fout, "if [ $? = 0 ]; then\n");
     1292    fprintf(fout, "    ipdev=`echo $ipconf | cut -d: -f1`\n");
     1293    fprintf(fout, "    udhcpc -i $ipdev\n", );
    12911294    fprintf(fout, "else\n");
    12921295    fprintf(fout, "    if [ \"$ipconf\" != \"\" ]; then\n");
    1293     fprintf(fout, "        ipaddress=`echo $ipconf | cut -d: -f1`\n");
    1294     fprintf(fout, "        ipnetmask=`echo $ipconf | cut -d: -f2`\n");
    1295     fprintf(fout, "        ipbroadcast=`echo $ipconf | cut -d: -f3`\n");
    1296     fprintf(fout, "        ipgateway=`echo $ipconf | cut -d: -f4`\n");
     1296    fprintf(fout, "        ipdev=`echo $ipconf | cut -d: -f1`\n");
     1297    fprintf(fout, "        ipaddress=`echo $ipconf | cut -d: -f2`\n");
     1298    fprintf(fout, "        ipnetmask=`echo $ipconf | cut -d: -f3`\n");
     1299    fprintf(fout, "        ipbroadcast=`echo $ipconf | cut -d: -f4`\n");
     1300    fprintf(fout, "        ipgateway=`echo $ipconf | cut -d: -f5`\n");
    12971301    fprintf(fout, "    fi\n");
    1298     fprintf(fout, "    ifconfig %s $ipaddress netmask $ipnetmask broadcast $ipbroadcast\n", nfs_dev);
     1302    fprintf(fout, "    ifconfig $ipdev $ipaddress netmask $ipnetmask broadcast $ipbroadcast\n");
    12991303    fprintf(fout, "    route add default gw $ipgateway\n");
    13001304    fprintf(fout, "fi\n");
  • branches/2.0.8/mondo/mondo/mondorestore/mondo-restore.c

    r576 r611  
    31573157            "to the Mondo mailing list when you are seeking technical    ");
    31583158    log_msg(0,
    3159             "support. Without it, we can't help you.               - Hugo");
     3159            "support. Without it, we can't help you.            - DevTeam");
    31603160    log_msg(0,
    31613161            "------------------------------------------------------------");
Note: See TracChangeset for help on using the changeset viewer.