Results 1 to 2 of 2

Thread: Bug in minrt.gz:init from 7.2-7.4.2

  1. #1
    Junior Member registered user
    Join Date
    Aug 2007
    Posts
    16

    Bug in minrt.gz:init from 7.2-7.4.2

    Couldnt believed when i saw this go from 7.2-7.4.2 but the long wait for creation of knopix-data.img led me to this.
    first the comment from /init:
    # I thought that creating a sparse file would be quicker than writing
    # all data completely, but unfortunately, it has bad side effects if
    # the underlying FAT file system is fragmented. -KK
    # dd if="$src" of="$1" bs=1M seek="$(($2 - 1))" count=1


    No, Klause the fast way works with a ext2+ fs but it's the bug below that led you to believe it doesn't!
    Please correct me if I am wrong.Check the fix script below that changes 1 byte (what major work you save):



    The bug is described in the details of the fix script (all to fix one byte in the init script!!!!):

    #!/bin/bash
    # Rev: $Id: fixminirt.sh 618 2015-04-13 23:49:24Z knoppix $
    # Author: koolb@hotmail.com
    # Description: Fix minirt.gz to e2fsck knoppix-data.img from Knoppix7.2-4
    # for USB style installations on HD (or USB of course).
    # Usage: # optionally, specify addtional boot areas besides /mnt-system/boot,
    # eg /dev/sda2/boot
    # fixminitrt.sh [/path/to/additional/boot] # where {iso,sys}linux* dirs are
    #
    # Details:
    # This handles an issue Knoppix 7.2-4 for those booting off USB or have
    # multiple usb style boots to HD or otherwise.
    # This is bug in the minitrt/init script's checkfs() function
    # in Knoppix7.2-7.4.2. checkfs() which igores the file passed.
    # # checkfs partition filesystem
    # checkfs(){
    # local p="$1" ... # we assign to $p
    # ...
    # ... e2fsck -y "$h" ... # bug: uses $h instead of $p: fix $h -> $p
    # ...
    # }
    # This will find all minirt.gz files and update the init script in each.
    # . ~/scripts/functions - used for debugging shell scripts
    echo "$0 v$Revison$"
    export DFTDIRS=$(echo /mnt-system/boot/{sys,iso}linux*)
    export USRDIRS
    [ -d "$1" ] && USRDIRS=$(echo $1/{sys,iso}linux*)
    export MRBFN=minirt INIT="init"
    export MRTMP=$MRBFN MRIOZ=$MRBFN.gz
    export MRORG=$MRIOZ.org
    function abort() {
    echo "$@" && exit 1
    }
    sub patch() {
    local fn=$1
    echo "Patching $fn to $fn.new"
    sed -e 's/\(e2fsck.*\$\)h/\1p/' $fn > $fn.new || abort "No patch applied"
    }
    export src
    for src in $DFTDIRS $USRDIRS
    do if test -d $src && cd $src; then
    echo "Processing $src..."
    [ -n "$DBG" ] && set -x
    [ ! -e $MRORG ] && sudo cp -Ta $MRIOZ $MRORG # Backup
    [ ! -e $MRIOZ ] && sudo cp -Ta $MRORG $MRIOZ # Restore
    [ ! -w $MRIOZ ] && sudo chmod o+rw $MRIOZ
    export td="$(echo $src | sed 's@/@/tmp/@')/$MRBFN"
    export tfo=$td.org tfn=$td.new
    [ -d $td ] && sudo rm -rf $td
    mkdir -p $td || abort "$src: Unable to mkdir -p $td"
    echo "Extracting $src/$MRIOZ to $td && cd $td"
    mkdir -p $BOOTISO $BOOTSYS
    echo "Extracting $src/$MRIOZ to $td && cd $td"
    cd $td || abort "$td: Unable to cd $td"
    [ -e $INIT ] || gzip -dc $src/$MRIOZ | tee $tfo | sudo cpio --no-absolute-filenames -i -d -H newc || abort "$td: Unable to extract $MRIOZ "
    patch $INIT
    lines=$(diff $INIT $INIT.new|wc -l) || abort "$td: diff/patch failed."
    [ -w $INIT ] || sudo chmod o+w $INIT|| abort "$td: Unable to make $INIT writeable"
    if [ "$lines" -eq 4 -o "$lines" -eq 0 ]; then
    [ "$lines" -eq 0 ] && echo "$td: Already Patched but recreating..."
    [ -f $INIT.new ] && rm -f "$INIT" && mv "$INIT.new" "$INIT"
    echo "$td: Patch SUCCESS!. creating new $src/$MRIOZ..."
    find . | sudo cpio -o -H newc | tee $tfn | gzip -c > ../$MRIOZ ||
    abort "$td: Unable to create new ../$MRIOZ"
    sudo cp -v "../$MRIOZ" "$src/$MRIOZ" || abort "$td: cp ../$MRIOZ to $src failed: $(ls -l ../$MRIOZ)"
    for f in $tfo $tfn; do file $f; done
    else abort "$td: Bad patch, expected one change: $(diff $INIT $INIT.new)"
    fi
    for f in $src/$MRIOZ $src/$MRORG; do ls -l $f && sum $f; done
    fi
    done
    Last edited by koolb; 04-16-2015 at 11:57 PM.

  2. #2
    Junior Member registered user
    Join Date
    Aug 2007
    Posts
    16
    fixes: sub patch() # should be function patch()
    add chmod 755 $fn.new as last line of the patch() fn

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


