1) remote booting, e.g. for diskless PCs (client) . documentation: file:/usr/share/doc/HOWTO/en-txt/mini/Remote-Boot.txt.gz file:/usr/share/doc/HOWTO/en-txt/Diskless-HOWTO.txt.gz file:/usr/share/doc/HOWTO/en-txt/mini/NFS-Root.txt.gz file:/usr/share/doc/HOWTO/en-txt/Diskless-root-NFS-HOWTO.txt.gz . active dhcpd on server: - Linux: rmp -i ... . edit /etc/hdcpd.conf: # dhcpd.conf # # Sample configuration file for ISC dhcpd # # # Global parameters # # Use declaration identifier as hostname use-host-decl-names on; # # Shared-network definition # shared-network companynet { # # Company-wide parameters # option domain-name "informatik.hu-berlin.de"; # # Subnet definition # subnet 141.20.26.0 netmask 255.255.255.0 { # # Subnet-specific information # # Default gateway option routers 141.20.26.1; # DNS server # option domain-name-servers dns.informatik.hu-berlin.de; # # PXE group declaration # group { # # PXE specific parameters # # Infinite lease time default-lease-time -1; # TFTP server IP address next-server 141.20.26.156; # Name of the bootstrap program filename "bpbatch"; # Vendor class setup for PXE option dhcp-class-identifier "PXEClient"; # Vendor-specific parameters # Since we do not use PXE parameters in # this example, we set this option to # 01:04:00:00:00:00 which means 'NULL parameter' option vendor-encapsulated-options 01:04:00:00:00:00; # option vendor-encapsulated-options 01:04:00:00:00:ff; # BpBatch specific parameters # option option-135 "-i"; option option-135 "client"; # User-level parameters (opt 128 to 135 free for use) # option option-132 "workgroup"; # # PXE hosts # host anton { hardware ethernet 0:1:2:a9:5f:58; # fixed-address anton.informatik.hu-berlin.de; fixed-address 141.20.26.140; option option-132 "anton"; } } } } . activate dhcpd on Linux: . edit /etc/init.d/dhcp: run_dhcpd=1 . /etc/init.d/dhcp start . active tftpd (dselect) . edit /etc/inetd.conf (uncomment tftp): tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot IF you use another directory (e.g. /tftpboot), then replace "/boot" with "/tftpboot" and "/home" with "/home/compsoft/linux" in the following instructions... . restart inetd: kill -HUP . cd /boot . mkdir /home/141.20.26.140 . ln -s /home/141.20.26.140 . . ln -s 141.20.26.140 anton.informatik.hu-berlin.de . compile Linux kernel with - network card (3COM) as part of kernel (not module!) - IP kernel level autoconfiguration (BOOTP, RARP support) - root filesystem on NFS . cd /vol/weide-vol2/usr/src/linux . cp arch/i386/boot/bzImage /boot/anton.informatik.hu-berlin.de/vmlinux-2.2.14 . cp System.map /boot/anton.informatik.hu-berlin.de/System.map-2.2.14 . cd /boot . ln -s anton.informatik.hu-berlin.de/vmlinux-2.2.14 vmlinuz.anton . add to /etc/exports (Linux): /boot/141.20.26.140 anton.informatik.hu-berlin.de(rw,no_root_squash) /usr anton.informatik.hu-berlin.de(ro,no_root_squash) or add and execute /etc/dfs/dfstab (Solaris): . share -F nfs -o rw=anton,root=anton -d "Linux - Root" /home/compsoft/linux/141.20.26.140/root . share -F nfs -o ro=anton -d "Linux - usr" /home/compsoft/linux/usr . /etc/init.d/nfs-server restart (Linux) / restart mountd (Solaris) . mkdir /boot/bpbatch.dir . cd /boot/bpbatch.dir . download bpbatch: http://www.bpbatch.org/ into /boot/bpbatch.dir . tar xzf bpbatch.* . cd .. Notice: tftp under Solaris cannot handle symbolic links. Hence, use copy: . cp bpbatch.dir/bpbatch.* . . cp bpbatch.P bpbatch . edit client.bpb: (Notice: add "devfs=mount" for device mount via defvsd)clemson.edu set CacheNever = "on" LinuxBoot "vmlinuz.anton" "nfsroot=${BOOTP-Server-IP}:/boot/${BOOTP-Your-IP}/root nfsaddrs=${BOOTP-Your-IP}:${BOOTP-Server-IP}:${BOOTP-Gateway-IP}:${BOOTP-Subnet-Mask}:${BOOTP-Option-132}" . mknod /dev/nfsroot b 0 255 . rdev /boot/vmlinuz.anton /dev/nfsroot . cd /boot/anton.informatik.hu-berlin.de/root Notice: To de-tar on Solaris, use: /usr/local/bin/tar --ignore-failed-read ... . tar clf etc.tar /etc . tar xf etc.tar . tar clf var.tar /var . tar xf var.tar . tar clf dev.tar /dev . tar xf dev.tar . tar clf bin.tar /bin . tar xf bin.tar . tar clf sbin.tar /sbin . tar xf sbin.tar . tar clf lib.tar /lib . tar xf lib.tar . tar clf tmp.tar /tmp . tar xf tmp.tar . cd tmp . rm -fr * .* . cd .. . rm -fr var/lib . ln -s /var/lib/ var . rm -fr var/spool/ . ln -s /var/spool var . mkdir floppy home mnt proc vol usr . touch proc/mounts . rm etc/mtab . edit /etc/fstab . edit etc/fstab (shown for Linux, different for Solaris): # /etc/fstab: static file system information. # # buche:/boot/141.20.26.140/root / nfs defaults,rsize=8192,wsize=8192,actimeo=0 0 0 buche:/usr /usr nfs defaults,ro,rsize=8192,wsize=8192,actimeo=0 0 0 proc /proc proc defaults 0 0 /dev/hdd /cdrom iso9660 ro,noauto,user 0 0 . edit etc/hosts: 141.20.26.140 anton.informatik.hu-berlin.de anton 141.20.26.144 baal.informatik.hu-berlin.de baal 141.20.26.156 buche.informatik.hu-berlin.de buche . change etc/init.d/mountall.sh (only for Solaris): # mknod -m 600 /dev/initctl p #Frank: replaced for Solaris NSF root to imitate pipe mknod -m 600 /dev/initctl c 255 255 mknod -m 640 /dev/xconsole c 255 255 .chmod g+w /dev/null .chmod o+w /dev/null . etc/init.d/network: IPADDR=141.20.26.140 . etc/hostname: anton . etc/motd: Linux anton... . cd /etc/init.d/rc2.d . mkdir old . mv S20alsa S20dhcp S20exim S20gpm S20isdnutils S20mgetty-fax S20netobjd S20omniorb S20ppp S30squid S50junkbuster S91apache old . cd /etc/init.d/rc6.d . mkdir old . mv K20alsa K20dhcp K20exim K20gpm K20isdnutils K20mgetty-fax K20netobjd K20omniorb K20ppp K30squid K50junkbuster K20apache old . adjust etc/X11/XF86Config . boot client