さて、FreeBSD 5.0 Developer Preview 1 (DP#1) が出たわけなのですが、 何と言っても見所の一つは、 アーキテクチャに sparc64 が入ったということでしょう。 ということで、潰してもいい UltraSparc のマシンない? って言ったら、とりあえず Ultra5 のマシンがありました。
どうやら TFTP + Diskless でもインストールできるようでしたが、 ずっと簡単な CD-ROM インストールをすることにしました。 CD-R に ISO イメージ (ここにある) を焼き、 これでブートすることにしました。
うーん、もうこんなに立派なインストールページがあるんですね。 一見立派なものの、素人には結構インストールは無理臭い解説だけど (^^;。
はてさて、とりあえず起動してみましょう。
「boot cdrom」……と。
……………………………ぬ? 「Can't read disklabl」だと? CD-ROM になんで disklabel が?
いろいろ悩んだ挙げ句、 怒りに任せて Solaris の CD-ROM を突っ込んで「boot cdrom」しても結果は同じ。 なんでやねん…? ということで、気を取り直して、 今度はもっと腐っていた Ultra 10 を拾ってきました。
電源を入れると、中のディスクが激しく異音を発している… (^^;。 ということで、まずはディスクを取り出しました。 本当にただの IDE ディスクなんですよね〜。 9.12GB, 7200rpm の Seagate。
この間買ってあった 80GB の IDE ディスクをさしてみることに。 34GB オーバーのディスク、認識するかな (34GB は PC の BIOS 問題だから関係ないはず…)。 この際 Solaris で認識するかどうかなどということはどうでもいいんだし。
さて、ブートしてみましょう。 うーん、若干、CD-ROM からも異音がするなぁ…。
をを、起動した!
ブートメッセージによると、
ad0: 76319MB[155061/16/63] at ata2-master WDMA2
だとのこと! ちゃんと 80GB 認識してますね (でも WDMA2 って何だろ。PC では見たことない表記だけど…)。 いきなりディスク 8 倍以上になってしまいました (^^;。
が…、CD-ROM がふと異音を立てたかなぁ〜っと思ったら、 ata3: resetting device で停止してしまいました。 何度やっても、毎回適当な場所で止まってしまいます (止まる場所に再現性無し)。 なんか、犯人は CD-ROM 臭いなぁ?
CD-ROM の代替品ねぇ〜、いざとなるとあるようでないんだよね。 そういえば、ベアボーン組み立てのために、 先日秋葉原で買ってきてあった、 IO データの DVD + CD-RW コンボドライブがあった! あれなら最新だろう! ごめんなさい、もらった…ウソ、借りたぞ。 しかしこれで burncd(8) で書き込めたら笑えるなぁ。
ということで、DVD + CD-RW Justlink 装備の Ultra 10 (^^;。 IO データもまさかこんな使われ方するとはあまり思っていないだろう。 それはともかく、ブートするのか?
を、ブートするじゃん。
なんといきなり「login:」プロンプトが! root + ノーパスワードでログインできます。
mount 状況。 dmesg はこんな感じ。
まずは、disklabel -w -r ad0 auto でデフォルトの disklabel を構築。 このディスクは全くの新品なので、 もしかするとすでに Solaris で使っていたディスクでは、 何らかの別の現象があるかも知れません。
そして、disklabel -e ad0 で ad0 の disklabel を編集します。 面倒なので root 1 パーティション + swap の単純構成にしましょう。
うーんと、電卓。あ、携帯があった。 大体 80GB のうち、1GB をスワップに取ることにして、 disklabel の表示で、 sectors/cylinder が 1008、 cylinders が 155061。 ということは、2000 シリンダくらいスワップにあげることにすれば、 153061×1008 = 154285488 セクタほど a パーティション (ルート) に割り当ててあげればいいというわけね。
ということで、disklabel auto の初期状態としては
# size offset fstype [fsize bsize bps/cpg] c: 156301488 0 unused 0 0 # (Cyl. 0 - 155060)
となっているのを、コピペを繰り返し、次のように書き換えます (書き換えた部分を強調表示しています)。 後は適当に disklabel(8) が調整してくれます。
# size offset fstype [fsize bsize bps/cpg] a: 154285488 0 4.2bsd 0 0 # (Cyl. 0 - 155060) b: * * swap 0 0 # (Cyl. 0 - 155060) c: 156301488 0 unused 0 0 # (Cyl. 0 - 155060)
disklabel -e の vi をセーブして終了すると、 結局 disklabel ad0 の表示は次のようになります。 あ、そうか、4.2bsd ではなく System V が標準なのね (ただしマニュアルには、 「絶対に Solaris の fsck を FreeBSD パーティション対して実行しない」 ように書かれています)。
# size offset fstype [fsize bsize bps/cpg] a: 154285488 0 System V 0 0 # (Cyl. 0 - 153060) b: 2017008 0 swap 0 0 # (Cyl. 1530561 - 155060) c: 156301488 0 unused 0 0 # (Cyl. 0 - 155060)
では、FreeBSD のブートセクタを disklabel -B ad0 で貼付けましょう。
で、newfs ad0 で ad0 をフォーマットします。
CD-ROM の /root に、distrib-20020406.tar というファイルが入っていますが、 これが 5.0-DP1 の配布ファイルです。
mount /dev/ad0a /mnt で、 /mnt にフォーマットしたてのハードディスクをマウントしましょう。
で、cd /mnt して、 tar xvfp /root/distrib-20020406.tar で配布ファイルを展開します。 もうここまで来れば後はシステム修復レベルの作業ですね。
展開完了。
/etc/rc.conf と /etc/fstab を書く必要があります。 適当に書いたら、リブート。
をを、起動してきた!
使いなれた adduser (8) とかが使えるのはやっぱり嬉しいなぁ。
しかし、EEPROM が完全に飛んでいて、 hme0 の MAC アドレスが 0:0:0:0:0:0 だ…。 eeprom コマンドで…あるわけないじゃん (^^;。
まあ、難しいことは後で考えよう。 ますたにラーメンでラーメン大盛り固めネギ多め味玉入り。