====== Using Etherboot with RIS ====== ===== What is RIS? ===== [[http://www.microsoft.com/resources/documentation/WindowsServ/2003/all/deployguide/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/all/deployguide/en-us/acicc_ris_uwbo.asp|RIS]] stands for Remote Installation Services, it is a Microsoft technology that is used to install Windows 2000 and above from a remote server to a PXE enabled client machine. It is different from drive imaging technologies such as Symantec Ghost because it actually boots an installer off a network server and then installs Windows from scratch. The currently **RIS doesn't actually work with Etherboot** the first stages run and it auths off the Domain controller correctly but when it loads the next stage of the loader it cycles back to the start of the process and doesn't carry on. More information about setting up RIS: [[http://support.microsoft.com/?kbid=298750|How To Set Up and Configure Remote Installation Services in Windows 2000]] (setting up Windows Server 2003 is similar) ===== How RIS works ===== RIS works like this (see tcpdumps for more information): * DHCP Discover by the PXE Client (Broadcast) * DHCP Offer by a DHCP Server (VCI != PXEClient?) (Broadcast) * DHCP Offer by the RIS Server (a Windows server that is *not* running DHCP) (Broadcast) * DHCP Request by the PXE Client (Broadcast) * DHCP ACK by the DHCP Server (Broadcast) * DHCP Request by the PXE Client to the RIS Server (Unicast, Port 68 -> 4011) * DHCP ACK by the RIS Server to the PXE Client (Unicast, Port 4011 -> 68) \\ (I own a german copy of Windows Server 2003) * TFTP GET OSChooser\i386\startrom.com * TFTP GET OSChooser\i386\NTLDR * TFTP GET OSChooser\i386\winnt.sif * 17 UDP packets from/to the RIS server (Port 4011) * TFTP GET Setup\German\IMAGES\W2k3\i386\templates\startrom.com * TFTP GET Setup\German\IMAGES\W2k3\i386\templates\NTLDR * (...) the Unicast DHCP ACK by RIS includes: * client ip address (because it is a unicast packet) * next server address * server host name * boot file name * option 54: server identifier * option 97: uuid/guid * option 60: vendor class identifier Etherboot does not send unicast packets to the RIS server. So I tried to include all of the information usually provided by the RIS server in the DHCP OFFER /ACK by the ISC DHCP Server (see my ''dhcpd.conf''). Instead of ''Setup\German\IMAGES\W2k3\i386\templates\NTLDR'' it transfers ''OSChooser\i386\NTLDR'' (the path is wrong) and restarts from the beginning (asking questions about Windows setup). The idea / suggestion that we are making is that Etherboot PXE is resetting "too much" of the environment and so the startrom.com that is downloaded fails to find the various things that the first run has done and so falls back to re-asking the questions that you have already answered. ===== tcpdumps ===== You can download tcpdumps of Etherboot and RIS from the following sites: [[http://www.stud.uni-karlsruhe.de/~ukhi/ris/]] has tcpdumps of PXE and Etherboot clients (ISC DHCP Server, Windows 2003 RIS Server) [[http://parrswood.manchester.sch.uk/~tim/etherboot-ris]] also provides tcpdumps (but is currently down?) ===== Who can test my Etherboot patches for RIS? ===== If you need someone to test new patches for Etherboot, feel free to contact me: My name is Alexander Heinz. Search the etherboot mailing list archives to get my e-mail address. ===== Why are you telling me this? ===== Good question, this a wiki about opensource and etherboot not installing Windows. The reason is that I am about to starting using etherboot to handle RIS in work, allowing us to boot RIS using opensource network support services (dhcp, tftp, dns etc) but still install Windows off an Windows 2003 server. Also as the RIS install processes needs a PXE network card (or it can use a special Microsoft boot floppy which only supports a very small number of NICs?) so we will be making extensive use of Etherboot's PXE support on the older network cards that most of our machines have. ===== Tips for setting up ISC DHCP ===== At the moment Etherboot does not work with RIS, but here is a tip for others who want to test or develop Etherboot: The first file transfered via tftp is ''OSChooser\i386\startrom.com''. The corresponding line in ''dhcpd.conf'' has to be filename "OSChooser\\i386\\startrom.com"; # 2 x \ (!) You will now need to boot your test machine off a local (floppy, cd etc ) etherboot 5.3.9 or above as there are PXE fixes between 5.3.8 and 5.3.9 that enable RIS to work with Etherboot's PXE support. You should then see a line like this: Press F12 for network boot this is RIS starting to boot ===== Caveats ===== In latest CVS version of Etherboot there is a compile time option called -DPXE_DHCP_Strict which adds a GUID option to the DHCP packets sent by Etherboot. This option also changes the vendor class identifier (VCI) to a string starting with 'PXEClient?'. At the time of writing it is not clear, whether this option has to be used. You will need to add network drivers to the RIS image for many of the older network cards, Microsoft KB articles 315279 and 246184 cover how todo this.