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.

gsoc/nfs.txt ยท Last modified: 2014/03/09 17:40 by mareo
Recent changes RSS feed CC Attribution-Share Alike 4.0 International Driven by DokuWiki
All uses of this content must include an attribution to the iPXE project and the URL https://ipxe.org
References to "iPXE" may not be altered or removed.