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
  •  


Genuine 45W Power Adapter Charger for Dell DA45NM140 0KXTTW 4.5*3.0mm OEM picture

Genuine 45W Power Adapter Charger for Dell DA45NM140 0KXTTW 4.5*3.0mm OEM

$16.99



OEM 130W USB-C Type-C Charger for Dell XPS 15 9500 9570 9575 17 9700 DA130PM170 picture

OEM 130W USB-C Type-C Charger for Dell XPS 15 9500 9570 9575 17 9700 DA130PM170

$35.88



NEW OEM Dell Inspiron 14 5406  P126G Laptop Battery 11.25V 40Wh JK6Y6  CF5RH picture

NEW OEM Dell Inspiron 14 5406 P126G Laptop Battery 11.25V 40Wh JK6Y6 CF5RH

$37.00



NEW OEM 90W For Dell Thunderbolt 3 USB-C Type C Adapter Charger LA90PM170 0TDK33 picture

NEW OEM 90W For Dell Thunderbolt 3 USB-C Type C Adapter Charger LA90PM170 0TDK33

$24.99



OEM Dell Inspiron 11 13 14 15 17 3000 5000 7000 AC Adapter Charger 65W 4.5mm Tip picture

OEM Dell Inspiron 11 13 14 15 17 3000 5000 7000 AC Adapter Charger 65W 4.5mm Tip

$10.99



OEM Dell 90W Laptop Charger AC Adapter 19.5V 4.62A 50-60 Hz Latitude, XPS picture

OEM Dell 90W Laptop Charger AC Adapter 19.5V 4.62A 50-60 Hz Latitude, XPS

$8.74



Dell Original OEM 45W 19.5V AC Adapter Charger 070VTC 0KXTTW 00285K 0YTFJC 4.5mm picture

Dell Original OEM 45W 19.5V AC Adapter Charger 070VTC 0KXTTW 00285K 0YTFJC 4.5mm

$10.94



OEM DELL 65W AC Adapter Charger 7.4mm Latitude 7490 7480 E7440 E7450 E7470 E7270 picture

OEM DELL 65W AC Adapter Charger 7.4mm Latitude 7490 7480 E7440 E7450 E7470 E7270

$11.88



OEM 130W Power Adapter Charger For Dell XPS 15 9530 9550 9560 9570 7590 06TTY6 picture

OEM 130W Power Adapter Charger For Dell XPS 15 9530 9550 9560 9570 7590 06TTY6

$33.22



Genuine OEM 42wh YRDD6 Battery For Dell Inspiron 3493 3582 3583 3584 7586 3793 picture

Genuine OEM 42wh YRDD6 Battery For Dell Inspiron 3493 3582 3583 3584 7586 3793

$32.89