aboutsummaryrefslogtreecommitdiff
path: root/share/FAQ/Diskless.FAQ
blob: 84af09c4a8f894c95c190d551bb8fc339844112c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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