Solaris 10 OS x86 プラットフォーム版での新しいブートインストールイメージへのデバイスドライバの追加執筆者: Liu および Brian Dowdy、2006 年 6 月
目次
概要: この技術文書では、OS のインストールプロセス中およびインストールプロセス後に、新しいデバイスを搭載するシステムがそのデバイスのインストールとその後のサポートを行えるように、Solaris オペレーティングシステム (OS) 用のインストールイメージに新しいデバイスドライババイナリを追加する方法を説明します。この文書は、UNIX に精通したシステム管理者および開発者を対象としています。対象のオペレーティングシステムは、新しいブートアーキテクチャーを搭載した Solaris 10 x86 プラットフォーム版 01/06 リリース (別名 Update 1) と OpenSolaris (別名 Nevada ) です。この文書で紹介する方法は、Solaris 10 OS x86 プラットフォーム版 (GA release 03/05) 以前のバージョンや、SPARC プラットフォーム版のどのバージョンの Solaris OS にも適用できません。 はじめにSolaris 10 OS x86 および x64 プラットフォーム版を採用し始めるユーザーが増えるにつれ、ドライバ開発およびテストも増加しています。一部のドライバは、OS インストール後に、フロッピーディスクまたは USB 外部記憶装置を使った処理で追加することができます。これは大部分のネットワークドライバに該当します。システムに光学ドライブがある場合は、まず Solaris OS をインストールしてから、システムのブートストラップのあとに新しいドライバを追加できます。 ところが、Solaris OS が使用されるシステムが増え、システムによっては光学ドライブ、フロッピーディスクドライブ、または USB ポートがないものや、新しい種類の記憶装置コントローラがあるものなどが出てきたため、問題が発生しています。 たとえば、Solaris インストールメディアにまだドライババイナリがないデバイスがあり、そのようなデバイスが必要なシステムに Solaris OS をどうやってインストールするのでしょうか。記憶装置コントローラの場合、インストーラメディアに事前にドライバがある場合を除き、ディスク記憶装置にインストールパッケージを追加する方法はありません。また、主にネットワークインタフェースを搭載し、そのほかの入出力デバイスをほとんど搭載していないブレードタイプのコンピュータでは、ネットワーク経由でシステムをブートする最初の Solaris インスタンスにネットワークインタフェース用のドライバがない場合、そのシステムへの Solaris OS ネットワークインストールを実行することが不可能になります。 したがって、この文書では、インストールメディアに新しいデバイスドライババイナリを挿入するための簡潔な手順を説明します。2 つの主要なインストール方法を扱います。
この文書は、新しい Solaris ブートアーキテクチャーを使用する Solaris 10 1/06 (別名 Update 1) および OpenSolaris (Nevada) バージョンにのみ適用されます。詳細は「リソース」を参照してください。 ネットワーク PXE ブートインストール通常、もっとも時間がかからず手軽な Solaris OS のインストール方法は、Solaris JumpStart サーバーからネットワーク経由でインストールするやり方です。Solaris Enterprise System を使用する多くの管理者は、ネットワーク対応の Open Boot PROM ファームウェアを搭載した SPARC 技術をベースとする Sun サーバーおよびワークステーション用の JumpStart 技術をすでにご存じでしょう。Sun はこのインストールテクノロジを 20 年近く前から普及させています。次の単純な手順が基本プロセスです。
近年では、ほぼすべての PC で Ethernet インタフェースが標準となり、また多くの PC では、ネットワークブートストラップおよびインストールを実行する類似機能を使用して PC BIOS を拡張する、Intel の Pre-boot Execution Environment (PXE) ファームウェアが有効になっています。PC のプロセスは本質的に同じですが、唯一の相違点は、手順 (2) および (3) において PXE ブートは DHCP を利用してネットワーク、ブートストラップ、およびインストール情報を取得する点です。ただし、Solaris システム管理者にはあまり知られていませんが、Solaris JumpStart サーバーでも、PXE ブートクライアント用の DHCP サーバーサポートを追加すれば PC をブートできます。必要なすべてのサーバーソフトウェアコンポーネントはすでに Solaris OS にバンドルされているため、これは単に構成の問題になります。 JumpStart PXE ブートサーバーの設定通常、Solaris インストールメディアには、基本的な JumpStart サーバーをインストールするためのユーティリティーが含まれています。稼働中の Solaris システムに光学メディアを挿入すると、通常はボリュームマネージャーがそのメディアを # cd /cdrom/sol_10_106_x86/Solaris_10/Tools 使用法は簡単です。次のように、コマンドとターゲットインストールディレクトリを指定するだけです。 # ./setup_install_server /export/install ユーザーは必要に応じて、ターゲットディレクトリ DVD がサポートされていない CD-ROM ドライブを使用するユーザーは、複数のディスクからインストールを行います。最初のインストールは 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
DHCP サーバーの PXE ブート用設定前のセクションでは、JumpStart インストールパッケージをサーバーに転送し、NFS を介してネットワーク経由でこれらのパッケージをアクセス可能にするのに必要な作業の大部分を終了しました。ただし、PC ブートクライアントがこれらのパッケージにアクセスするためには、ネットワーク経由でブートし、インストールを開始するために初期ネットワークおよびブートファイルを取得する必要があります。ほとんどのネットワークインストール環境では、同じ JumpStart ホストがブートクライアント用の DHCP および PXE ブートサーバープロセスも実行します。 PXE ブートクライアントの起動時に、ブートクライアントはネットワーク情報とブートファイルを求めてブロードキャスト通信を行います。ネットワーク情報は DHCP を介して提供されます。続いて Solaris ネットワークブートプログラム (nbp) や Solaris x86.miniroot などの初期化ファイルが TFTP を使用して転送され、最終的に Solaris インストーラが起動すると NFS を介して JumpStart インストールパッケージが転送されます。 Solaris DHCP の構成には次の作業が必要です。
DHCP サーバーがすでに構成されている場合は、次のように構成解除フラグを用いて # dhcpconfig -Ux ここでユーザーが構成するサーバーは、x86 プラットフォームの Solaris OS に対するすべての PXE ブート要求に対してプロミスキュアスに応答し、このサーバーが唯一のインストールサービスである独立したサブネットで正しく機能します。ただし、この DHCP サービスがほかのサービスと共存しなければならない場合、または特定の構成を必要とする場合は、特定の MAC アドレスからの要求、または特定のネットワークに関する要求のみに応答するようにカスタマイズできます。詳細は『Solaris DHCP Administration Guide』を参照してください。 次に示すスクリプトは、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>
# pkill -HUP in.dhcpd このシグナルにより、DHCP サーバーは構成ファイルを強制的に再読取します。これにより、DHCP サーバー構成の最初の手順が処理されたことになります。 TFTP 用のブートファイルを構成するために、Solaris OS には、すべてのファイルの作成と # ./add_install_client -d SUNW.i86pc i86pc この操作で、Solaris OS 上で PC クライアントをテストし、PXE をブートできるようになりました。 ドライバの追加PXE ブートクライアント用のドライバを追加するには 2 つの手順があります。追加するドライバでもっとも重要なのは、通常、前に説明した記憶装置コントローラおよびネットワークインタフェースドライバです。最初の手順では、これらのドライバを 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 x86 プラットフォーム版 01/06 リリースの通常インストールを完了できるはずです。インストールではインストールの選択肢のメニューが表示されます。デフォルトでは対話型インストールを実行します。対話型インストールを実行する場合、インストーラでは自動リブートと手動リブートを選択できます。手動リブートを選択してください。これは、以前の手順がドライバを 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 OS には、ユーザーが ISO イメージをマウントできるようにする、ループバックファイルシステムマウントコマンド # /usr/sbin/lofiadm -a <isoimagepath>
# mount -F hsfs /dev/lofi/1 /mnt ファイルは、 ループバックファイルシステムのマウントが完了したら、次のように # umount /mnt; lofiadm -d /dev/lofi/1 上述のコマンド行コマンドで、 リソース詳細情報については、次の便利なリンクを参照してください。
|
BigAdmin SubscriptionsBigAdmin Areas
BigAdmin Sun Center
BigAdmin Topics |