SAN URI¶
从 SAN 引导时,你可以使用 SAN URI 指定 SAN 目标的位置。例如,在 iPXE 脚本中使用 sanboot 命令时:
#!ipxe
sanboot iscsi:10.253.235.1::::iqn.2010-04.org.ipxe:rabbit
或者作为 root-path DHCP 选项(使用 ISC dhcpd):
option root-path "iscsi:10.253.253.1::::iqn.2010-04.org.ipxe:rabbit";
或者作为 root-path DHCP 选项(使用 Microsoft DHCP 服务器):

SAN URI 的格式取决于你使用的 SAN 协议。
iSCSI¶
iSCSI SAN URI 的格式由 RFC 4173 定义。一般语法为:
iscsi:<servername>:<protocol>:<port>:<LUN>:<targetname>
例如:
iscsi:10.253.235.1::::iqn.2010-04.org.ipxe:rabbit
iscsi:boot.ipxe.org::::iqn.2010-04.org.ipxe.boot:public
iscsi:192.168.0.1:::1:iqn.1991-05.com.microsoft:msdos622-target
iscsi:opensolaris.home::::iqn.1986-03.com.sun:02:e9abf4cd-714b-c6ec-d017-eea5a56252ed
<servername>是 iSCSI 目标的 DNS 名称或 IP 地址。<protocol>会被忽略,可以留空。[^1]<port>是 iSCSI 目标的 TCP 端口。可以留空,此时使用默认端口(3260)。<LUN>是引导磁盘的 SCSI LUN,十六进制。可以留空,此时使用默认 LUN(0)。<targetname>是 iSCSI 目标的 IQN。
如果你使用 iSCSI 身份验证,则需要在尝试连接 SAN 目标之前配置 username 和 password 设置(可能还需要配置 reverse-username 和 reverse-password 设置)。无法在 iSCSI SAN URI 中直接指定用户名和密码。

AoE¶
AoE SAN URI 的格式为:
aoe:e<n>.<m>
例如:
aoe:e0.0
aoe:e0.1
aoe:e2.4
<n>是 AoE 主设备号(也称为架号/shelf number)。<m>是 AoE 次设备号(也称为槽号/slot number)。
无法在 AoE SAN URI 中指定特定的网络设备。iPXE 会使用最近打开的网络设备。
HTTP¶
HTTP SAN URI 的格式就是一个标准的 HTTP URI。例如:
http://boot.ipxe.org/freedos/fdfullcd.iso
注意,HTTP 服务器必须支持 range 请求,否则 SAN 引导会失败。
FCP(包括 FCoE)¶
FCP SAN URI 的格式为:
fcp:<wwn>:<lun>
例如:
fcp:20:00:00:1f:16:bc:fe:2f:0
fcp:20:00:52:54:00:9a:ba:bc:0
<wwn>是 FCP 目标的 Fibre Channel 端口 WWN。<lun>是引导磁盘的 SCSI LUN。
FCoE 没有单独的语法,也无法在 FCP/FCoE SAN URI 中指定特定的网络设备。只要检测到 FCoE 网络,FCoE 接口就会自动创建,iPXE 会在所有打开的 FCoE 接口上搜索 FCP 目标。
Infiniband SRP¶
Infiniband SRP SAN URI 的格式为:
ib_srp:<sgid>:<sidx>:<shca>:<dgid>:<pkey>:<svc>:<lun>:<didx>:<dioc>
例如:
ib_srp::::fe800000000000000002c9030001c65b::0002c9030001c65a::0002c9030001c65a:0002c9030001c65a
<sgid>是 16 字节的发起方端口 GID。可以留空,此时使用最近打开的 Infiniband 端口的 GID。<sidx>是 8 字节的发起方 ID 扩展。可以留空,此时使用零值。<shca>是 8 字节的发起方适配器 GUID。可以留空,此时使用最近打开的 Infiniband 端口的 GID 中的 GUID 部分。<dgid>是 16 字节的目标端口 GID。<pkey>是分区键。可以留空,此时使用默认分区键。<svc>是 8 字节的服务标识符 GUID。<lun>是 SCSI LUN。可以留空,此时使用默认 LUN(0)。<didx>是 8 字节的目标 ID 扩展。<dioc>是 8 字节的目标 I/O 控制器 GUID。
注意,<sidx>:<shca> 拼接起来构成通用 SRP 发起方端口 ID,<didx>:<dioc> 拼接起来构成通用 SRP 目标端口 ID。
[^1]: <protocol> 唯一合法的值是 6,表示协议为 TCP。