Ultrix diskless client weirdness
Stephen A Carpenter
sac at decuk.uvo.dec.com
Mon Feb 18 21:05:23 AEST 1991
Internet address changes in a diskless environment.
ULTRIX V4.0
The Internet address of a diskless client is determined by the network
boot block the system send as the secondary load file. This file is
initially created by DMS but at the present time DMS does not have
the capability to change an existing netblk.
NOTE: If you attempt to change the IP address of either the client or
server without modifying the netblk then your DISKLESS CLIENTS
WILL NOT BOOT.
The definition of the network boot block is in /usr/include/sas/mop.h and
the netblk structure is shown below.
struct netblk {
char srvname[32]; /* server hostname (boot server)*/
unsigned long srvipadr; /* server IP address (boot server)*/
char cliname[32]; /* client hostname */
unsigned long cliipadr; /* client IP address */
unsigned long brdcst; /* broadcast address */
unsigned long netmsk; /* network mask address */
short swapfs; /* swap file system type*/
short rootfs; /* root file system type*/
short swapsz; /* swap size in 1/2 Meg units */
short dmpflg; /* dump flag 0 - disabled */
/* 1 - enabled */
char rootdesc[80]; /* root filesys descriptor */
char swapdesc[80]; /* swap file descriptor */
char reserved[20]; /* for later use */
};
In order to change the IP address of the client or of the server you will need
to modify the netblk.
The code for the boot block is in the file /etc/bootblk.c on the diskless
client.
An example of this file is:
#include <sas/mop.h>
struct netblk nblk={
"my_server",
0x10b38001, "my_client", 0x10b3803e, 0x10b380ff, 0xffffff00,
0,
5,
0,
0,
"/dlclient0/my_client.root",
"rz3b",
""
};
A quick cross-reference with the mop include file will tell you which fields
represent which data.
To change the IP addresses you need to use the command /usr/diskless/makpkt.
The format of this command is:
makpkt server_IP_addr client_name client_IP_addr broadcast netmask
Here is an example of using makpkt to change the network boot block parameters.
For a server of address 16.128.128.4 and a client called fred of address
16.128.128.19 on a class B network you'll need to use the command:
% makpkt 16.128.19.4 fred 16.128.20.19 16.128.255.255 255.255.0.0
this will produce the output:
0x10801304,
"fred",
0x10801413,
0x1080ffff,
0xffff0000,
You will now need to edit netblk.c and replace the line
0x10b38001, "my_client", 0x10b3803e, 0x10b380ff, 0xffffff00,
with
0x10801304, "fred", 0x10801413, 0x1080ffff, 0xffff0000,
The next step is to compile the new netblk.
% cc -c netblk.c
If you are changing the client IP address then you will also need to modify
the CLIARP field in /etc/dlparam on the client.
eg.
CLIARP="16.182.128.61"
Finally you can change the server and/or client IP address on the server
and reboot.
Stephen Carpenter
UK ULTRIX Support
--
Stephen Carpenter sac at decuk.uvo.dec.com
UK Ultrix Support
Digital Equipment Corporation
More information about the Comp.unix.ultrix
mailing list