Instructions for setting up diskless clients
This commit is contained in:
parent
e1f7c16403
commit
449070a594
130
share/FAQ/Diskless.FAQ
Normal file
130
share/FAQ/Diskless.FAQ
Normal file
@ -0,0 +1,130 @@
|
||||
Setting up a Diskless FreeBSD system
|
||||
====================================
|
||||
|
||||
netboot.com/netboot.rom allow you to boot your FreeBSD machine over the
|
||||
network and run FreeBSD without having a disk on your client. Under 2.0
|
||||
it is now possible to have local swap. Swapping over NFS is also still
|
||||
supported.
|
||||
|
||||
The list of supported Ethernet cards:
|
||||
|
||||
Western Digital/SMC 8003, 8013, 8216 and compatibles
|
||||
NE1000/NE2000 and compatibles (requires recompile)
|
||||
|
||||
|
||||
Setup Instructions
|
||||
------------------
|
||||
|
||||
- Find a machine that will be your server. This machine will require
|
||||
enough disk space to hold the FreeBSD 2.0 binaries and have bootp, tftp
|
||||
and NFS services available.
|
||||
|
||||
tested machines:
|
||||
|
||||
HP9000/8xx running HP-UX 9.04 or later (pre 9.04 doesn't work)
|
||||
Sun/Solaries 2.3. (you may need to get bootp)
|
||||
|
||||
|
||||
- Set up a bootp server to provide the client with IP, gateway, netmask
|
||||
|
||||
sample entry:
|
||||
|
||||
diskless:\
|
||||
:ht=ether:\
|
||||
:ha=0000c01f848a:\
|
||||
:sm=255.255.255.0:\
|
||||
:hn:\
|
||||
:ds=192.1.2.3:\
|
||||
:ip=192.1.2.4:\
|
||||
:gw=192.1.2.5:\
|
||||
:vm=rfc1048:
|
||||
|
||||
- Set up a TFTP server (on same machine as bootp server) to provide
|
||||
booting information to client. The name of this file is cfg.X.X.X.X
|
||||
(or /tftpboot/cfg.X.X.X.X, it will try both) where X.X.X.X is the
|
||||
IP address of the client. The contents of this file can be any valid
|
||||
netboot commands. Under 2.0, netboot has the following commands:
|
||||
|
||||
help - print help list
|
||||
ip <X.X.X.X> - print/set client's IP address
|
||||
server <X.X.X.X> - print/set bootp/tftp server address
|
||||
netmask <X.X.X.X> - print/set netmask
|
||||
hostname <name> - print/set hostname
|
||||
kernel <name> - print/set kernel name
|
||||
rootfs <ip:/fs> - print/set rootfilesystem
|
||||
swapfs <ip:/fs> - print/set swapfilesystem
|
||||
swapsize <size> - set diskless swapsize in Kbytes
|
||||
diskboot - boot from disk
|
||||
autoboot - continue boot process
|
||||
|
||||
A typical completely diskless cfg file might contain:
|
||||
|
||||
rootfs 192.1.2.3:/rootfs/myclient
|
||||
swapfs 192.1.2.3:/swapfs
|
||||
swapsize 20000
|
||||
hostname myclient.mydomain
|
||||
|
||||
A cfg file for a machine with local swap might contain:
|
||||
|
||||
rootfs 192.1.2.3:/rootfs/myclient
|
||||
hostname myclient.mydomain
|
||||
|
||||
- Ensure that your NFS server has exported the root (and swap if applicable)
|
||||
filesystems to your client, and that the client has root access to these
|
||||
filesystems
|
||||
|
||||
A typical /etc/exports file might look like:
|
||||
|
||||
(FreeBSD)
|
||||
|
||||
/rootfs/myclient -maproot=0:0 myclient.mydomain
|
||||
/swapfs -maproot=0:0 myclient.mydomain
|
||||
|
||||
|
||||
(HP-UX)
|
||||
|
||||
/rootfs/myclient -root=myclient.mydomain
|
||||
/swapfs -root=myclient.mydomain
|
||||
|
||||
|
||||
- If you are swapping over NFS (completely diskless configuration) create a
|
||||
swap file for your client using touch. If your 'swapfs' command
|
||||
has the argument /swapfs as in the example above, the swapfile for myclient
|
||||
will be called /swapfs/swap.X.X.X.X where X.X.X.X is the client's IP addr.
|
||||
|
||||
eg: # touch /swapfs/swap.192.1.2.4
|
||||
|
||||
- Unpack the root filesystem in the directory the client will use for its
|
||||
root filesystem (/rootfs/myclient in the example above).
|
||||
|
||||
*** On HP-UX systems: The server should be running HP-UX 9.04 or
|
||||
later for HP9000/800 series machines. Prior versions don't allow
|
||||
the creation of device files over NFS.
|
||||
|
||||
*** When extracting /dev in /rootfs/myclient, beware that some systems
|
||||
(HPUX) will not create device files that FreeBSD is happy with.
|
||||
You may have to go to single user mode on the first bootup
|
||||
(press control-c during the bootup phase), cd /dev and do a
|
||||
"sh ./MAKEDEV all" from the client to fix this.
|
||||
|
||||
- Run netboot.com on the client or make an EPROM from the netboot.rom file
|
||||
|
||||
|
||||
Using Shared / and /usr filesystems
|
||||
-----------------------------------
|
||||
At present there isn't an officially sanctioned way of doing this, although
|
||||
I have been using a shared /usr filesystem and individual / filesystems for
|
||||
each client. If anyone has any suggestions on how to do this cleanly, please
|
||||
let me and/or the core group know.
|
||||
|
||||
|
||||
|
||||
Compiling netboot for specific setups
|
||||
-------------------------------------
|
||||
|
||||
Netboot can be compiled to support NE1000/2000 cards by changing the
|
||||
configuration in /sys/i386/boot/netboot/Makefile. See the comments
|
||||
at the top of this file.
|
||||
|
||||
|
||||
Martin Renters martin@innovus.com
|
Loading…
Reference in New Issue
Block a user