将设备驱动程序添加到 Solaris 10 操作系统(x86 平台版)中的新引导安装映像James C. Liu 和 Brian Dowdy,2006 年 6 月 目录:
摘要:此工程参考说明如何将新设备驱动程序二进制文件添加到 Solaris 操作系统 (Operating System, OS) 的安装映像,以便具有新设备的系统在安装过程中和安装后将能够安装和支持此设备。本文档适用于具有 UNIX 工作背景的系统管理员和开发者。目标操作系统是具有新引导体系结构的适用于 x86 平台的 Solaris 10 01/06 发行版(也称为 Update 1)以及 OpenSolaris(也称为 Nevada)。此说明不适用于早期版本的 Solaris 10 操作系统(x86 平台版,GA 发行版 03/05)或任何版本的 Solaris 操作系统(SPARC 平台版)。 简介随着更多的用户开始采用适用于 x86 平台和 x64 平台的 Solaris 10 操作系统,驱动程序的开发和测试也越来越多。通过软盘或 USB 海量存储设备,可以在系统安装后添加某些驱动程序。大多数网络驱动程序都是如此。如果系统具有光驱,则可以先安装 Solaris 操作系统,在系统引导自身后再添加新驱动程序。 但是,当用户要在更多系统(某些系统没有光驱、软盘或 USB 端口)或具有新类型存储控制器的系统上使用 Solaris 操作系统时,会出现一个问题:如果 Solaris 安装介质中没有某个设备的驱动程序二进制文件,如何在需要该设备的系统上安装 Solaris 操作系统呢?对于存储控制器,除非确定安装程序介质具有驱动程序,否则无法将安装软件包保留到磁盘存储器上。而对于主要提供网络接口(几乎没有其他 I/O 接口)的薄型计算机,如果通过网络引导系统的初始 Solaris 实例没有用于网络接口的驱动程序,则在该系统上将无法执行 Solaris 操作系统的网络安装。 因此,此说明文档提供了一组简明指导,帮助您将新设备驱动程序二进制文件插入安装介质中。它主要介绍以下两种安装方法:
本文档仅适用于使用新 Solaris 引导体系结构的 Solaris 10 1/06(也称为 Update 1)和 OpenSolaris (Nevada) 版本。(有关详细信息,请参见“资源”部分。) 网络 PXE 引导安装目前安装 Solaris 操作系统的最快、最便捷的方法可能是通过网络从 Solaris JumpStart 服务器进行安装。使用 Solaris Enterprise System 的许多管理员可能已经了解适用于基于 SPARC 技术的 Sun 服务器和工作站(具有网络感知 Open Boot PROM 固件)的 JumpStart 技术。Sun 大约在 20 年前就普及了此安装方法。其基本过程包括以下简单步骤:
最近几年,以太网接口也几乎已经成为所有 PC 上的标准接口,并且许多 PC 在出厂时就启用了 Intel 预引导执行环境 (Pre-boot Execution Environment, PXE) 固件,该固件扩展了 PC BIOS,使其具有类似于执行网络引导和安装的功能。PC 上的过程基本上都是相同的,唯一的不同之处在于,在步骤 (2) 和 (3) 中 PXE 引导利用 DHCP 检索网络、引导和安装信息。但是,许多 Solaris 系统管理员可能不知道,在添加了对 PXE 引导客户机的 DHCP 服务器支持后,Solaris JumpStart 服务器还可以引导 PC。所有必需的服务器软件组件都已捆绑到 Solaris 操作系统中,您只需进行配置即可。 设置 JumpStart PXE 引导服务器Solaris 安装介质通常包含一个用于安装基本 JumpStart 服务器的实用程序。将光盘插入正在运行的 Solaris 系统时,通常会提示卷管理器在 # cd /cdrom/sol_10_106_x86/Solaris_10/Tools 用法比较直观。只需指定命令和目标安装目录即可: # ./setup_install_server /export/install 用户可以根据需要将目标目录 如果用户只有 CD-ROM 驱动器且不支持 DVD,将从多个光盘进行安装。对于 CD1 和 DVD,初始安装是相同的。执行初始 安装服务器设置完成后,请务必将安装文件系统导出到网络上。要执行此操作,请编辑 share -F nfs -o ro,anon=0 -d "jumpstart dir" /export/install 可以将 # svcadm enable svc:/network/nfs/server ; shareall 为了完整起见,可以创建以下目录: # mkdir /export/install/jumpstart 然后将样例 # cp -r /export/install/Solaris_10/Misc/jumpstart_sample/* \ /export/install/jumpstart 为 PXE 引导设置 DHCP 服务器在上一部分,您完成了将 JumpStart 安装软件包传输到服务器所需的大多数任务,并使这些软件包可以通过 NFS 在网络上进行访问。但是,PC 引导客户机必须先通过网络引导并获取用于开始安装的初始网络和引导文件,才能访问这些软件包。对于大多数的网络安装环境,同一 JumpStart 主机还运行引导客户机的 DHCP 和 PXE 引导服务器进程。 PXE 引导客户机启动时,它将进行广播以获取网络信息和引导文件。网络信息是通过 DHCP 提供的。然后使用 TFTP 传输 Solaris 网络引导程序 (network boot program, nbp) 和其他初始化文件(如 Solaris x86.miniroot),最后,在 Solaris 安装程序启动后,将通过 NFS 传输 JumpStart 安装软件包。 配置 Solaris DHCP 需要执行以下操作:
如果已配置 DHCP 服务器,则可以通过在 # dhcpconfig -Ux 在此处配置的服务器将对 x86 平台上 Solaris 操作系统的所有 PXE 引导请求进行应答,并且可以在它是唯一安装服务的隔离子网上正常工作。但是,如果此 DHCP 服务必须与其他服务共存,或者需要特定配置,则可以进行定制以便仅应答来自特定 MAC 地址或特定网络的请求。有关详细信息,请参见 Solaris DHCP Administration Guide(Solaris DHCP 管理指南)。 以下脚本可简化 PXE 的大多数常规 DHCP 配置: #!/bin/sh dhcpconfig -D -r SUNWbinfiles -p /var/dhcp dhcpconfig -N <network> -m <netmask> -t <routerip> dhtadm -A -s SrootOpt -d 'Vendor=SUNW.i86pc,1,ASCII,1,0' dhtadm -A -s SrootIP4 -d 'Vendor=SUNW.i86pc,2,IP,1,1' dhtadm -A -s SrootNM -d 'Vendor=SUNW.i86pc,3,ASCII,1,0' dhtadm -A -s SrootPTH -d 'Vendor=SUNW.i86pc,4,ASCII,1,0' dhtadm -A -s SswapIP4 -d 'Vendor=SUNW.i86pc,5,IP,1,0' dhtadm -A -s SswapPTH -d 'Vendor=SUNW.i86pc,6,ASCII,1,0' dhtadm -A -s SbootFIL -d 'Vendor=SUNW.i86pc,7,ASCII,1,0' dhtadm -A -s Stz -d 'Vendor=SUNW.i86pc,8,ASCII,1,0' dhtadm -A -s SbootRS -d 'Vendor=SUNW.i86pc,9,NUMBER,2,1' dhtadm -A -s SinstIP4 -d 'Vendor=SUNW.i86pc,10,IP,1,1' dhtadm -A -s SinstNM -d 'Vendor=SUNW.i86pc,11,ASCII,1,0' dhtadm -A -s SinstPTH -d 'Vendor=SUNW.i86pc,12,ASCII,1,0' dhtadm -A -s SsysidCF -d 'Vendor=SUNW.i86pc,13,ASCII,1,0' dhtadm -A -s SjumpsCF -d 'Vendor=SUNW.i86pc,14,ASCII,1,0' dhtadm -A -s Sterm -d 'Vendor=SUNW.i86pc,15,ASCII,1,0' dhtadm -A -s SbootURI -d 'Vendor=SUNW.i86pc,16,ASCII,1,0' dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d ':BootFile="nbp.SUNW.i86pc":BootSrvA=<serverip>:' dhtadm -A -m SUNW.i86pc -d \ ':SinstNM="<server>":SinstIP4=<serverip>:\ SinstPTH="/export/install":SrootNM="<server>":\ SrootIP4=<serverip>:\ SrootPTH="/export/install/Solaris_10/Tools/Boot":\ SjumpsCF="<server>:/export/install/jumpstart":\ SsysidCF="<server>:/export/install/jumpstart":' 在开头部分,应将 此外,编辑 192.168.100.101 pxeclient1 192.168.100.102 pxeclient2 现在,使用 # pntadm -A 192.168.100.101 -m <server> -h pxeclient1 <network> # pntadm -A 192.168.100.102 -m <server> -h pxeclient2 <network> 请注意,对于上面 PXE 配置脚本的最后一行所指定的服务器和网络宏, # pkill -HUP in.dhcpd 此信号将强制 DHCP 服务器重新读取其配置文件。这应该处理了 DHCP 服务器配置的第一步。 为了配置用于 TFTP 的引导文件,Solaris 操作系统提供了一个命令,以简化所有文件的创建和复制到 # ./add_install_client -d SUNW.i86pc i86pc 现在,应该能够在 Solaris 操作系统上测试 PC 客户机和引导 PXE。 添加更多驱动程序为 PXE 引导客户机添加驱动程序包括两个步骤。如前面所述,通常,最关键的是添加存储控制器和网络接口驱动程序。第一步是将这些驱动程序插入通过 TFTP 装入的 x86.miniroot 中。 如果遵循上述指导,则该文件应位于以下位置: /export/install/boot/x86.miniroot 但是该文件可能位于 # /boot/solaris/bin/root_archive unpack ./x86.miniroot ./unpacked 解压缩 miniroot 后,将 32 位驱动程序二进制文件和 # add_drv -b <fullpath-to-unpacked> -n -v -m '* 0600 root sys' -i "<device ids>" <mydrivername> 请注意, '"pci1a44,9043" "pci1a44,9065" "pci1a44,9106" "pci1a44,9053"' 此外, 最后一步是使用同一命令重新压缩 miniroot,但是将 # cp ./x86.miniroot ./x86.miniroot.orig 然后运行 # /boot/solaris/bin/root_archive pack ./x86.miniroot ./unpacked 如果之前 PXE 引导服务器正在工作,则客户机应该能够引导和装入 x86.miniroot,并完成 Solaris 10 1/06 发行版(x86 平台版)的常规安装。在安装过程中将出现安装选项菜单;缺省为执行交互式安装。执行交互式安装时,安装程序将允许选择自动重新引导或手动重新引导。请选择手动重新引导,因为尽管在先前步骤中已将驱动程序置于 miniroot 中,但是它们不会执行任何操作以将缺少的网络驱动程序安装到最终的客户机系统上。请选择手动重新引导,以便可以在重新引导之前将驱动程序复制过来,并在最终客户机磁盘映像上运行 现在的问题是,您应将驱动程序二进制文件放置在何处,才能使安装客户机能够将其复制过来? 可以从 miniroot 已有的 CD/DVD-ROM 介质安装创建具有其他驱动程序的可引导 CD 或 DVD 安装介质的过程与在网络安装中更改 x86.miniroot 的过程类似。需要进行的额外工作主要是挂载 CD 或 DVD,将整个光盘映像内容复制到其他目录,在安装映像副本上执行相同的驱动程序插入操作,然后重新打包文件并创建可以刻录到 CD 或 DVD 介质上的可引导 ISO 映像。 使用 CD/DVD-ROM 介质如果 DVD 或 CD-ROM 介质已存在,则复制文件的过程应该十分简单。只需将光盘插入驱动器,然后在命令行中执行以下操作即可: # cd /cdrom/sol_10_106/x86; find . -depth -print|cpio -vpdm <targetdir> 请注意, 完成后,使用 # mkisofs -o <outfilename.iso> -b boot/grub/stage2_eltorito \ -c .catalog -no-emul-boot -boot-load-size 4 \ -boot-info-table -relaxed-filenames -N -L -l -r -J \ -d -D -V <volname> <targetdir> 将 使用 CD/DVD ISO 文件如果没有介质,但已下载 ISO 文件,则无需先刻录介质再将其挂载。Solaris 操作系统提供了回送文件系统挂载命令 # /usr/sbin/lofiadm -a <isoimagepath> 请注意, # mount -F hsfs /dev/lofi/1 /mnt 正如“使用 CD/DVD-ROM 介质”部分中所述,现在可以访问这些文件,但在 完成回送文件系统挂载后,只需运行 # umount /mnt; lofiadm -d /dev/lofi/1 将 资源有关详细信息,请参见以下有用链接:
|
Breathe Easier
Take a Sun certification exam, and if you need it, receive a free retake.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
|