添加 NFS 支持¶
已完成目标¶
- 2012/05/21 - 实现与 NFSv3 服务器的连接。
- 2012/05/30 - 为 iPXE 设计一个 SUN ONC RPC 层。
- 实现通过 RPC 层发送 NULL 查询。NULL 查询类似于 NO-OP 指令,可用于测试 RPC 层是否正确实现。
- 2012/06/22 - 获取 NFS 服务器和 MOUNT 服务的端口。
- 实现与 PORTMAP 服务的连接。
- 2012/06/22 - 实现 PORTMAP 协议。
- 2012/05/30 - 发起 PORTMAP_GETPORT 调用。
- 2012/06/22 - 获取 PORTMAP_GETPORT 回复。
- 2012/06/25 - 获取根文件句柄
- 2012/06/25 - 向 MOUNT 服务发起 MNT 请求。
- 2012/06/25 - 解析 MNT 回复。
- 2012/06/27 - 实现通过 RPC 层发送 LOOKUP 查询。LOOKUP 查询允许从路径获取文件句柄,然后可以使用该句柄访问文件。
- 2012/06/27 - 向 NFS 服务发起 LOOKUP 请求
- 2012/06/27 - 解析 LOOKUP 回复。
- 2012/07/01 - 实现通过 RPC 层发送 READ 查询。READ 查询允许通过文件句柄获取文件内容。
- 2012/06/27 - 向 NFS 服务发起 READ 调用
- 2012/07/01 - 获取文件内容。
- 2012/07/01 - iPXE 现在能够通过 NFS 加载镜像。
- 2012/08/06 - 现在可以下载符号链接的镜像。
如何在 iPXE 中通过 NFS 获取文件¶
由于 NFS 支持已合并到主树中,你不再需要检出我的仓库。
启用 NFS 支持:
echo "#define DOWNLOAD_PROTO_NFS" >> config/local/general.h
现在你可以编译 iPXE:
make
URI 的格式如下:
nfs://server-address/mountpoint/path/to/file
其中 path/to/the/file 相对于挂载点。
链接和参考¶
- Git 仓库:
- https://git.ipxe.org/people/mareo/ipxe.git
- NFSv3:
- RFC 1833: Binding Protocols for ONC RPC Version 2
- RFC 1813: NFS Version 3 Protocol Specification
- etherboot 中原有的 NFSv3 实现
- NFSv4
- RFC 3530: Network File System (NFS) version 4 Protocol
- RFC 5661: Network File System (NFS) Version 4 Minor Version 1 Protocol