带有可启动驱动程序套件的 SLES 11 SP3 - 无法获取映像错误

带有可启动驱动程序套件的 SLES 11 SP3 - 无法获取映像错误

我尝试使用 Cobbler 安装 SLES 11 SP3,但下载 NBP 文件后失败。屏幕上的错误是“无法获取 TFTP 映像”。

我有一个类似的 SLES 11 SP2 设置,它运行良好。此设置的不同之处在于,我在 IBM x3500 M5 服务器上安装 SLES 11 SP3,这需要在安装操作系统本身之前安装可启动驱动程序套件 (BDK)。

我的设置如下:

/var/lib/tftpboot> tree uefisp3
uefisp3
├── biostest
├── bootx64.efi
├── elilo.conf
├── initrd
├── linux
├── memtest
├── message
└── pxelinux.0

initrd 和 linux 不是来自 SLES DVD,而是来自 BDK 映像。

引自https://drivers.suse.com/doc/Usage/Driver_Kits.html:将驱动程序套件 iso 映像中的内核和 initrd 映像复制到 tftp 启动服务器上的相应位置。initrd 和内核映像位于 /boot/x86_64/loader 目录下。

我曾尝试通过将文件名指向 uefisp3/bootx64.efi、pxelinux.0 和 uefisp3/pxelinux.0 来更改 /etc/cobbler/dhcp.template,但它们都不起作用。

我的 cobbler 发行版报告:

Name                           : sles11sp3
Architecture                   : x86_64
Breed                          : suse
Comment                        :
Initrd                         : /driverkit/boot/x86_64/loader/initrd
Kernel                         : /driverkit/boot/x86_64/loader/linux
Kernel Options                 : {'install': 'http://192.168.0.10/sles/sles11sp3', 'addon': 'http://192.168.0.10/sles/driverkit'}
Kernel Options (Post Install)  : {}
Kickstart Metadata             : {}
Management Classes             : []
OS Version                     : sles10
Owners                         : ['admin']
Red Hat Management Key         : <<inherit>>
Red Hat Management Server      : <<inherit>>
Template Files                 : {}

我的 elilo.conf(说实话我甚至不确定我是否需要这个文件,但这是我使用 SLES 11 SP2 的方法):

/var/lib/tftpboot> cat uefisp3/elilo.conf
prompt
timeout=100
default=linux

image=linux
    label=linux
    description = "Installation"
    initrd=initrd
    append="/images/sles11sp3/initrd textmode=1 install=http://192.168.0.10/sles/sles11sp3 autoyast=http://192.168.0.10/cblr/svc/op/ks/profile/raid1drbd_sp3i addon=http://192.168.0.10/sles/driverkit"

摘自 pxelinux.cfg/default 文件:

LABEL raid1drbd_sp3
        kernel /images/sles11sp3/linux
        MENU LABEL raid1drbd_sp3
        append initrd=/images/sles11sp3/initrd textmode=1 install=http://192.168.0.10/sles/sles11sp3 addon=http://192.168.0.10/sles/driverkit  autoyast=http://192.168.0.10/cblr/svc/op/ks/profile/raid1drbd_sp3
        ipappend 2

TFTP 服务器可以工作,因为我尝试手动从 TFTP 服务器获取一些文件。/var/log/messages 中有一个错误“tftp:客户端不接受选项”,从我读到的内容来看,这很可能与我现在面临的问题无关。

有人使用驱动程序套件成功安装了 SLES 11 SP3 吗?

更新:

在 PXE 启动尝试期间捕获以下内容:

SLES 11 SP3 上的 PXE 启动

2015-05-21 16:30:52.830169 IP 192.168.0.50.fj-hdnet > spacewalk.tftp:  49 RRQ "uefisp3/bootx64.efi" octet tsize 0 blksize 1468
2015-05-21 16:30:52.839093 IP 192.168.0.50.h323gatedisc > spacewalk.tftp:  41 RRQ "uefisp3/bootx64.efi" octet blksize 1468 
2015-05-21 16:30:53.360209 IP 192.168.0.50.h323gatestat > spacewalk.tftp:  41 RRQ "uefisp3/bootx64.efi" octet blksize 1468 
2015-05-21 16:30:53.872046 IP 192.168.0.50.h323hostcall > spacewalk.tftp:  30 RRQ "/grub.efi" octet blksize 512 
2015-05-21 16:30:53.875762 IP 192.168.0.50.caicci > spacewalk.tftp:  30 RRQ "/grub.efi" octet blksize 512

时间不多了,明天再做进一步测试。谢谢你的想法。太棒了!

第二次更新:

目前 PXE 和自动安装一样好用。但是由于 elilo.conf 错误,服务器无法启动。安装时我不在场,所以不知道哪里出了问题。没有机会再进行一轮安装。

谢谢。

答案1

抱歉回复迟了,这就是我让它工作的方法。

1 - 将 SLES 11 SP3 挂载到 /sles11sp3

2 - 将可启动驱动程序套件挂载到 /bdk

3 – 将 grub.efi 文件复制到 /var/lib/tftpboot/ 目录。

# cp /bdk/EFI/BOOT/grub.efi /var/lib/tftpboot/

4 - 将 bootx64.efi、kernel 和 initrd 以及 grub.cfg 复制到 /var/lib/tftpboot/uefisp3/ 目录中。

# cp /bdk/EFI/BOOT/bootx6.efi /var/lib/tftpboot/uefisp3/
# cp /bdk/boot/x86_64/loader/linux /var/lib/tftpboot/uefisp3/
# cp /bdk/boot/x86_64/loader/initrd /var/lib/tftpboot/uefisp3/
# cp /sles11sp3/EFI/BOOT/grub.cfg /var/lib/tftpboot/uefisp3/

除了 initrd 文件外,所有文件都可以从 SLES DVD 或驱动程序工具包中复制。initrd 文件必须从驱动程序工具包中复制。

5 - 修改 grub.cfg 文件。对我来说唯一重要的菜单项是安装,所以我删除了其余的菜单项。

menuentry 'Auto Installation' {
  set gfxpayload=keep
  echo 'Loading kernel ...'
  linuxefi /images/sles11sp3/linux splash=silent textmode=1 showopts install=http://192.168.0.10/sles/sles11sp3 autoyast=http://192.168.0.10/sles/autoyast/sles11sp3towerbdk.ks
  echo 'Loading initial ramdisk ...'
  initrdefi /images/sles11sp3/initrd
}

6 – 在 autoyast 文件中添加以下内容:

  <add-on>
    <add_on_products config:type="list">
      <listentry>
        <media_url><![CDATA[http://192.168.0.10:80/sles/bdk]]></media_url>
        <product>driver-kit</product>
        <product_dir>/</product_dir>
      </listentry>
    </add_on_products>
  </add-on>

7 – 在 dhcpd.conf 文件中添加 uefisp3 组。

group {
        filename "uefisp3/bootx64.efi";
        next-server 192.168.0.10;
    host test { hardware ethernet 40:F2:H9:A6:49:C7; fixed-address 192.168.0.50; option host-name test; }
}

8——重新启动 dhcp 和 tftp 服务。

@Pat 感谢 tcpdump 的想法,它促成了一些发现。

相关内容