Serial line fbsd installation with no CD

Julian H. Stacey jhs at
Sun Apr 13 17:23:29 PDT 2003

Jez Hancock wrote:
> Hi all,
> I have two colocated servers in the US and I'm in the UK.  I need to install
> FreeBSD 4.8 from scratch across a serial connection that exists between the
> two servers.  The current OS are FreeBSD 4.6.2 and as such I am unable to
> adequately make world to the latest STABLE release.
> Further I do not have the option of installing from a CDROM installed on 
> the server.  Has anyone been in a similar situation and if so how did you
> resolve the problem?
> Thanks in advance,
> Jez

I often do remote upgrades. Tip, practice locally first, knowing if
you have to push reset, you've failed :-)

There's a web page on this on I believe,
but here are 2 ways, must be other too:
1) NFS export a file system & do a remote install from a good 4.8 local
to a remote sub directory on 4.6.2 file system, then move in to
place as below in (3)
	setenv DESTDIR /host/remote/usr1/new4.8
	cd /usr/src/etc; make distribdirs ; cd ..; make install
That way will frighten some people who are keen on security
(though you could EG have ipfw on remote blocking all but your IP for
NFS, (I'm thinking of doing that for some of mine for other reasons)

2) On local 4.8 host do approx: (note this is Not exact, you need
to think what your doing, to avoid shooting in foot, but I do similar
it all the time & it works for me, though I've probably forgotten
to include something, so think & take great care :-).
	setenv DESTDIR /usr1/new
	mkdir /usr1/new
	cd /usr/src/etc; make distrib-dirs ; cd ..; make install
	cd /sys/i386/conf;config -r GENERIC;cd ../../compile/GENERIC;make depend;make;make install
	cd /usr1/new
	tar zcf ../new.tgz .
	ftp remote
	put new.tgz

((3) as common follow up to (1) & (2))
	rlogin or ssh remote
	cd /usr1/new
	tar zxf new.tgz
	mkdir /old /new /usr/old /usr/new /var/old /var/new
	echo block logins, and kick users off now.
	echo backup what you value 
	mv /var/* /var/old/
	mv var/* /var
	cd usr 
	rmdir *
	foreach i ( * )
		mv /usr/$i /usr/old/$i
		mv $i /usr
	cd ..
	cp `which mv` /
	cp `which reboot` /
	rm -rf etc dev proc mnt sys tmp
	foreach i ( * )
		/mv /$i /old/$i
		/mv $i /
	/old/bin/ls /	# make sure you have a new kernel & new modules 
	su ; mergemaster
	recompile stuff for /usr/local & /usr/X11R6 (your old packages
		can be seen by	ls /var/old/db/pkg) 
	echo wait till happy all is ok
	rm -rf /old /*/old
	chflags -R noschg /old /*/old
	rm -rf /old /*/old
Julian Stacey       Freelance Systems Engineer, Unix & Net Consultant, Munich.
  Ihr Rauchen => mein allergischer Kopfschmerz !   Schnupftabak probieren.

More information about the freebsd-isp mailing list