1*30861Skarels#!/bin/sh -e 2*30861Skarels# 3*30861Skarels# Copyright (c) 1983 Regents of the University of California. 4*30861Skarels# All rights reserved. The Berkeley software License Agreement 5*30861Skarels# specifies the terms and conditions for redistribution. 6*30861Skarels# 7*30861Skarels# @(#)get 1.1 (Berkeley) 04/07/87 8*30861Skarels# 9*30861Skarels# Shell script to build a mini-root file system 10*30861Skarels# in preparation for building a distribution tape. 11*30861Skarels# The file system created here is image copied onto 12*30861Skarels# tape, then image copied onto disk as the "first" 13*30861Skarels# step in a cold boot of 4.3 systems. 14*30861Skarels# 15*30861SkarelsDISTROOT=/nbsd 16*30861Skarels# 17*30861Skarelsif [ `pwd` = '/' ] 18*30861Skarelsthen 19*30861Skarels echo You just '(almost)' destroyed the root 20*30861Skarels exit 21*30861Skarelsfi 22*30861Skarelscp $DISTROOT/sys/GENERIC/vmunix . 23*30861Skarelsrm -rf bin; mkdir bin 24*30861Skarelsrm -rf etc; mkdir etc 25*30861Skarelsrm -rf a; mkdir a 26*30861Skarelsrm -rf tmp; mkdir tmp 27*30861Skarelsrm -rf stand; mkdir stand 28*30861Skarelscp $DISTROOT/etc/disklabel etc 29*30861Skarelscp $DISTROOT/etc/disktab etc 30*30861Skarelscp $DISTROOT/etc/newfs etc 31*30861Skarelscp $DISTROOT/etc/restore etc 32*30861Skarelscp $DISTROOT/etc/rrestore etc 33*30861Skarelscp $DISTROOT/etc/init etc 34*30861Skarelscp $DISTROOT/etc/mount etc 35*30861Skarelscp $DISTROOT/etc/mknod etc 36*30861Skarelscp $DISTROOT/etc/fsck etc 37*30861Skarelscp $DISTROOT/etc/umount etc 38*30861Skarelscp $DISTROOT/etc/ifconfig etc 39*30861Skarelscp $DISTROOT/bin/dd bin 40*30861Skarelscp $DISTROOT/bin/mt bin 41*30861Skarelscp $DISTROOT/bin/ls bin 42*30861Skarelscp $DISTROOT/bin/sh bin 43*30861Skarelscp $DISTROOT/bin/mv bin 44*30861Skarelscp $DISTROOT/bin/sync bin 45*30861Skarelscp $DISTROOT/bin/cat bin 46*30861Skarelscp $DISTROOT/bin/mkdir bin 47*30861Skarelscp $DISTROOT/bin/stty bin; ln bin/stty bin/STTY 48*30861Skarelscp $DISTROOT/bin/echo bin 49*30861Skarelscp $DISTROOT/bin/rm bin 50*30861Skarelscp $DISTROOT/bin/cp bin 51*30861Skarelscp $DISTROOT/bin/expr bin 52*30861Skarelscp $DISTROOT/bin/[ bin 53*30861Skarelscp $DISTROOT/bin/awk bin 54*30861Skarelscp $DISTROOT/bin/make bin 55*30861Skarelscp $DISTROOT/bin/rcp bin 56*30861Skarelscp $DISTROOT/stand/copy stand 57*30861Skarelscp $DISTROOT/stand/vdformat stand 58*30861Skarelscp $DISTROOT/boot . 59*30861Skarelscp $DISTROOT/wcs . 60*30861Skarels#cp $DISTROOT/fppwcs . 61*30861Skarels#cp $DISTROOT/poc . 62*30861Skarels#cp $DISTROOT/poc1 . 63*30861Skarels#cp $DISTROOT/poc2 . 64*30861Skarels#cp $DISTROOT/fppoc . 65*30861Skarelscp $DISTROOT/.profile .profile 66*30861Skarelscat >etc/passwd <<EOF 67*30861Skarelsroot::0:10::/:/bin/sh 68*30861SkarelsEOF 69*30861Skarelscat >etc/group <<EOF 70*30861Skarelswheel:*:0: 71*30861Skarelsstaff:*:10: 72*30861SkarelsEOF 73*30861Skarelscat >etc/fstab <<EOF 74*30861Skarels/dev/xfd0a:/a:xx:1:1 75*30861Skarels/dev/dk0a:/a:xx:1:1 76*30861SkarelsEOF 77*30861Skarelscat >xtr <<'EOF' 78*30861Skarels: ${disk?'Usage: disk=xx0 tape=yy xtr'} 79*30861Skarels: ${tape?'Usage: disk=xx0 tape=yy xtr'} 80*30861Skarelsecho 'Build root file system' 81*30861Skarelsnewfs ${disk}a 82*30861Skarelssync 83*30861Skarelsecho 'Check the file system' 84*30861Skarelsfsck /dev/r${disk}a 85*30861Skarelsmount /dev/${disk}a /a 86*30861Skarelscd /a 87*30861Skarelsecho 'Rewind tape' 88*30861Skarelsmt -f /dev/${tape}0 rew 89*30861Skarelsecho 'Restore the dump image of the root' 90*30861Skarelsrestore rsf 3 /dev/${tape}0 91*30861Skarelscd / 92*30861Skarelssync 93*30861Skarelsumount /dev/${disk}a 94*30861Skarelssync 95*30861Skarelsfsck /dev/r${disk}a 96*30861Skarelsecho 'Root filesystem extracted' 97*30861SkarelsEOF 98*30861Skarelschmod +x xtr 99*30861Skarelsrm -rf dev; mkdir dev 100*30861Skarelscp $DISTROOT/dev/MAKEDEV dev 101*30861Skarelschmod +x dev/MAKEDEV 102*30861Skarelscp /dev/null dev/MAKEDEV.local 103*30861Skarelscd dev 104*30861Skarels./MAKEDEV std dk0 105*30861Skarels./MAKEDEV cy0; mv rmt12 cy0; rm *mt*; 106*30861Skarelscd .. 107*30861Skarelssync 108