matt@oddjob.uchicago.edu (Matt Crawford) (05/17/89)
> I set up the eeprom to boot off of xd(0,1,0). Fine. I booted, and it got > vmunix off of xd1, as expected. But it suddenly decided to use the root > and swap off of xd0: It looks like you are running 4.X, so your kernel could be getting its swap and root devices from an rpc.bootparamd server. But since you have local disks, this is almost certainly not the case. What you *do* need to do is configure a kernel that has you desired root and swap partitions compiled in. See the chapter "Reconfiguring the System Kernel" in your "System & Network Administration" manual. But this would be a good time for me to show how I maintain a current backup root partition ... information which I offered months ago and then never provided. (Appy-polly-woggies to those who sent requests.) My usual root partition is xy0a and I have a near-copy of it on xy2a, mounted on /backuproot. Files which differ between the two copies are /vmunix and /etc/fstab. (This is all under 3.5, not 4.X.) Vmunix on xy0a is a link to vmunix.xy0 while on xy2a it is a link to vmunix.xy2. The two versions are generated from a config file /sys/conf/ODDJOB which contains: config vmunix root on xy0a swap on xy0b and xy1b and xy2b config vmunixtwo root on xy2a swap on xy2b and xy1b and xy0b The /etc/fstab is similarly a link to either fstab.xy0 or fstab.xy2, the difference being: % diff /etc/fstab.xy0 /etc/fstab.xy2 1c1 < /dev/xy0a / 4.2 rw 1 1 --- > /dev/xy2a / 4.2 rw 1 1 18c18 < /dev/xy2a /backuproot 4.2 rw 7 2 --- > /dev/xy0a /bentuproot 4.2 rw 1 2 (When running from xy2a, xy0a may be mounted on /bentuproot.) To keep the two root partitions in sync, I use rdist. (But some things must still be maintained by hand -- /dev, for instance.) Note that this means that root on the local machine must be listed in /.rhosts. In a script run nightly from crontab appear the following lines. ================begin excerpt================== echo "" if [ -d /backuproot/lost+found ]; then echo "Running rdist:" date >> /usr/adm/rdist-errs rdist -f /usr/local/lib/Distfile backuproot 2>&1 | \ tee -a /usr/adm/rdist-errs else if [ -d /bentuproot/lost+found ]; then echo "Running reverse rdist:" date >> /usr/adm/rdist-errs rdist -f /usr/local/lib/Distfile reversebackup 2>&1 | \ tee -a /usr/adm/rdist-errs else echo "/backuproot not mounted -- skipping rdist" fi fi =================end excerpt=================== (The test for the existence of a lost+found directory is to prevent the rdist from running when the other "root" partition is not mounted.) Here is /usr/local/lib/Distfile. ================Distfile================ ROOTFILES = ( /.cshrc /.login /.plan /.profile /.rhosts /PhoneNumbers /dumpall /bin /boot /private /etc /kadb /lib /dev/MAKEDEV* /mbox /stand /sys /tftpboot /genvmunix /vmunix* ) # It's a pity we can't rdist /dev ! EXROOT = ( /vmunix /etc/fstab ) ROOTSPECIAL = ( /vmunix.xy2 ) ETCSPECIAL = ( /etc/fstab.xy2 ) backuproot: ${ROOTFILES} -> oddjob install -w -R /backuproot ; except ${EXROOT} ; special ${ROOTSPECIAL} "name=/backuproot/`basename $FILE .xy2` ; rm $name; ln $name.xy2 $name"; special ${ETCSPECIAL} "name=/backuproot/etc/`basename $FILE .xy2` ; rm $name; ln $name.xy2 $name"; REVROOTSPECIAL = ( /vmunix.xy0 ) REVETCSPECIAL = ( /etc/fstab.xy0 ) reversebackup: ${ROOTFILES} -> oddjob install -w -R /bentuproot ; except ${EXROOT} ; special ${REVROOTSPECIAL} "name=/bentuproot/`basename $FILE .xy0` ; rm $name; ln $name.xy0 $name"; special ${REVETCSPECIAL} "name=/bentuproot/etc/`basename $FILE .xy0` ; rm $name; ln $name.xy0 $name"; ================end of Distfile================ Matt Crawford matt@oddjob.uchicago.edu