17f99f3a2SThomas Veerman 27f99f3a2SThomas Veermanmake_hdimage() 37f99f3a2SThomas Veerman{ 47f99f3a2SThomas Veerman dd if=$TMPDISKUSR of=usrimage bs=$BS count=$USRBLOCKS 57f99f3a2SThomas Veerman 67f99f3a2SThomas Veerman rootsize=`stat -f %z rootimage` 77f99f3a2SThomas Veerman usrsize=`stat -f %z usrimage` 87f99f3a2SThomas Veerman 97f99f3a2SThomas Veerman rootsects=`expr $rootsize / 512` 107f99f3a2SThomas Veerman usrsects=`expr $usrsize / 512` 117f99f3a2SThomas Veerman 127f99f3a2SThomas Veerman # installboot -m needs at least 1KB 137f99f3a2SThomas Veerman dd < /dev/zero >tmpimage count=2 147f99f3a2SThomas Veerman partition -fm tmpimage 2 81:$rootsects* 0:0 81:$usrsects 157f99f3a2SThomas Veerman installboot_nbsd -m tmpimage /usr/mdec/mbr 167f99f3a2SThomas Veerman dd < tmpimage > subpart count=1 177f99f3a2SThomas Veerman 187f99f3a2SThomas Veerman primsects=`expr 1 + $rootsects + $usrsects` 197f99f3a2SThomas Veerman cyl=`expr '(' $primsects ')' / $secs + 1` 207f99f3a2SThomas Veerman padsects=`expr $cyl \* $secs - 1 - $primsects` 217f99f3a2SThomas Veerman 227f99f3a2SThomas Veerman { dd < /dev/zero count=1 237f99f3a2SThomas Veerman cat subpart 247f99f3a2SThomas Veerman cat rootimage 257f99f3a2SThomas Veerman cat usrimage 267f99f3a2SThomas Veerman dd < /dev/zero count=$padsects 277f99f3a2SThomas Veerman } > hdimage 287f99f3a2SThomas Veerman partition -m hdimage 81:`expr $primsects + $padsects`* 297f99f3a2SThomas Veerman installboot_nbsd -m hdimage /usr/mdec/mbr 307f99f3a2SThomas Veerman} 317f99f3a2SThomas Veerman 327f99f3a2SThomas Veermanretrieve() 337f99f3a2SThomas Veerman{ 347f99f3a2SThomas Veerman dir=$1 357f99f3a2SThomas Veerman list=`pwd`/$2 367f99f3a2SThomas Veerman URLS="" 377f99f3a2SThomas Veerman echo "Retrieving packages form $PACKAGEURL" 387f99f3a2SThomas Veerman ( 397f99f3a2SThomas Veerman cd $dir || exit 1 407f99f3a2SThomas Veerman SUMMARY=pkg_summary 417f99f3a2SThomas Veerman rm -f pkg_summary* || true 427f99f3a2SThomas Veerman fetch $PACKAGEURL/$SUMMARY.bz2 437f99f3a2SThomas Veerman bzip2 -d $SUMMARY.bz2 447f99f3a2SThomas Veerman cat $list | while read name 457f99f3a2SThomas Veerman do pkgname="`fgrep PKGNAME=${name} $SUMMARY | sed 's/PKGNAME=//g'`" 467f99f3a2SThomas Veerman if [ `echo $pkgname | wc -w` -ne 1 ] 477f99f3a2SThomas Veerman then echo " *** Could not resolve $name (not found or too many matches: $pkgname) ***" 485457987dSBen Gras echo Matches: 495457987dSBen Gras echo $pkgname 505457987dSBen Gras exit 1 517f99f3a2SThomas Veerman else echo Getting $pkgname 527f99f3a2SThomas Veerman fetch -r ${PACKAGEURL}/${pkgname}.tgz 537f99f3a2SThomas Veerman fi 547f99f3a2SThomas Veerman echo -n "." 557f99f3a2SThomas Veerman done 567f99f3a2SThomas Veerman ) 577f99f3a2SThomas Veerman echo done 587f99f3a2SThomas Veerman} 597f99f3a2SThomas Veerman 607f99f3a2SThomas Veermancd_root_changes() 617f99f3a2SThomas Veerman{ 627f99f3a2SThomas Veermancat >$CDFILES/boot.cfg <<END_BOOT_CFG 637f99f3a2SThomas Veermanbanner=Welcome to the MINIX 3 installation CD 647f99f3a2SThomas Veermanbanner================================================================================ 657f99f3a2SThomas Veermanbanner= 66*c5da0dffSDavid van Moolenbroekmenu=Regular MINIX 3:multiboot /kernel bootcd=1 cdproberoot=1 rootdevname=ram 67*c5da0dffSDavid van Moolenbroekmenu=Regular MINIX 3 (with AHCI):multiboot /kernel bootcd=1 cdproberoot=1 rootdevname=ram ahci=yes 689733fcdbSDavid van Moolenbroekmenu=Edit menu option:edit 697f99f3a2SThomas Veermanmenu=Drop to boot prompt:prompt 707f99f3a2SThomas Veermanclear=1 717f99f3a2SThomas Veermantimeout=10 727f99f3a2SThomas Veermandefault=1 737f99f3a2SThomas Veermanload=/mod01_ds 747f99f3a2SThomas Veermanload=/mod02_rs 757f99f3a2SThomas Veermanload=/mod03_pm 767f99f3a2SThomas Veermanload=/mod04_sched 777f99f3a2SThomas Veermanload=/mod05_vfs 787f99f3a2SThomas Veermanload=/mod06_memory 7936ac0dbcSDavid van Moolenbroekload=/mod07_tty 80e4e21ee1SDavid van Moolenbroekload=/mod08_mib 8136ac0dbcSDavid van Moolenbroekload=/mod09_vm 8236ac0dbcSDavid van Moolenbroekload=/mod10_pfs 83e4e21ee1SDavid van Moolenbroekload=/mod11_mfs 84e4e21ee1SDavid van Moolenbroekload=/mod12_init 857f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 867f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 877f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 887f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 897f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 907f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 917f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 927f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 937f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 947f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 957f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 967f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 977f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 987f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 997f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 1007f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 1017f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 1027f99f3a2SThomas Veerman# This space intentionally left blank - leave to appease bootloader! 1037f99f3a2SThomas VeermanEND_BOOT_CFG 1047f99f3a2SThomas Veerman} 1057f99f3a2SThomas Veerman 1067f99f3a2SThomas Veermancopy_local_packages() 1077f99f3a2SThomas Veerman{ 1087f99f3a2SThomas Veerman if [ -d $PACKAGEDIR -a -f $PACKAGELIST -a $PACKAGES -ne 0 ] 1097f99f3a2SThomas Veerman then 1107f99f3a2SThomas Veerman index=pkg_summary 1117f99f3a2SThomas Veerman indexpath=$PACKAGEDIR/.index 1127f99f3a2SThomas Veerman 1137f99f3a2SThomas Veerman if [ ! -d $indexpath ] 1147f99f3a2SThomas Veerman then mkdir $indexpath 1157f99f3a2SThomas Veerman fi 1167f99f3a2SThomas Veerman if [ ! -d $indexpath ] 1177f99f3a2SThomas Veerman then echo "Couldn't create $indexpath." 1187f99f3a2SThomas Veerman exit 1 1197f99f3a2SThomas Veerman fi 1207f99f3a2SThomas Veerman 1217f99f3a2SThomas Veerman echo "" >$PACKAGEDIR/All/$index 1227f99f3a2SThomas Veerman 1237f99f3a2SThomas Veerman echo " * Transfering $PACKAGEDIR to $RELEASEPACKAGE" 1247f99f3a2SThomas Veerman for pkgprefix in `cat $PACKAGELIST` 1257f99f3a2SThomas Veerman do realfn="`echo $PACKAGEDIR/All/${pkgprefix}*.tgz`" 1267f99f3a2SThomas Veerman if [ -f "$realfn" ] 1277f99f3a2SThomas Veerman then 1287f99f3a2SThomas Veerman # Copy package and create package's index 1297f99f3a2SThomas Veerman ( 1307f99f3a2SThomas Veerman p="`basename $realfn`" 1317f99f3a2SThomas Veerman cd $PACKAGEDIR/All 1327f99f3a2SThomas Veerman cp $p $RELEASEPACKAGE/ 1337f99f3a2SThomas Veerman 1347f99f3a2SThomas Veerman indexname=$indexpath/$p.$index 1357f99f3a2SThomas Veerman pkg_info -X $p >$indexname 1367f99f3a2SThomas Veerman 1377f99f3a2SThomas Veerman if [ ! -f $indexname ] 1387f99f3a2SThomas Veerman then echo Missing $indexname. 1397f99f3a2SThomas Veerman exit 1 1407f99f3a2SThomas Veerman fi 1417f99f3a2SThomas Veerman 14243eceae5SBen Gras if [ "`wc -l <$indexname`" -lt 3 ] 1437f99f3a2SThomas Veerman then $indexname is too short. 1447f99f3a2SThomas Veerman rm $indexname 1457f99f3a2SThomas Veerman exit 1 1467f99f3a2SThomas Veerman fi 1477f99f3a2SThomas Veerman 1487f99f3a2SThomas Veerman cat $indexname >>$PACKAGEDIR/All/$index 1497f99f3a2SThomas Veerman ) 1507f99f3a2SThomas Veerman else 1517f99f3a2SThomas Veerman echo "Can't find $pkgprefix Missing." 1527f99f3a2SThomas Veerman fi 1537f99f3a2SThomas Veerman done 1547f99f3a2SThomas Veerman 1557f99f3a2SThomas Veerman bzip2 -f $PACKAGEDIR/All/$index 1567f99f3a2SThomas Veerman cp $PACKAGEDIR/All/$index.bz2 $RELEASEPACKAGE/ 1577f99f3a2SThomas Veerman fi 1587f99f3a2SThomas Veerman} 1597f99f3a2SThomas Veerman 1607f99f3a2SThomas Veermanfitfs() 1617f99f3a2SThomas Veerman{ 1627f99f3a2SThomas Veerman path="$1" 1637f99f3a2SThomas Veerman ramdisk="$2" 1647f99f3a2SThomas Veerman extra_inodes="$3" 1657f99f3a2SThomas Veerman extra_zones="$4" 1667f99f3a2SThomas Veerman mbsdefault="$5" 1677f99f3a2SThomas Veerman 1687f99f3a2SThomas Veerman # Determine number of inodes 1697f99f3a2SThomas Veerman inodes=`find $path | egrep -v ^$path/usr | wc -l` 1707f99f3a2SThomas Veerman inodes="`expr $inodes + $extra_inodes`" 1717f99f3a2SThomas Veerman 1727f99f3a2SThomas Veerman # Determine number of data zones 1737f99f3a2SThomas Veerman zonekbs=`du -ks $path | cut -d' ' -f1` 1747f99f3a2SThomas Veerman zonekbsignore=0 1757f99f3a2SThomas Veerman [ ! -d $path/usr ] || zonekbsignore=`du -ks $path/usr | cut -d" " -f1` 1767f99f3a2SThomas Veerman zones="`expr \( $zonekbs - $zonekbsignore \) / \( $BS / 1024 \) + $extra_zones`" 1777f99f3a2SThomas Veerman 1787f99f3a2SThomas Veerman # Determine file system size 1797f99f3a2SThomas Veerman BSBITS="`expr $BS \* 8`" 1807f99f3a2SThomas Veerman imap_blocks="`expr \( $inodes + $BSBITS - 1 \) / $BSBITS`" 1817f99f3a2SThomas Veerman inode_blocks="`expr \( $inodes \* 64 + $BS - 1 \) / $BS`" 1827f99f3a2SThomas Veerman zmap_blocks="`expr \( $zones + $BSBITS - 1 \) / $BSBITS`" 1837f99f3a2SThomas Veerman blocks="`expr 1 + 1 + $imap_blocks + $zmap_blocks + $inode_blocks + $zones`" 1847f99f3a2SThomas Veerman kbs="`expr $blocks \* \( $BS / 1024 \)`" 1857f99f3a2SThomas Veerman 1867f99f3a2SThomas Veerman # Apply default if higher 1877f99f3a2SThomas Veerman if [ -n "$mbsdefault" ] 1887f99f3a2SThomas Veerman then 1897f99f3a2SThomas Veerman kbsdefault="`expr $mbsdefault \* 1024`" 1907f99f3a2SThomas Veerman if [ "$kbs" -lt "$kbsdefault" ] 1917f99f3a2SThomas Veerman then kbs=$kbsdefault 1927f99f3a2SThomas Veerman else echo "warning: ${mbsdefault}mb is too small, using ${kbs}kb" 1937f99f3a2SThomas Veerman fi 1947f99f3a2SThomas Veerman fi 1957f99f3a2SThomas Veerman 1967f99f3a2SThomas Veerman # Create a filesystem on the target ramdisk 1977f99f3a2SThomas Veerman ramdisk $kbs $ramdisk 1987f99f3a2SThomas Veerman mkfs.mfs -B $BS -i $inodes $ramdisk 1997f99f3a2SThomas Veerman} 200