从 SAN 设备引导¶
语法¶
sanboot [--drive <drive>] [--filename <filename>] [--extra <filename>]
[--label <label>] [--uuid <uuid>]
[--no-describe] [--keep] [<uri>] [<uri>...]
示例¶
从 iSCSI 目标引导¶
sanboot iscsi:10.0.4.1:::1:iqn.2010-04.org.ipxe.dolphin:storage
从多路径 iSCSI 目标引导¶
sanboot iscsi:192.168.0.101::::iqn.2010-04.org.ipxe.squirrel:storage \
iscsi:192.168.0.102::::iqn.2010-04.org.ipxe.squirrel:storage
以非默认文件名从 iSCSI 目标引导¶
sanboot --filename \EFI\redhat\grub.efi \
iscsi:192.168.0.2::::iqn.2010-04.org.ipxe.chipmunk:rhel6
从 HTTP 目标引导¶
sanboot http://boot.ipxe.org/freedos/fdfullcd.iso
从本地驱动器 0x80 引导¶
sanboot --no-describe --drive 0x80
挂载一个 SAN 目标,然后引导存放在另一个目标上的安装程序¶
sanhook --drive 0x81 ${root-path}
sanboot --no-describe iscsi:10.0.4.1:::1:iqn.2010-04.org.ipxe.dolphin:liveinstall
描述¶
从指定的 SAN 驱动器引导。如果没有显式指定 SAN 驱动器,则使用默认 SAN 驱动器(0x80)。如果指定了一个或多个 SAN 目标 URI,它们会被自动挂载为指定的 SAN 驱动器。
除非指定了 --no-describe 选项,否则 SAN 驱动器会通过适当的机制(例如 iSCSI 驱动器的 iBFT)来描述。
在某些平台(例如 UEFI)上,可以使用额外的选项来控制 SAN 引导:
- 如果指定了
--filename选项,则只有包含指定文件名的分区才会被选为引导分区,且指定的文件名会用作 SAN 驱动器内的引导加载器。 - 如果指定了
--extra选项,则只有包含指定附加文件名的分区才会被选为引导分区。 - 如果指定了
--label选项,则只有具有指定(不区分大小写)卷标的分区才会被选为引导分区。 - 如果指定了
--uuid选项,则只有具有指定 GPT 分区 GUID 的分区才会被选为引导分区。
命令状态¶
| 失败 | 引导未成功 |
|---|---|
该命令一般不可能成功返回,因为如果引导成功,控制权就不会回到 iPXE。
另请参阅¶
autobootsanhooksanunhook- 全部 iPXE 命令列表
备注¶
大多数 SAN 目标上的 BIOS 主引导记录(MBR)代码只有在目标被挂载为默认 SAN 驱动器(0x80)时才能引导。
你可以选择指定一个 SAN 目标 URI,它会在尝试引导之前自动挂载为指定的 SAN 驱动器。如果随后引导失败,该驱动器会被自动卸载,除非指定了 --keep 选项。
你可以通过指定多个 SAN 目标 URI 来创建多路径 SAN 设备。iPXE 会使用最先响应的 SAN 目标,如果原来的 SAN 目标因任何原因失败,会重试所有 URI。你必须确保多路径 SAN 设备中的所有 SAN URI 指向同一个底层 SAN 驱动器。
如果你希望挂载多个相互独立的 SAN 驱动器,必须使用 sanhook 命令逐个挂载每个非引导驱动器。
在 UEFI 平台上,一些较旧的操作系统(例如 RHEL6)会以非默认文件名安装引导加载器。你可以使用 --filename 选项(或 san-filename 设置)来指定正确的引导加载器文件名。例如:
# For RHEL6
sanboot --filename \EFI\redhat\grub.efi \
iscsi:192.168.0.2::::iqn.2010-04.org.ipxe.chipmunk:rhel6
# For Debian
sanboot --filename \EFI\debian\grubx64.efi \
iscsi:192.168.0.2::::iqn.2010-04.org.ipxe.chipmunk:debian10
为了向后兼容,你可以使用 keep-san 设置来阻止 iPXE 卸载 SAN 驱动器,也可以使用 skip-san-boot 设置来阻止 iPXE 从 SAN 驱动器引导。这两个设置组合起来的功能大致相当于 sanhook 命令。
你可以使用 sanboot 命令在不退出 iPXE 的情况下从本地磁盘驱动器引导。如果 BIOS 或 UEFI 的 bug 导致你无法干净地退出 iPXE,这个方法会很有用。例如:
# Boot from local hard disk
sanboot --no-describe --drive 0x80
在 UEFI 平台上,你可以指定驱动器号零,以便从任何匹配的磁盘(无论是 SAN 驱动器还是本地磁盘)引导。你可以把它与 --extra、--label 等过滤选项结合使用,在不知道驱动器号的情况下从正确的磁盘引导。例如:
# Boot from any disk (SAN or local) containing a Fedora installation
sanboot --drive 0 --extra \EFI\fedora