HP Z420 Workstation Xeon E5-2690 v2 3ghz 10-Cores 64gb  512gb SSD  4TB  Win10 picture

HP Z420 Workstation Xeon E5-2690 v2 3ghz 10-Cores 64gb 512gb SSD 4TB Win10

$239.99



Intel Xeon E5-2697 V4 2.30 GHz 18C 2011-3 2400MHz 45MB 145W SR2JV CPU Processor picture

Intel Xeon E5-2697 V4 2.30 GHz 18C 2011-3 2400MHz 45MB 145W SR2JV CPU Processor

$45.00



Lenovo Thinkstation P510 E5-1620 V4 16GB RAM 512GB SSD DVD Quadro M2000 W10 Pro picture

Lenovo Thinkstation P510 E5-1620 V4 16GB RAM 512GB SSD DVD Quadro M2000 W10 Pro

$184.95



Intel Xeon E3-1285 V3 3.6 GHz 8M Quad-Core SR14W CPU Processor picture

Intel Xeon E3-1285 V3 3.6 GHz 8M Quad-Core SR14W CPU Processor

$49.50



Intel Xeon E5-2680 v4 SR2N7 2.40GHz 35MB 14-Core LGA2011-3 CPU Processor picture

Intel Xeon E5-2680 v4 SR2N7 2.40GHz 35MB 14-Core LGA2011-3 CPU Processor

$14.99



SR1XP Intel Xeon E5-2680 v3 12 Core 30MB 2.5GHz LGA 2011-3 Grade A Processor picture

SR1XP Intel Xeon E5-2680 v3 12 Core 30MB 2.5GHz LGA 2011-3 Grade A Processor

$4.05



Intel Xeon E5-2697A V4 2.6GHz CPU Processor 16-Core Socket LGA2011 SR2K1 picture

Intel Xeon E5-2697A V4 2.6GHz CPU Processor 16-Core Socket LGA2011 SR2K1

$37.99



Intel Xeon E5-2667 V4 SR2P5 (3.2GHZ/8-CORE/25MB/135W) PROCESSOR CPU picture

Intel Xeon E5-2667 V4 SR2P5 (3.2GHZ/8-CORE/25MB/135W) PROCESSOR CPU

$29.95



Dell Precision T7820 Tower 2x Intel Xeon Gold 6130No RAM/ GPU/ HDD/ OS picture

Dell Precision T7820 Tower 2x Intel Xeon Gold 6130No RAM/ GPU/ HDD/ OS

$454.97



Intel Xeon E5-2699 v4 2.2GHz 55MB 22-Core 145W LGA2011-3 SR2JS picture

Intel Xeon E5-2699 v4 2.2GHz 55MB 22-Core 145W LGA2011-3 SR2JS

$143.00