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
|