This is an old revision of the document!


Adding NFS support

Known issues
  • Download will fail if the requested file is a symlink.
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
Current goals
  • [IN PROGRESS] Code cleanup an documentation.
  • Getting merged into the main tree.
Future goals

How to get a file via NFS in iPXE

First, clone my reposiroty and switch to the nfs branch:

 git clone git://git.ipxe.org/people/mareo/ipxe.git
 cd ipxe/src
 git checkout nfs

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[:port]/path/to/file

where port is the PORTMAP daemon (rpcbind) port, which is usually 111.

gsoc/nfs.1342434697.txt.gz ยท Last modified: 2012/07/16 10:31 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.