Hello friends,
As all we know that disk less client does not have any OS,i have done booting clients with single server in network,now i want to boot a client in a network in presence of 2 server for eg:-Windows server 2003 & Linux server,in this i am just booting from a boot image & i would like to add a program in that boot image that can now scan for a n number of server's available in network & give a option to client to boot from.....plz can any one suggest me how to start for this


thanks

Dani AI

Generated

asked how to let a diskless client “scan” the network and offer a choice between servers; pointed out the development forum but did not address the technical path. A practical answer: do not reimplement PXE/TFTP/DHCP in C from scratch. Use an existing network boot stack (PXE/iPXE or PXELINUX) to present a menu and chainload the chosen server’s image. Put the discovery logic on the servers (or on a central manifest) and let the bootloader fetch that manifest at boot.

A minimal workflow to implement:

  1. Configure DHCP (and ProxyDHCP if needed) to point clients to a network bootstrap (pxelinux.0 or an iPXE binary).
  2. Host a simple HTTP/TFTP server with a boot menu script. With iPXE you can fetch a remote script that builds the menu dynamically.
  3. For Linux: serve kernel+initrd and use NFS root or an initramfs that mounts the root filesystem over NFS/HTTP/iSCSI.
  4. For Windows: chain to WDS/RIS or boot WinPE that connects to an iSCSI LUN or SMB share (Windows network-boot is more complex and must respect licensing/activation).

Example iPXE menu (put on your HTTP server, chain to it from PXE):

#!ipxe
dhcp
menu Choose OS:
item linux Boot Linux (HTTP+NFS)
item windows Boot Windows (WDS)
item shell iPXE Shell
choose --default linux --timeout 5000 target && goto ${target}

:linux
kernel http://10.0.0.1/images/vmlinuz
initrd http://10.0.0.1/images/initrd.img
boot

:windows
chain http://10.0.0.2/wds/boot/wdsnbp.com

:shell
shell

If you really want a C program to “scan” the network, implement it inside an initramfs (for Linux) or WinPE (for Windows). Have it probe for known services (HTTP manifest, NFS 2049, SMB 445, iSCSI 3260) by attempting short nonblocking TCP connects or fetching a small manifest file. If a service responds, the program writes a simple iPXE/PXELINUX menu or directly triggers the chosen chainload. Test with BIOS vs UEFI clients, watch DHCP options, TFTP block size, MTU/firewalls, and Windows licensing.

References: iPXE documentation (iPXE), PXELINUX docs (PXELINUX (SYSLINUX)), and Microsoft’s network boot/WDS guidance ().

Recommended Answers

All 2 Replies

Hello friends,
As all we know that disk less client does not have any OS,i have done booting clients with single server in network,now i want to boot a client in a network in presence of 2 server for eg:-Windows server 2003 & Linux server,in this i am just booting from a boot image & i would like to add a program in that boot image that can now scan for a n number of server's available in network & give a option to client to boot from.....plz can any one suggest me how to start for this


thanks

hello Friends,
Sorry if i can't Explain my question properly,what i am trying to do is i want to writ a program which scan network for Operating system at boot time.plz if any known how to start writing that program in c.reference plz
Thank u all

hi, scroll up see the toolbar at the top and you see different categories,like Hardware /software and software development and web development ,got it ,click on the software development one and you get different links pick the one best to suite your needs ,this is where the people you might be able to help you best hang out !

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.