跳转至

从 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。

另请参阅

备注

大多数 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