+++ /dev/null
-#!/bin/sh
-#
-# mkdist 3.6 - Make a Minix distribution Author: Kees J. Bot
-# 20 Dec 1994
-
-system=`uname`
-
-usage()
-{
- case $system in
- Minix) echo "Usage: $0" >&2
- ;;
- Minix-vmd) echo "Usage: $0 base-path root-device usr-device" >&2
- esac
- exit 1
-}
-
-# No options.
-while getopts '' opt; do usage; done
-shift `expr $OPTIND - 1`
-
-case $system:$# in
-Minix:0)
- # Interactive.
- case "$0" in
- /tmp/*)
- rm -f "$0"
- ;;
- *) # Move out of /usr.
- cp -p "$0" /tmp/mkdist
- exec /tmp/mkdist
- esac
- std=t
- base=/
- export PATH=/bin:/usr/bin
- ;;
-Minix-vmd:3)
- # Called by an external script from Minix-vmd to help make a distribution.
- std=
- base="$1" rootdev="$2" usrdev="$3"
-esac
-
-usrlist="
-bin
-bin/MAKEDEV
-bin/arch
-bin/badblocks
-bin/chmod
-bin/clone
-bin/compress
-bin/cp
-bin/cpdir
-bin/df
-`test -f $base/usr/bin/mtools || echo bin/dosdir bin/dosread bin/doswrite`
-`test -f $base/usr/bin/mtools && echo bin/mtools`
-bin/edparams
-bin/getty
-bin/grep
-bin/installboot
-bin/isodir
-bin/isoinfo
-bin/isoread
-bin/kill
-bin/ln
-bin/login
-bin/ls
-bin/mined
-bin/mkdir
-bin/mkfs
-bin/mknod
-bin/mv
-bin/od
-bin/part
-bin/partition
-bin/readall
-bin/repartition
-bin/rm
-bin/rmdir
-bin/sed
-bin/setup
-bin/shutdown
-bin/sleep
-bin/sort
-bin/stty
-bin/sysenv
-bin/tar
-bin/uname
-bin/uncompress
-bin/update
-bin/vol
-bin/zcat
-etc
-etc/rc
-lib
-lib/keymaps
-`cd $base/usr && echo lib/keymaps/*`
-lib/pwdauth
-mdec
-mdec/boot
-mdec/bootblock
-mdec/jumpboot
-mdec/masterboot
-tmp
-"
-
-if [ "$std" ]
-then
- # Find the root device, and the real root device.
- . /etc/fstab
- realroot=`printroot -r`
- if [ $realroot = $root ]
- then
- rootdir=/
- else
- umount $root >/dev/null 2>&1
- mount $root /root || exit
- rootdir=/root
- fi
-
- echo -n "
-The installation root and /usr can be put on either one diskette of at least
-1.2 Mb, or on two diskettes of at least 720 kb.
-
-Do you want to use a single diskette of at least 1.2 Mb? [y] "; read single
-
- case $single in
- ''|[yY]*|sure)
- single=t
- ;;
- *) single=
- esac
-
- echo -n "Which drive to use? [0] "; read drive
-
- case $drive in
- '') drive=0
- ;;
- [01]) ;;
- *) echo "Please type '0' or '1'" >&2; exit 1
- esac
-
- if [ "$single" ]
- then
- echo -n "Insert the root+usr diskette in drive $drive and hit RETURN"
- else
- echo -n "Insert the root diskette in drive $drive and hit RETURN"
- fi
- read ret
-
- rootdev=/dev/fd$drive
- v1=-1
-else
- rootdir=$base
- v1='-t 1'
-fi
-
-umount $rootdev 2>/dev/null
-if [ "$std" ]
-then
- umount ${rootdev}p1 2>/dev/null
- umount ${rootdev}p2 2>/dev/null
-else
- umount $rootdir/minix 2>/dev/null
- umount $rootdir/etc 2>/dev/null
-fi
-mkfs $v1 -i 272 $rootdev 480 || exit
-mount $rootdev /mnt || exit
-if [ "$std" ]
-then
- partition -mf $rootdev 0 81:960 81:240 81:240 >/dev/null || exit
- repartition $rootdev >/dev/null || exit
- mkfs $v1 ${rootdev}p1 || exit
- mkfs $v1 ${rootdev}p2 || exit
- mount ${rootdev}p1 $rootdir/minix || exit # Hide /minix and /etc
- mount ${rootdev}p2 $rootdir/etc 2>/dev/null # (complains about /etc/mtab)
-else
- install -d /tmp/.minix || exit
- install -d /tmp/.etc || exit # Hide /minix and /etc
- mount -t lo /tmp/.minix $rootdir/minix || exit
- mount -t lo /tmp/.etc $rootdir/etc || exit
-fi
-cpdir -vx $rootdir /mnt || exit
-install -d -o 0 -g 0 -m 755 /mnt || exit
-install -d -o 0 -g 0 -m 555 /mnt/root || exit
-install -d -o 0 -g 0 -m 555 /mnt/mnt || exit
-install -d -o 0 -g 0 -m 555 /mnt/usr || exit
-if [ "$std" ]
-then
- umount ${rootdev}p2 2>/dev/null # Unhide /etc
- umount ${rootdev}p1 || exit # Unhide /minix
-else
- umount $rootdir/etc || exit # Unhide /etc
- umount $rootdir/minix || exit # Unhide /minix
-fi
-install -d -o 2 -g 0 -m 755 /mnt/minix || exit
-install -d -o 2 -g 0 -m 755 /mnt/etc || exit
-set `ls -t $rootdir/minix` # Install the latest kernel
-install -c $rootdir/minix/$1 /mnt/minix/`echo $1 | sed 's/r[0-9]*$//` || exit
-cpdir -v $base/usr/src/etc /mnt/etc || exit # Install a fresh /etc
-chown -R 0:0 /mnt/etc # Patch up owner and mode
-chmod 600 /mnt/etc/shadow
-
-# Change /etc/fstab.
-echo >/mnt/etc/fstab "\
-# Poor man's File System Table.
-
-root=unknown
-usr=unknown"
-
-# How to install?
-echo >/mnt/etc/issue "\
-
-Login as root and run 'setup' to install Minix."
-
-umount $rootdev || exit
-test "$std" && umount $root 2>/dev/null
-installboot -d $rootdev $base/usr/mdec/bootblock boot >/dev/null
-
-# Partition the root floppy whether necessary or not. (Two images can be
-# concatenated, or a combined image can be split later.)
-partition -mf $rootdev 0 81:960 0:0 81:1440 81:480 >/dev/null || exit
-
-if [ "$std" ]
-then
- if [ "$single" ]
- then
- repartition $rootdev >/dev/null
- usrdev=${rootdev}p2
- else
- echo -n "Insert the usr diskette in drive $drive and hit RETURN"
- read ret
- usrdev=$rootdev
- fi
-fi
-
-mkfs $v1 -i 96 $usrdev 720 || exit
-mount $usrdev /mnt || exit
-install -d -o 0 -g 0 -m 755 /mnt || exit
-(cd $base/usr && exec tar cfD - $usrlist) | (cd /mnt && exec tar xvfp -) || exit
-umount $usrdev || exit
-
-# Put a "boot the other drive" bootblock on the /usr floppy.
-installboot -m $usrdev /usr/mdec/masterboot >/dev/null
-
-# We're done for Minix-vmd here, it has its own ideas on how to package /usr.
-test "$std" || exit 0
-
-# Guess the size of /usr in compressed form. Assume compression down to 60%
-# of the original size. Use "disk megabytes" of 1000*1024 for a safe guess.
-set -$- `df | grep "^$usr"`
-size=`expr \\( $4 \\* 6 / 10 + 999 \\) / 1000`
-
-echo -n "
-You now need enough diskettes to hold /usr in compressed form, close to
-$size Mb total. "
-
-size=
-while [ -z "$size" ]
-do
- if [ "$single" ]; then defsize=1440; else defsize=720; fi
-
- echo -n "What is the size of the diskettes? [$defsize] "; read size
-
- case $size in
- '') size=$defsize
- ;;
- 360|720|1200|1440)
- ;;
- *) echo "Sorry, I don't believe \"$size\", try again." >&2
- size=
- esac
-done
-
-drive=
-while [ -z "$drive" ]
-do
- echo -n "What floppy drive to use? [0] "; read drive
-
- case $drive in
- '') drive=0
- ;;
- [01])
- ;;
- *) echo "It must be 0 or 1, not \"$drive\"."
- drive=
- esac
-done
-
-echo "
-Enter the floppies in drive $drive when asked to. Mark them with the volume
-numbers!
-"
-sleep 2
-
-if [ `arch` = i86 ]; then bits=13; else bits=16; fi
-
->/tmp/DONE
-cd /usr && tar cvf - . /tmp/DONE \
- | compress -b$bits | vol -w $size /dev/fd$drive &&
-echo Done.