Hello,

As of yesterday I stopped using m0n0image by Michael I and took most of the commands 
from m0n0image and the hackers guide, along with the FreeBSD handbook, and tried to 
write a new shell script that worked with mdconfig.

The shell script works great.  It can successfully "decompress" an image and 
"recompress" an image without any errors.  However, whenever I boot from an image that the shell 
script creates, it doesn't load.  The boot up process stops at the kernel loading and it says it can't 
find kernel or kernel.old.

I'm pretty sure I'm doing everything right.  Maybe there's one mistake I'm completely 
missing.  Could someone please look at it and let me know?

Shell script is attached.

Thanks,

Matt

# /dev/md0c:
type: unknown
disk: amnesiac
label:
flags:
bytes/sector: 512
sectors/track: 32
tracks/cylinder: 64
sectors/cylinder: 2048
cylinders: 5
sectors/unit: 12288
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0

8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:    12288        0    4.2BSD     1024  8192    26   # (Cyl.    0 - 4)
  c:    12288        0    unused        0     0         # (Cyl.    0 - 4)
#!/usr/local/bin/bash

printf "Image Generator/Decompressor\n\n"
ls -al | grep "\.img" | grep -v " \."
ls -al | grep "drwx" | grep -v " \."
printf "\n(G)enerate an image or (D)ecompress one?: "
read REQUEST

if [ "$REQUEST" = "d" ]
then
        printf "Source Name (without extension): "
        read image
        printf "Output Directory: "
        read image_dir
        if [ \( -f $image.img -a $image_dir \) ]
        then
                printf "Decompressing $image ... 0%%\b\b"
                mkdir $image_dir
                mkdir $image_dir/fs
                mkdir $image_dir/kern
                printf "10%%\b\b\b"
                mv $image.img $image.bin.gz
                gzip -d $image.bin.gz
                printf "20%%\b\b\b"
                mdconfig -a -t vnode -f $image.bin -u 0
                mount /dev/md0a /mnt
                printf "30%%\b\b\b"
                cp -p /mnt/kernel.gz $image_dir/kern/
                printf "35%%\b\b\b"
                cp -p /mnt/mfsroot.gz $image_dir
                printf "40%%\b\b\b"
                cp -Rp /mnt/boot $image_dir/boot
                printf "45%%\b\b\b"
                cp -Rp /mnt/conf $image_dir/conf
                printf "50%%\b\b\b"
                umount /mnt
                mdconfig -d -u 0
                printf "60%%\b\b\b"
                gzip -9 $image.bin
                mv $image.bin.gz $image.img
                printf "70%%\b\b\b"
                gzip -d $image_dir/mfsroot.gz
                printf "80%%\b\b\b"
                mdconfig -a -t vnode -f $image_dir/mfsroot -u 0
                mount /dev/md0c /mnt
                cp -Rp /mnt/* $image_dir/fs
                printf "90%%\b\b\b"
                umount /mnt
                mdconfig -d -u 0
                rm $image_dir/mfsroot
                printf "100%%"
        fi
elif [ "$REQUEST" = "g" ]
then
        printf "Output Name (without extension): "
        read outfile
        printf "Source Directory: "
        read directory
        if [ \( -d $directory -a -n $outfile \) ]
        then
                printf "Compressing $directory ... 0%%\b\b"
                mkdir tmp
                dd if=/dev/zero of=tmp/mfsroot.bin bs=1k count=12288 > /dev/null 2>&1
                printf "10%%\b\b\b"
                mdconfig -a -t vnode -f tmp/mfsroot.bin -u 0
                disklabel -r -w md0 auto
                newfs -b 8192 -f 1024 /dev/md0c > /dev/null 2>&1
                printf "20%%\b\b\b"
                mount /dev/md0c /mnt
                cp -Rp $directory/fs/* /mnt
                umount /mnt
                printf "30%%\b\b\b"
                mdconfig -d -u 0
                gzip -9 tmp/mfsroot.bin
                printf "40%%\b\b\b"
                mv tmp/mfsroot.bin.gz tmp/mfsroot.gz
                dd if=/dev/zero of=tmp/$directory.bin bs=1k count=6144 > /dev/null 2>&1
                mdconfig -a -t vnode -f tmp/$directory.bin -u 0
                printf "50%%\b\b\b"
                disklabel -BR md0 label.proto
                newfs -b 8192 -f 1024 /dev/md0a > /dev/null 2>&1
                mount /dev/md0a /mnt
                printf "60%%\b\b\b"
                cp -Rp $directory/boot /mnt
                cp -Rp $directory/conf /mnt
                printf "70%%\b\b\b"
                cp -p tmp/mfsroot.gz $directory/kern/kernel.gz /mnt
                umount /mnt
                printf "80%%\b\b\b"
                mdconfig -d -u 0
                gzip -9 tmp/$directory.bin
                printf "90%%\b\b\b"
                mv tmp/$directory.bin.gz $outfile.img
                rm -rf tmp
                printf "100%%";
        fi
else
        printf "You must choose G or D"
        printf
fi

echo
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to