Adding NFS support

Completed goals
  • 2012/05/21 - Achieve connection to a NFSv3 server.
  • 2012/05/30 - Design a SUN ONC RPC layer for iPXE.
    • Achieve sending of a NULL query via the RPC layer. A NULL query is like a NO-OP instruction, it can be used to test whether the RPC layer is properly implemented.
  • 2012/06/22 - Get the port of the NFS server and the MOUNT service.
    • Achieve connection to a PORTMAP service.
    • 2012/06/22 - implement the PORTMAP protocol.
      • 2012/05/30 - Issue a PORTMAP_GETPORT call.
      • 2012/06/22 - Get the PORTMAP_GETPORT reply.
  • 2012/06/25 - Get the root filehandle
    • 2012/06/25 - Issue a MNT request to the MOUNT service.
    • 2012/06/25 - Parse the MNT reply.
  • 2012/06/27 - Achieve sending of a LOOKUP query via the RPC layer. A LOOKUP query allows one the get a file handle from a path, this handle can then be used to access the file.
    • 2012/06/27 - Issue a LOOKUP request to the NFS service
    • 2012/06/27 - Parse the LOOKUP reply.
  • 2012/07/01 - Achieve sending of a READ query via the RPC layer. A READ query allows one to get the content of a file by its file handle.
    • 2012/06/27 - Issue a READ call to the NFS service
    • 2012/07/01 - Get the file content.
  • 2012/07/01 - iPXE is now able to load an image via NFS.
  • 2012/08/06 - Symlinked images can now be downloaded.

How to get a file via NFS in iPXE

Since NFS support has been merged in the main tree, you no longer need to checkout my repository.

Enable NFS support:

  echo "#define DOWNLOAD_PROTO_NFS" >> config/local/general.h

You can now compile iPXE:

  make

URI are in this form:

 nfs://server-address/mountpoint/path/to/file

where path/to/the/file is relative to the mountpoint.

Links and references

 
gsoc/nfs.txt · Last modified: 2014/03/09 17:40 by mareo
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki
All uses of this content must include an attribution to the iPXE project and the URL http://ipxe.org
References to "iPXE" may not be altered or removed.