差分表示


* ISO imageのmount
s10dvdのinstallサーバを作るということで、DVD imageを入手したのだが、
構築手順が久しぶりすぎてわからんということで。
** DVD ISO imageのmount
Solaris9からあるlofiadm(1M)を使って、/dev/lofi/ の下の
pseudoデバイスとして、一度登録?して、その後、hsfs(ISO 9660 CD-ROM imageの
ためのfs)としてmountすれば iso imageがファイルシステム上、access可能になる。~
操作手順はこんな感じ。

''mount手順''

lofiadmの引数にする対象のファイルのパスは
full pathじゃないとエラーになるので、`pwd`/[ファイル名]とかで。~
mountはman pageの例にあわせて roにしてみた。
---(
# lofiadm -a [対象のファイル]
/dev/lofi/1
# mount -F hsfs -o ro /dev/lofi/1 [マウントする場所]
---)
''lofi登録確認''

lofiドライバ経由で見ることが出来るようになったかを確認するには
引数無しで、lofiadmをたたけばok
---(
# lofiadm
Block Device             File
/dev/lofi/1              [対象のファイルのfull path]
---)
''umount手順''

umount後に、lofiadm -dでok
---(
# umount [マウントした場所]
# lofiadm -d /dev/lofi/1 <- lofiadmでlofi対象になったデバイスがこれと仮定
---)
** install pkgの展開
以下、isoイメージをマウントしたディレクトリ名を、s10 としておく。~
s10/Solaris_10/Tools/setup_install_serverスクリプトで、installサーバの
準備をする。
---(
# cd s10/Solaris_10/Tools
# ./setup_install_server [dst dir]
---)
後は、延々と待ち。orz
** tftpbootとかのための準備
tftpbootのために、installしたいクライアントのMACアドレスは 
/etc/ethersに登録しておくように。~
その後、s10/Solaris_10/Tools/add_install_clientスクリプトを実行すると、
tftpbootのための設定と、rarpを受けるためのサーバがあがる。~
最後にinstallする箱で、boot netしてからは省略(*1)。
---(
(*1) 既知かもシレンが、一応蛇足。
  tftpbootするために出すRARPはL2用なので、installする箱とinstallサーバが
  同じセグメントじゃないと、installする箱はいつまでたってもRARP投げてます。
  離れてるなら、同じ場所にbootサーバを別途用意する必要があるので、
  その場合は、もう一手間、setup_install_serverの -b optionで、bootサーバを
  用意する必要があったりします。
---)
** CD ISO Imageの場合
SunSolve 50566に書いてあるそうですが、CD  ISO imageをダウンロードした場合、
setup_install_serverの対象となるboot imageはcdのサイズ削減のために
同梱されていません。(つまり、DVD imageにはあるということです。orz)

なので、boot imageはbootable CDになっているv1のisoから抜いて作る必要があります。
とりあえず今からimageをダウンロードする場合は、DVD ISOにしておくことを強く推奨します。w

ここではCD ISO imageをダウンロードしてしまった残念な貴方のために、bootable cd ISO imageから、boot imageを作成する手順を記載します。
*** vtoc(Virtual Table of Contents)を調べる
*** vtoc(Volume Table of Contents)を調べる
bootable CDはスライスが切ってあって、s1にboot imageが格納されてます。なので、まず
s1の場所を特定するために、vtocを抜きます。
 # dd if=sol-xx-ux-ga-sparc-v1.iso of=vtoc bs=512 count=1
で、vtocからs1の場所を探ります。
 # od -D -j 452 -N 8 < vtoc
 0000000 0000000xxx 0000yyyyyy
 0000010 
上記の出力から、s1はシリンダxxxから始まり、yyyyyyブロックであると分かりました。Solaris CDは1cyl 640blkなので、
 # echo xxx*640
 zzzzzz
s1はblk zzzzzzから始まり、使っているblk数がyyyyyyであると分かりました。
ということで必要な箇所だけ、ddで抜き出します。
 # dd if=sol-xx-ux-ga-sparc-v1.iso of=sol-xx-ux-ga-sparc-v1-s1.iso \
 bs=512 skip=zzzzzz count=yyyyyy
ここで作った sol-xx-ux-ga-sparc-v1-s1.isoがboot imageのためのisoファイルになります。ちなみに中身はufsです。
*** マウントしてsetup_install_server
ここまできたら、あとはsetup_install_serverを打つ準備をするだけです。
2個(v1とv1-s1)のisoをlofiadm(1M)でpseudo deviceを用意し、
 # lofiadm -a sol-xx-ux-ga-sparc-v1.iso
 /dev/lofi/1
 # lofiadm -a sol-xx-ux-ga-sparc-v1-s1.iso
 /dev/lofi/2
それぞれマウントします。
 # mount -F hsfs -o ro /dev/lofi/1 /cd/s0
 # mount -F ufs -o ro /dev/lofi/2 /cd/s1
これで、boot imageが /cd/s1に用意できたので、
 # /cd/s0/Solaris_10/Tools/setup_install_server -t /cd/s1 [copy先]
で、残りのcdは適当にどうぞ。
* BPARAM C WHOAMI?
http://malpaso.ru/solaris-jumpstart-bug/

バグじゃなく仕様だそうですが。。。orz

**現象
下記の通り、いい感じに死んじゃいます。~
installする際のサブネットが 8bitの整数倍maskじゃないとこうなるかも。。。
(状況再現しないので、ログが適切じゃない可能性が高いです。on 2006-10-18)
---(
{0} ok boot net
Boot device: /pci@1f,4000/network@1,1  File and args:
Timeout waiting for ARP/RARP packet
Timeout waiting for ARP/RARP packet
Timeout waiting for ARP/RARP packet
Timeout waiting for ARP/RARP packet
38800
Requesting Internet address for 8:0:20:c4:33:d4
SunOS Release 5.10 Version Generic_118833-17 64-bit
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
whoami: no domain name

この先のログはとれてません。。。

---)
上記のケースは netmaskが 0xfffff800 (21)になっていました。
**対応
installサーバの [boot img]/Solaris_x/Tools/Boot ディレクトリ(net bootする際の
mini root用img)の tmp/root/etc/inet/netmasksを適当に書いてやる必要が在ります。



Last-modified: 2008-02-08 15:07:54