[Zeffie-Users] Restore from CD

Zeffie zeffie at zeffie.net
Thu Feb 9 11:06:36 EST 2006


Don't use the raq4r cd...  use the raq4 or raq4i cd...  You can't make raid 
with just one drive.

Zeffie...
http://www.zeffie.com/
Cobalt RaQ Repairs, Development, and Maintenance.
Home of the Worlds Largest Collection of RaQ rpms
Cobalt Spam Filter, Security, Firewall, Anti Virus Products
US 734-446-0350 734-454-9117 US Toll Free 800-231-4459 UK 0208-150-6860
----- Original Message ----- 
From: "Gypsy Rogers" <gypsy at freeq.com>
To: <zeffie-users at zeffie.net>
Sent: Monday, February 06, 2006 10:50 AM
Subject: [Zeffie-Users] Restore from CD


>
> I've tried to restore onto a blank drive from CD and have been completly
> unsuccessful.... It looks like from what I'm seeing on the serial console
> that it's not even seeing the hard drive.
>
> This is a RAQ4r with only one drive connected to it.
>
> Below is what I'm seeing on my serial console, that last bit is a loop it
> falls into.
>
> Anyone have any clue what might be causing this?
>
> I've tried both the NetBSD restore from CD and the Sun Restore CD
>
> both with the same results
>
>
>
> echo /bto-sync/production/3100R_1.155/installer/scripts/safetynet
> + count=9
> + 
> file_fullpath=/bto-sync/production/3100R_1.155/installer/scripts/redhatdir
> + [ -z  ]
> + echo /bto-sync/production/3100R_1.155/installer/scripts/redhatdir
> + count=10
> + 
> file_fullpath=/bto-sync/production/3100R_1.155/installer/scripts/crackdict
> + [ -z  ]
> + echo /bto-sync/production/3100R_1.155/installer/scripts/crackdict
> + count=11
> +
> file_fullpath=/bto-sync/production/3100R_1.155/installer/scripts/mknetrcscripts
> + [ -z  ]
> + echo /bto-sync/production/3100R_1.155/installer/scripts/mknetrcscripts
> + count=12
> +
> file_fullpath=/bto-sync/production/3100R_1.155/installer/scripts/set_cmos_bootdev
> + [ -z  ]
> + echo /bto-sync/production/3100R_1.155/installer/scripts/set_cmos_bootdev
> + count=13
> + return 13
> + echo Found 13 script(s) to execute after installation.
> Found 13 script(s) to execute after installation.
> find_the_packages
> + find_the_packages
> + __find_the_file   /bto-sync/production/3100R_1.155/packages
> /test/NOW-20060206.01E575/BASE_PACKAGES
> + local hook=
> + local searched_files=
> + local dir=/bto-sync/production/3100R_1.155/packages
> + local outfile=/test/NOW-20060206.01E575/BASE_PACKAGES
> ls -f $dir
> ++ ls -f /bto-sync/production/3100R_1.155/packages
> + local all_files=.
> ..
> + local count=0
> + return 0
> + echo Found 0 packages(s) to install at end of build.
> Found 0 packages(s) to install at end of build.
>
> # [Why is this here?  Shouldn't it be in `setup_for_install' (suggested by
> # Doug).  -ttn, 1999/01/15 21:36:55]
> export RPMS=$PROJ_DIR/rpms
> + export RPMS=/bto-sync/production/3100R_1.155/rpms
> + RPMS=/bto-sync/production/3100R_1.155/rpms
>
> # Do the actual install script.  We use `-$-' to pass useful shell flags 
> like
> # "-xv" to the subshell.
> must $SHELL -$- ./cobalt_install
> + must /bin/sh -vx ./cobalt_install
> + /bin/sh -vx ./cobalt_install
> #! /bin/bash
> # ID: $Id: cobalt_install,v 1.91 2000/06/15 20:49:22 asun Exp $
> # Copyright (C) 1997-1999 Cobalt Networks, Inc.
> # All rights reserved.
> #
> # Description: Script for installing Linux on Cobalt boxes.
>
> . ./ifuncs                              # use the source, luke!
> + . ./ifuncs
> # Common -*- shell-script -*- functions for module `installer'
> # ID: $Id: ifuncs,v 1.52 2000/05/02 00:35:23 asun Exp $
> #
> # Copyright (C) 1999 Cobalt Networks, Inc.
> # All rights reserved.
> #
> # This file provides the following functions:
> #
> #    reverse
> #    must
> #    set_and_export_TMP_DIR
> #    setup_for_install
> #    inform
> #    find_the_qualify_scripts
> #    find_the_before_scripts
> #    find_the_core_rpms
> #    find_the_after_scripts
> #    find_the_packages
> #    run_scripts
> #    load_packages
> #    mount_all_filesystems
> #    umount_all_filesystems
> #    init_for_GM_yes
> #    verify_install
> #    do_final_hacks
> #
> # Notes:
> #
> # Functions that start with two underscores are considered "file static" 
> and
> # should not be used externally (this is why they are omitted from this 
> list).
> # See each function header for more info.
> #
> # Error handling: Functions that cause the entire script flow to terminate
> # non-successfully should use "exit 1".
>
> function reverse
> # $1 is a single string that is a list of elements.
> # Echo a single string that is the reverse of this list.
> {
>    local ret=""
>
>    for elem in $1 ; do ret="$elem $ret" ; done
>    echo "$ret"
> }
>
> function must
> # $1 is a command.
> # $2... are its args.
> # If the command is not successful, exit.
> {
>    "$@" || {
>        echo $0: "$@" failed. Terminating.
>        exit 1
>    }
> }
>
> function set_and_export_TMP_DIR
> {
>    : ${TMP_DIR:=/tmp}
>    export TMP_DIR
> }
>
> function __export_PRODUCT
> # Make sure the important `PRODUCT' env var is defined and exported.
> {
>    if [ ! -e release_spec -a ! -e release_spec.$PRODUCT -o -z "$PRODUCT" ]
>    then
>        echo Must set environment variable PRODUCT to be one of these:
>        echo release_spec.* | sed 's/release_spec./  /g'
>        echo Terminating.
>        exit 1
>    fi
>    export PRODUCT
> }
>
> function __set_RELSPEC
> # Find the release spec file relevant to the current product,
> # and set env var `RELSPEC' to it.
> {
>    if [ -e release_spec ]; then
>        echo Using deprecated release_spec
>        echo Using deprecated release_spec
>        echo Using deprecated release_spec'   'READ
>        echo Using deprecated release_spec
>        echo Using deprecated release_spec'   'YOUR
>        echo Using deprecated release_spec
>        echo Using deprecated release_spec'   'MAIL
>        echo Using deprecated release_spec
>        echo Using deprecated release_spec'    !!!!'
>        echo Using deprecated release_spec
>        RELSPEC=release_spec
>    else
>        RELSPEC=release_spec.${PRODUCT:?}
>    fi
> }
>
> function __get_list
> # $1 is a tag.
> {
>    # We use sed's `l' command because `__get_list' can be invoked
>    # from within backticks, which commits attrocities w/ whitespace.
>    # Do not move the initial grep after the sed -- it is first to
>    # summarily remove long comments that may be folded by `l' (sigh).
>    grep -v '^#' ${RELSPEC:?} \
>        | sed -n -e "/%begin $1/,/%end $1/ p" \
>        | grep -v '^%'
> }
>
> function __set_other_useful_variables
> # $1 is the temporary fstab file.
> # $2 is the temporary partition table file.
> # [This function name sucks.  -ttn, 1999/01/07 01:54:20]
> {
>    local fstab=$1
>    local ptable=$2
>    local raidtab=$3
>    local mkfs_opts=$4
>
>    # The infamous DOUG string... just provides some info.
>    # General Doug is part of company history.
>    export DOUG=" "
>    export DEVEL
>
>    # Get the project and the path to its repository.
>    : ${PROJECT:=fargo}
>    : ${PROJ_DIR:=/mnt/$PROJECT}
>    export PROJ_DIR
>
>    # See if this is an experimental build.
>    : ${EXP_BUILD:=no}
>    [ $EXP_BUILD = no ] || DOUG=${DOUG}'Experimental '${EXP_BUILD}' '
>
>    # See if this is a developer build
>    # [Is this still used?  -ttn, 1999/01/12 21:31:16]
>    : ${DEVEL:=no}
>    [ $DEVEL = yes ] && DOUG=$DOUG'Development '
>
>    # Check to make sure we have a legit directory...
>    if [ ! -d $PROJ_DIR ]; then
>        echo "Project directory $PROJ_DIR not found. Terminating."
>        exit 1
>    fi
>
>    # Check for the version of the release.
>    if [ ! -f ./CVS/Entries ]; then
>        echo "Can't find your CVS directory. Terminating."
>        exit 1
>    fi
>    export BUILD=`grep ^/$RELSPEC/ ./CVS/Entries | cut -f3 -d"/"`
>    : ${BUILD:=0}
>
>    LANGUAGE=`__get_list Languages`
>    RELEASE=`__get_list Release`
>    VENDOR=`__get_list Vendor`
>    CODENAME=`__get_list Codename`
>    TIME_ZONE=`__get_list Timezone`             # Why do we do this?
>    LOCALE=`__get_list Locale`
>    QUALIFY_SCRIPTS=`__get_list Qualify_Scripts`
>    BEFORE_SCRIPTS=`__get_list Before_Scripts`
>    AFTER_SCRIPTS=`__get_list After_Scripts`
>    PACKAGES=`__get_list Packages`
>
>    __get_list fstab > $fstab
>    __get_list mkfs_opts > $mkfs_opts
>    __get_list Partition_Table > $ptable
>    __get_list raidtab > $raidtab
>
>    CORE_RPMS=`__get_list Core_RPMs`
>
>    echo "Building ${VENDOR:=Cobalt} Linux${DOUG}Release $RELEASE
> ($CODENAME) build $BUILD for a $PRODUCT in $LANGUAGE"
> }
>
> function setup_for_install
> # $1 is a filename where a temporary fstab file is written.
> # $2 is a filename where a temporary partition table is written.
> # $3 is a filename where a temporary raidtab is written.
> {
>    __export_PRODUCT
>    __set_RELSPEC
>    __set_other_useful_variables $@
> }
>
> function inform
> # $1 is the first line of the LCD output.
> # $2 is the second line.
> # NOTE: Args should be short enough to be viewable on the LCD panel.
> {
>    echo "$1" "$2"
>    [ ${NET_BUILD:=no} = yes ] && /sbin/writelcd "$1" "$2"
>    true
> }
>
> function __inform_forever
> # $1 is a single string that is a list of elements.
> # Call `inform' on each successive pair, looping forever w/ 2s pause.
> {
>    local msg=$1
>
>    while true ; do
>        set $msg
>        while [ -n "$1" ] ; do
>            inform $1 $2
>            shift 2
>            sleep 2
>        done
>    done
> }
>
> function __find_the_file
> # $1 if given is a command, to be executed per script, that takes two
> #    arguments: file name and file fullpath.
> # $2 is the list of files we want to find.
> # $3 is a directory where we search for available files.
> # $4 is a filename collecting the fullpath of the file if found.
> {
>    local hook=$1
>    local searched_files=$2
>    local dir=$3
>    local outfile=$4
>
>    local all_files=`ls -f $dir`
>    local count=0
>
>    > $outfile
>
>    for file in $searched_files ; do
>        case $all_files in
>            *${file}*)
>                file_fullpath=$dir/$file
>                [ -z "$hook" ] || eval $hook $file $file_fullpath
>                echo $file_fullpath >> $outfile
>                count=$(( $count+1 ))
>                ;;
>            *)
> #               __inform_forever "
> #                       Cannot-find     $file
> #                       In-directory    $dir
> #                       PROJ_DIR:       $PROJ_DIR
> #                       "
> #               exit 1                  # never reached
>                while [ ! -e $dir/$file ]; do
>                        echo "Cannot-find $file in $dir"
>                        sleep 5
>                done
>                ;;
>        esac
>    done
>    return $count
> }
>
> function find_the_qualify_scripts
> # $1 if given is a command, to be executed per script, that takes two
> #    arguments: script name and script fullpath.
> {
>    __find_the_file "$1" "$QUALIFY_SCRIPTS" `pwd`/scripts \
>        ${TMP_DIR:?}/BASE_QUALIFY_SCRIPTS
>
>    echo "Found $? script(s) to execute prior to drive partitioning."
> }
>
> function find_the_before_scripts
> # $1 if given is a command, to be executed per script, that takes two
> #    arguments: script name and script fullpath.
> {
>    __find_the_file "$1" "$BEFORE_SCRIPTS" `pwd`/scripts \
>        ${TMP_DIR:?}/BASE_BEFORE_SCRIPTS
>
>    echo "Found $? script(s) to execute prior to installation."
> }
>
> function find_the_core_rpms
> # $1 if given is a command, to be executed per script, that takes two
> #    arguments: rpm name and rpm fullpath.
> {
>    __find_the_file "$1" "$CORE_RPMS" ${PROJ_DIR:?}/rpms \
>        ${TMP_DIR:?}/BASE_RPM_LIST
>
>    echo "Found $? rpm(s) for the $PRODUCT."
> }
>
> function find_the_after_scripts
> # $1 if given is a command, to be executed per script, that takes two
> #    arguments: script name and script fullpath.
> {
>    __find_the_file "$1" "$AFTER_SCRIPTS" `pwd`/scripts \
>        ${TMP_DIR:?}/BASE_AFTER_SCRIPTS
>
>    echo "Found $? script(s) to execute after installation."
> }
>
> function find_the_packages
> # $1 if given is a command, to be executed per script, that takes two
> #    arguments: script name and script fullpath.
> {
>    __find_the_file "$1" "$PACKAGES" ${PROJ_DIR:?}/packages \
>        ${TMP_DIR:?}/BASE_PACKAGES
>
>    echo "Found $? packages(s) to install at end of build."
> }
>
> function run_scripts
> # $1 is a file that lists scripts.  Each script is executed with cwd set
> # to MNT_DIR, by a new shell.  If the script is not successful, exit.
> {
>    local script_list_file=$1
>    local saved_cwd=$PWD
>
>    if [ -f $1 ] ; then
>        for script in `cat $script_list_file` ; do
>            inform "Running script" `basename $script`
>            cd $MNT_DIR
>            must $SHELL -$- $script
>        done
>        cd $saved_cwd
>    fi
> }
>
> function load_packages
> # $1 is a file that lists packages.  Each package is copied
> # temporarily to the target disk, loaded using cobalt_upgrade and then
> # removed.  If any upgrade is unsuccessful, exit.  Else, run
> # install.cgi to update the ui page that lists the installed packages.
> {
>    local package_list_file=$1
>
>    if [ -s $1 ] ; then
>        for package in `cat $package_list_file` ; do
>            inform "Installing Package" `basename $package`
>            must cp $package $MNT_DIR/tmp
>            must chroot $MNT_DIR /usr/local/sbin/cobalt_upgrade
> /tmp/`basename $package`
>            must rm  $MNT_DIR/tmp/`basename $package`
>        done
>        if [ -x $MNT_DIR/usr/admserv/cgi-bin/.cobalt/install/install.cgi ]; 
> then
>                must chroot $MNT_DIR
> /usr/admserv/cgi-bin/.cobalt/install/install.cgi < /dev/null
>        elif [ -x $MNT_DIR/home/httpd/cgi-bin/cobalt/install/install.cgi ]; 
> then
>                must chroot $MNT_DIR
> /home/httpd/cgi-bin/cobalt/install/install.cgi < /dev/null
>        else
>                inform "install.cgi:" "unknown path"
>                exit 1
>        fi
>    fi
> }
>
> function mount_all_filesystems
> # $1 is the filesystem system list, a single string.
> # This list should be in root-first order
> {
>    local filesystem_list=$1
>
>    if [ $MNT_DIR_CHK = yes -a -e $MNT_DIR ] ; then
>        echo "Mount point $MNT_DIR already exists."
>        echo "Previous install interrupted?"
>        if [ $NET_BUILD = yes ] ; then      # non-interactive
>            echo "Terminating."
>            exit 1
>        else                                # interactive
>            echo "Type y and hit RETURN to unmount all filesystems under"
>            echo "$MNT_DIR, after which $0 can continue with the build."
>            echo -n "Continue? "
>            read answer
>            if [ "$answer" = y ] ; then
>                must umount_all_filesystems "$filesystem_list"
>            else
>                echo "OK, you must do this manually: unmount each 
> filesystem"
>                echo "under $MNT_DIR, including $MNT_DIR,"
>                echo "and then rmdir $MNT_DIR."
>                echo "Terminating."
>                exit 1
>            fi
>        fi
>    fi
>
>    # Mount filesystems
>    set $mount_map
>    while [ -n "$1" ] ; do
>        inform "Mounting $1" "on $2"
>        [ -d $2 ] || must mkdir $2
>        must mount $1 $2
>        shift 2
>    done
> }
>
> function umount_all_filesystems
> # $1 is the filesystem system list, a single string.
> # This list should be in root-first order.
> {
>    local filesystem_list=$1
>
>    # Net builds may not have a writeable /etc/mtab.
>    # Unfortunately, we cannot use `test -w' becuase it lies.
>    [ ${NET_BUILD:=no} = yes ] && local umount_opts='-n'
>
>    for fs in `reverse "$filesystem_list"` ; do
>        umount $umount_opts $fs
>    done
>    [ $NET_BUILD = yes ] || must rmdir $MNT_DIR
> }
>
> function __calculate_GM_sumfile
> {
>    if [ ${GM:=no} = yes ]; then
>        inform Calculating sumfile.GM
>        echo -n "Golden Master Checksum: "
>        ./sumdisk ${MNT_DIR:?} sumfile.GM
>        cp ${TMP_DIR:?}/cobalt_error.log cobalt_error.GM
>        ./stripid cobalt_error.GM
>    fi
> }
>
> function init_for_GM_yes
> {
>    __calculate_GM_sumfile
> }
>
> function __indulge_in_manufacturing_paranoia
> # If we're doing net build, check for unexpected errors in 
> cobalt_error.log
> # This is just general paranoia for manufacturing
> {
>    ./stripid ${TMP_DIR:?}/cobalt_error.log
>
>    local sum_bld=`sum $TMP_DIR/cobalt_error.log | cut -f1 -d" "`
>    local sum_gm=`sum cobalt_error.GM | cut -f1 -d" "`
>    if [ $sum_bld -ne $sum_gm ]; then
>        inform BUILD FAILED
>        rm ${MNT_DIR:?}/boot/vmlinux.gz
>        sleep 10000
>    fi
> }
>
> function __await_verification
> {
>    while [ -e sum.calc ]; do
>        sleep 5
>    done
>    if [ ! -e sum.OK ]; then
>        inform VERIFICATION FAILED
>        sleep 10000
>    fi
> }
>
> function __verify_synchronously
> {
>    local installer=/nfsroot/${PRODUCT:?}_${BUILD:?}/installer
>
>    rsh tester touch $installer/sum.calc
>    ./sumdisk ${MNT_DIR:?} ${TMP_DIR:?}/sumfile
>
>    local sum_gm=`sum sumfile.GM | cut -f1 -d" "`
>    local sum_build=`sum $TMP_DIR/sumfile | cut -f1 -d" "`
>    if [ $sum_gm -eq $sum_build ]; then
>        rsh tester touch $installer/sum.OK
>        rsh tester rm $installer/sum.calc
>    else
>        rsh tester rm $installer/sum.calc
>        inform VERIFICATION FAILED
>        sleep 10000
>    fi
> }
>
> function verify_install
> {
>    if [ ${NET_BUILD:?} = yes -a ${EXP_BUILD:?} = no ]; then
>        inform Manufacturing "paranoia check"
>        __indulge_in_manufacturing_paranoia
>    fi
>
>    if [ $NET_BUILD = yes -a $EXP_BUILD = no -a ! -e sum.OK ]; then
>        if [ -e sum.calc ]; then
>            inform Awaiting verification
>            __await_verification
>        else
>            inform Verifying release
>            __verify_synchronously
>        fi
>    fi
> }
>
> function __2700C_super_hack
> # This isn't just a hack, this is a SUPER-hack.  If we're doing a net 
> build,
> # and if that netbuild is a production build, and if the product is a 
> 2700C
> # (that's a Cache Qube to you and me), then set up the qube to have the IP
> # that it currently has from the net build, name it, and set up it's 
> network.
> # This is so manufacturing can reboot the qube all the way and verify that
> # the build worked.
> {
>    local host_ip=`/bin/hostname -i`
>    local host_name=`nslookup $host_ip | grep Name | cut -f 5 -d" "`
>
>    # use positional parameters to grab the list returned by gawk.
>    # the -e option to set keeps it from echoing the environment variables
>    # if the ifconfig-gawk combo spits nothing; this would set the 
> positional
>    # parameters to null
>    set -e `/sbin/ifconfig eth0 | /bin/gawk '/Mask/ {
>        split ($0, a, /[: ]+/);
>        print a[6], a[8];
>    }'`
>    local host_bcast=$1;
>    local host_nmask=$2;
>
>    set -e `/sbin/route -n | /bin/gawk '
>      /eth0/ && !/default/ { print $1; }
>      /^0.0.0.0/ { print $2; }'`
>    local host_network=$1;
>    local host_gateway=$2;
>
>    # Set up /etc/resolv.conf
>    cp /etc/resolv.conf ${MNT_DIR:?}/etc/resolv.conf
>
>    # Set up /etc/sysconfig/network
>    cat > $MNT_DIR/etc/sysconfig/network <<-EOF
>
>    # Set up /etc/HOSTNAME
>    echo $host_name > $MNT_DIR/etc/HOSTNAME
>
>    # Set up /etc/NET-CONFIG
>    echo BOOTPROTO=lcd > $MNT_DIR/etc/NET-CONFIG
>
>    # Set up /etc/sysconfig/network-scripts/ifcfg-eth0
>    cat > $MNT_DIR/etc/sysconfig/network-scripts/ifcfg-eth0 <<-EOF
> }
>
> function do_final_hacks
> {
>    if [ ${NET_BUILD:?} = yes ]
>    then
>        if [ ${DESTRUCTIVE:?} = yes ]
>        then
>            inform lyle super-hack
>            __2700C_super_hack
>        fi
>    fi
> }
>
> # ifuncs ends here
>
> : ${MNT_DIR:=/mntdir}
> + : /mntdir
> : ${MNT_DIR_CHK:=yes}
> + : no
> : ${DEST_DEV:=/dev/hda}
> + : /dev/hda
> : ${NET_BUILD:=no}
> + : yes
> : ${EXP_BUILD:=no}
> + : no
> : ${GM:=no}
> + : no
> : ${DESTRUCTIVE:=yes}
> + : yes
> : ${RAID:=no}
> + : no
>
> #
> # common locations for raid utils
> sfdisk="/sbin/sfdisk -f -L -uM"
> + sfdisk=/sbin/sfdisk -f -L -uM
> raidstop="/sbin/raidstop"
> + raidstop=/sbin/raidstop
> mkraid="/sbin/mkraid"
> + mkraid=/sbin/mkraid
>
> #
> # common options used
> raid_table="$TMP_DIR/raidtab"
> + raid_table=/test/NOW-20060206.01E575/raidtab
> partition_table="$TMP_DIR/ptable"
> + partition_table=/test/NOW-20060206.01E575/ptable
> fs_table="$TMP_DIR/fstab"
> + fs_table=/test/NOW-20060206.01E575/fstab
> mkfs_opts="$TMP_DIR/mkfs_opts"
> + mkfs_opts=/test/NOW-20060206.01E575/mkfs_opts
>
> rm -f ${TMP_DIR:?}/cobalt_error.log
> + rm -f /test/NOW-20060206.01E575/cobalt_error.log
>
> # Check if that device is mounted right now
> # if so, bail out; I'm drivin' this thing
> if mount | grep "$DEST_DEV" ; then
>    echo "$DEST_DEV is mounted, umount before installing."
>    echo "Terminating."
>    exit 1
> fi
> + mount
> + grep /dev/hda
>
> # describe our situations (by parsing fstab, not hard coding it)
> FSTAB_DEV=`awk '/\/dev\/.*1/ {print $1}' < $fs_table | sed -e 's/[0-9]//'`
> awk '/\/dev\/.*1/ {print $1}' < $fs_table | sed -e 's/[0-9]//'
> ++ awk /\/dev\/.*1/ {print $1}
> ++ sed -e s/[0-9]//
> + FSTAB_DEV=/dev/md
>
> # check for RAID support
> if [ $FSTAB_DEV = "/dev/md" ]; then
>    RAID=yes
>    DEST_DEV=$FSTAB_DEV
>    echo Building system with RAID support
>    echo WARNING: disk-to-disk builds will not work
> fi
> + [ /dev/md = /dev/md ]
> + RAID=yes
> + DEST_DEV=/dev/md
> + echo Building system with RAID support
> Building system with RAID support
> + echo WARNING: disk-to-disk builds will not work
> WARNING: disk-to-disk builds will not work
> echo Destination device: $DEST_DEV
> + echo Destination device: /dev/md
> Destination device: /dev/md
>
> awk '/^\/dev\/.*/ {printf("Destination %s partition: %s\n", $2, substr($1,
> length($1)))}' < $fs_table
> + awk /^\/dev\/.*/ {printf("Destination %s partition: %s\n", $2, 
> substr($1,
> length($1)))}
> Destination / partition: 1
> Destination swap partition: 6
> Destination /var partition: 3
> Destination /home partition: 4
>
> # build the filesystem_list out of the supplied fstab
> export DEST_DEV MNT_DIR
> + export DEST_DEV MNT_DIR
> filesystem_list=`awk '/^\/dev\/.*/ && ! /swap/ {printf ("%s%s ",
> ENVIRON["DEST_DEV"], substr($1, length($1)))}' < $fs_table`
> awk '/^\/dev\/.*/ && ! /swap/ {printf ("%s%s ", ENVIRON["DEST_DEV"],
> substr($1, length($1)))}' < $fs_table
> ++ awk /^\/dev\/.*/ && ! /swap/ {printf ("%s%s ", ENVIRON["DEST_DEV"],
> substr($1, length($1)))}
> + filesystem_list=/dev/md1 /dev/md3 /dev/md4
>
> # build the mount_map out of the supplied fstab
> mount_map=`awk '/^\/dev\/.*/ && ! /swap/ {printf ("%s%s %s%s ",
> ENVIRON["DEST_DEV"], substr($1, length($1)), ENVIRON["MNT_DIR"], $2)}' <
> $fs_table`
> awk '/^\/dev\/.*/ && ! /swap/ {printf ("%s%s %s%s ", ENVIRON["DEST_DEV"],
> substr($1, length($1)), ENVIRON["MNT_DIR"], $2)}' < $fs_table
> ++ awk /^\/dev\/.*/ && ! /swap/ {printf ("%s%s %s%s ", 
> ENVIRON["DEST_DEV"],
> substr($1, length($1)), ENVIRON["MNT_DIR"], $2)}
> + mount_map=/dev/md1 /mntdir/ /dev/md3 /mntdir/var /dev/md4 /mntdir/home
>
> PATH=/sbin:/usr/sbin:$PATH
> + PATH=/sbin:/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
>
> # Qualification, before and after scripts use `ROOT'
> export ROOT=$MNT_DIR
> + export ROOT=/mntdir
> + ROOT=/mntdir
>
> # Setup the partition table on the disk (yes, this is dangerous)
> if [ $DESTRUCTIVE = yes ]; then
>
>    inform Partitioning disk
>
>    #
>    # Check for RAID
>    if [ $RAID = yes ]; then
>
>        #
>        # Attempt to stop RAID activity
>        for array in 1 6 3 4 5 ; do
>            [ -e "/dev/md$array" ] || continue
>            $raidstop -c $raid_table /dev/md$array
>        done
>
>        #
>        # this really should parse the raidtab.
>        # <hack> <cough> ... tim?
>        for disk in hda hdc ; do
>            [ -e /dev/$disk ] || continue
>            $sfdisk /dev/$disk < $partition_table
>        done
>
>    else
>
>        $sfdisk $DEST_DEV < $partition_table
>
>    fi # RAID
>
>    # Make the filesystems
>    cat $fs_table |
>        awk '/^\/dev\/.*/ && ! /swap/ {print substr($1, length($1))}' |
>        while read fs; do
>            filesys="${DEST_DEV}$fs"
>            opts=`cat $mkfs_opts | egrep "^$filesys" | cut -f2`
>            inform Formatting $filesys
>
>            # Stop if we had RAID drives already
>            if [ $RAID = yes ]; then
>                $raidstop -c $raid_table $filesys
>                $mkraid -q --really-force -c $raid_table $filesys
>            fi
>
>            mke2fs -m 0 $opts $filesys
>        done
>
> else
>
>    # Qualify old software, mount, test, umount before re-partitioning.
>    must mount_all_filesystems "$filesystem_list"
>    run_scripts $TMP_DIR/BASE_QUALIFY_SCRIPTS
>    must umount_all_filesystems "$filesystem_list"
>
>    # Make the filesystems (except for home)
>    cat $fs_table |
>        grep -v home |
>        awk '/\/dev\/hda/ && ! /swap/ {print substr($1, length($1))}' |
>        while read fs; do
>            inform Formatting ${DEST_DEV}$fs
>            mke2fs -m 0 ${DEST_DEV}$fs
>        done
>
> fi # DESTRUCTIVE
> + [ yes = yes ]
> + inform Partitioning disk
> + echo Partitioning disk
> Partitioning disk
> + [ yes = yes ]
> + /sbin/writelcd Partitioning disk
> + true
> + [ yes = yes ]
> + [ -e /dev/md1 ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md1
> /dev/md1: No such device
> + [ -e /dev/md6 ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md6
> /dev/md6: No such device
> + [ -e /dev/md3 ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md3
> /dev/md3: No such device
> + [ -e /dev/md4 ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md4
> /dev/md4: No such device
> + [ -e /dev/md5 ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md5
> /dev/md5: No such device
> + [ -e /dev/hda ]
> + /sbin/sfdisk -f -L -uM /dev/hda
> /dev/hda: Device not configured
>
> sfdisk: cannot open /dev/hda read-write
> + [ -e /dev/hdc ]
> + /sbin/sfdisk -f -L -uM /dev/hdc
> /dev/hdc: No such device
>
> sfdisk: cannot open /dev/hdc read-write
> + cat /test/NOW-20060206.01E575/fstab
> + awk /^\/dev\/.*/ && ! /swap/ {print substr($1, length($1))}
> + read fs
> + filesys=/dev/md1
> cat $mkfs_opts | egrep "^$filesys" | cut -f2
> ++ cat /test/NOW-20060206.01E575/mkfs_opts
> ++ egrep ^/dev/md1
> ++ cut -f2
> + opts=
> + inform Formatting /dev/md1
> + echo Formatting /dev/md1
> Formatting /dev/md1
> + [ yes = yes ]
> + /sbin/writelcd Formatting /dev/md1
> + true
> + [ yes = yes ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md1
> /dev/md1: No such device
> + /sbin/mkraid -q --really-force -c /test/NOW-20060206.01E575/raidtab 
> /dev/md1
> couldn't open device /dev/hda1 -- Device not configured
> mkraid: aborted, see the syslog and /proc/mdstat for potential clues.
> handling MD device /dev/md1
> analyzing super-block
> + mke2fs -m 0 /dev/md1
> mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
> /dev/md1: Invalid argument passed to ext2 library while setting up 
> superblock
> + read fs
> + filesys=/dev/md3
> cat $mkfs_opts | egrep "^$filesys" | cut -f2
> ++ cat /test/NOW-20060206.01E575/mkfs_opts
> ++ egrep ^/dev/md3
> ++ cut -f2
> + opts=
> + inform Formatting /dev/md3
> + echo Formatting /dev/md3
> Formatting /dev/md3
> + [ yes = yes ]
> + /sbin/writelcd Formatting /dev/md3
> + true
> + [ yes = yes ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md3
> /dev/md3: No such device
> + /sbin/mkraid -q --really-force -c /test/NOW-20060206.01E575/raidtab 
> /dev/md3
> couldn't open device /dev/hda3 -- Device not configured
> mkraid: aborted, see the syslog and /proc/mdstat for potential clues.
> handling MD device /dev/md3
> analyzing super-block
> + mke2fs -m 0 /dev/md3
> mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
> /dev/md3: Invalid argument passed to ext2 library while setting up 
> superblock
> + read fs
> + filesys=/dev/md4
> cat $mkfs_opts | egrep "^$filesys" | cut -f2
> ++ cat /test/NOW-20060206.01E575/mkfs_opts
> ++ egrep ^/dev/md4
> ++ cut -f2
> + opts=
> + inform Formatting /dev/md4
> + echo Formatting /dev/md4
> Formatting /dev/md4
> + [ yes = yes ]
> + /sbin/writelcd Formatting /dev/md4
> + true
> + [ yes = yes ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md4
> /dev/md4: No such device
> + /sbin/mkraid -q --really-force -c /test/NOW-20060206.01E575/raidtab 
> /dev/md4
> couldn't open device /dev/hda4 -- Device not configured
> mkraid: aborted, see the syslog and /proc/mdstat for potential clues.
> handling MD device /dev/md4
> analyzing super-block
> + mke2fs -m 0 /dev/md4
> mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
> /dev/md4: Invalid argument passed to ext2 library while setting up 
> superblock
> + read fs
>
> # Setup swap partition
> cat $fs_table |
>    awk '/\/dev\/.*/ && /swap/ {print substr($1, length($1))}' |
>    while read fs; do
>        filesys="${DEST_DEV}$fs"
>        inform Creating swap $filesys
>
>        # Stop if we had RAID drives already
>        if [ $RAID = yes ]; then
>            $raidstop -c $raid_table $filesys
>            $mkraid -q --really-force -c $raid_table $filesys
>        fi
>
>        # initialize and enable swap
>        mkswap $filesys
>        swapon $filesys
>    done
> + cat /test/NOW-20060206.01E575/fstab
> + awk /\/dev\/.*/ && /swap/ {print substr($1, length($1))}
> + read fs
> + filesys=/dev/md6
> + inform Creating swap /dev/md6
> + echo Creating swap
> Creating swap
> + [ yes = yes ]
> + /sbin/writelcd Creating swap
> + true
> + [ yes = yes ]
> + /sbin/raidstop -c /test/NOW-20060206.01E575/raidtab /dev/md6
> /dev/md6: No such device
> + /sbin/mkraid -q --really-force -c /test/NOW-20060206.01E575/raidtab 
> /dev/md6
> couldn't open device /dev/hda6 -- Device not configured
> mkraid: aborted, see the syslog and /proc/mdstat for potential clues.
> handling MD device /dev/md6
> analyzing super-block
> + mkswap /dev/md6
> mkswap: error: swap area needs to be at least 40kB
> Usage: mkswap [-c] [-v0|-v1] /dev/name [blocks]
> + swapon /dev/md6
> swapon: warning: /dev/md6 has insecure permissions 0644, 0600 suggested
> swapon: /dev/md6: No such device
> + read fs
>
> # Test mountpoint, mount partitions
> must mount_all_filesystems "$filesystem_list"
> + must mount_all_filesystems /dev/md1 /dev/md3 /dev/md4
> + mount_all_filesystems /dev/md1 /dev/md3 /dev/md4
> + local filesystem_list=/dev/md1 /dev/md3 /dev/md4
> + [ no = yes -a -e /mntdir ]
> + set /dev/md1 /mntdir/ /dev/md3 /mntdir/var /dev/md4 /mntdir/home
> + [ -n /dev/md1 ]
> + inform Mounting /dev/md1 on /mntdir/
> + echo Mounting /dev/md1 on /mntdir/
> Mounting /dev/md1 on /mntdir/
> + [ yes = yes ]
> + /sbin/writelcd Mounting /dev/md1 on /mntdir/
> + true
> + [ -d /mntdir/ ]
> + must mount /dev/md1 /mntdir/
> + mount /dev/md1 /mntdir/
> /dev/md1: Device not configured
> mount: you mShutting down Mail Service: sendmail okrm: cannot unlink
> `/var/run/sendmail.pid': Read-only file system
>
> rm: cannot unlink `/var/lock/subsys/sendmail': Read-only file system
> Stopping INET services: inetd okrm: cannot unlink `/var/run/inetd.pid':
> Read-only file system
>
> rm: cannot unlink `/var/lock/subsys/inet': Read-only file system
> Stopping cron daemon: crond okrm: cannot unlink `/var/run/crond.pid':
> Read-only file system
>
> rm: cannot unlink `/var/lock/subsys/crond': Read-only file system
> Stopping httpd
> Stopping random Saving random seed...
> rm: cannot unlink `/var/lock/subsys/random': Read-only file system
>
> Shutting down SMB Service: Warning: /boot/System.map has an incorrect 
> kernel
> version.
> ERROR!Warning: /boot/System.map has an incorrect kernel version.
> ERROR!rm: cannot unlink `/var/lock/subsys/smb': Read-only file system
>
> Stopping portmap services: Warning: /boot/System.map has an incorrect 
> kernel
> version.
> ERROR!
> rm: cannot unlink `/var/lock/subsys/portmap': Read-only file system
> Stopping nfsfs Unmounting remote filesystems.rm: cannot unlink
> `/var/lock/subsys/nfsfs': Read-only file system
>
>
> Shutting down kernel logger: klogd okrm: cannot unlink 
> `/var/run/klogd.pid':
> Read-only file system
>
> Shutting down system logger: syslogd okrm: cannot unlink
> `/var/run/syslogd.pid': Read-only file system
>
> rm: cannot unlink `/var/lock/subsys/syslog': Read-only file system
> Sending all processes the TERM signal...
> INIT: no more processes left in this runlevel
> Sending all procmd: recovery thread got woken up ...
> esses the KILL smd: recovery thread finished ...
> ignal..
> mdrecoveryd(6) flushing signals.
> Turning off swap
> Unmounting file systems
> Remounting remaining filesystems (if any) readonly
> SYSTEM REBOOTING
> stopping all md devices.
> disabling network interfaces.
> Restarting system.
>
>         Cobalt Networks, Inc. - Connecting the Dots
>                  Firmware version 2.3.25
>
> Current date: Mon Feb 06 15:54:50 UTC 2006
> ROM build info: Wed Jun 7 22:47:13 PDT 2000 laserbeak.cobalt.com
> System serial number: 4H01BM0330170
> Memory found: 512 MB
> Initializing I2C bus: done
> Scanning PCI bus: done
> Initializing IDE: done
> Initializing SCSI: done
> Initializing ethernet: 2 ethernet controllers installed - done
> Initializing flash: done
>  Flash Bank 0: AMD AM29F080B 1MB
>  Flash Bank 1: not installed.
> Mounting rom_fs: done
> Initializing i18n - language "en": done
>
> Press spacebar to enter ROM mode
> Booting default method - From disk
>
> First stage kernel: Decompressing - done
>
>         Cobalt Networks, Inc. - Connecting the Dots
>                  Firmware version 2.3.25
>
> Current date: Mon Feb 06 15:55:39 UTC 2006
> ROM build info: Wed Jun 7 22:47:13 PDT 2000 laserbeak.cobalt.com
> System serial number: 4H01BM0330170
> Memory found: 512 MB
> Initializing I2C bus: done
> Scanning PCI bus: done
> Initializing IDE: done
> Initializing SCSI: done
> Initializing ethernet: 2 ethernet controllers installed - done
> Initializing flash: done
>  Flash Bank 0: AMD AM29F080B 1MB
>  Flash Bank 1: not installed.
> Mounting rom_fs: done
> Initializing i18n - language "en": done
>
> Press spacebar to enter ROM mode
> Booting default method - From disk
>
> First stage kernel: Decompressing - done
>
>
> _______________________________________________
> Zeffie-Users mailing list
> Zeffie-Users at zeffie.net
> http://zeffie.net/mailman/listinfo/zeffie-users_zeffie.net
> 





More information about the Zeffie-Users mailing list