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.



# /dev/md0c:
type: unknown
disk: amnesiac
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)

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?: "

if [ "$REQUEST" = "d" ]
        printf "Source Name (without extension): "
        read image
        printf "Output Directory: "
        read image_dir
        if [ \( -f $image.img -a $image_dir \) ]
                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%%"
elif [ "$REQUEST" = "g" ]
        printf "Output Name (without extension): "
        read outfile
        printf "Source Directory: "
        read directory
        if [ \( -d $directory -a -n $outfile \) ]
                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%%";
        printf "You must choose G or D"

[EMAIL PROTECTED] mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to