4.3BSD-Tahoe に対する NetBSD の互換機能を使わずに、 4.3BSD-Quasijarus0a を SIMH VAX に導入する方法を解説します。 最低限、
SIMH を動かすのに NetBSD 環境を用意できる場合は こちらのページ を参照下さい。
4.3BSD-Quasijarus0a の正式な配布にこだわらなければ、そのまま
SIMH にテープイメージとして割り当ててブートできるらしいファイルが
あります。
IT Securty Geek の
Download の Retrocomputing の下の quasijarus0a.tap.bz2 です。
これを使えば拡張版 compress をコンパイルする必要はたぶん
ないでしょう。
その他情報については NetBSD 環境用のページ を参照下さい。
NetBSD 環境用のページ 4.3BSD-Quasijarus 参照。
NetBSD 環境用のページ 拡張版 compress のコンパイル 参照。ここの パッチ は
% cat /etc/redhat-release Red Hat Linux release 6.2 (Zoot)な環境(古〜いですが)でコンパイルできることを確認しています。
NetBSD/vax のインストール CD-ROM イメージを下記等より取得します。
ftp://ftp.jp.netbsd.org/pub/NetBSD/iso/1.6.1/vaxcd.iso NetBSD ミラーサイト一覧 ISO イメージのミラー
SIMH と NetBSD/vax インストールカーネルの両方で扱えるディスクは 最大 4 台なので、Quasijarus の圧縮を解いた 3 ファイルのうち rootdump と usr.tar をひとつの TAR ファイルにまとめます。
> tar cvf ru.tar rootdump usr.tar |
4 台のドライブに下記のようにファイルを割り当てます。この 定義をしたファイルを nnb.conf とします。
miniroot は単独でドライブにアサインしますが、ラベルを書き込みますので miniroot.dkimg というファイルとしてコピーします。
rq0 0.dkimg 導入対象のディスク、150MB 以上 rq1 miniroot.dkimg miniroot。Quasijarus 仮ブート時のルートファイルシステム rq2 vaxcd.iso NetBSD/vax のインストール CD rq3 ru.tar rootdump, usr.tar を含む TAR
nnb.conf を使い、最初は NetBSD/vax の インストール CD からブートします。
pkgsrc から SIMH を入れた場合は実行ファイル名が simh-vax です。
> vax nnb.conf VAX simulator V3.0-2 : 08..07..06..05..04..03.. Tests completed. >>>boot dua2 ←CD-ROM dua2 (rq2) でブート (BOOT/R5:0 DUA2 : >> NetBSD/vax boot [1.11 Wed Apr 9 05:16:34 UTC 2003] << : |
インストーラーが起動しますので、'x', 'Enter' で終了させます。 '#' のプロンプトがあらわれます。
次に、Quasijarus のカーネル、Quasijarus miniroot の ルートファイルシステムでブートさせる用意をします。 最終的な導入先 rq0(ra0) に、仮に NetBSD の ブートローダーと Quasijarus の vmunix を置きます。
rq0(ra0) のラベルは最終的なものになるので、c を含む全ての
パーティションがシリンダー境界になるようにします。
disklabel -i の使い方については
「SIMH VAX エミュレーターで NetBSD を動かす」の
インストーラーを使わずに手動インストール のラベル付けの項を
参考にして下さい。
'P' で表示される右端の (Cyl. xx - xx) の数字に '*' が付いていると
シリンダーをはみ出しているので、size を c 単位で指定し直します。
# mount -o ro /dev/ra1c /mnt2 ←miniroot(rq1) を /mnt2 へ # disklabel -r -i -I ra0 ↑a: 16MB, b: 32MB, f: 残り、c もシリンダー境界に合わせる # newfs /dev/rra0a ←NetBSD ブートローダー用に newfs # mount /dev/ra0a /mnt # cp -p /mnt2/vmunix /mnt ←miniroot から Quasijarus カーネルをコピー # cp -p /boot /mnt ←NetBSD /boot をコピー # umount /mnt # disklabel -B -b /usr/mdec/raboot ra0 ←NetBSD ブートローダー書き込み # disklabel -r -i -I ra1 ↑miniroot、Quasijarus 仮起動時のルートファイルシステム ↑a: 4MB, b: 4MB(必須)、c はそのままで OK |
Quasijarus で仮ブート後に、バイナリーアーカイブを展開できるように ra3(rq3) から ru.tar を取り出し、最終導入先の f パーティション(/usr) に 置いておきます。
# newfs -O /dev/rra0f ←ra0(rq0)、最終的に /usr になる # mount /dev/ra0f /mnt # mkdir /mnt/t # dd if=/dev/rra3c bs=1m count=30 progress=1 | (cd /mnt/t; pax -rv) # umount /mnt ↑バイナリー(ru.tar, rq3)を最終的な /usr/t へ取出 # halt : sim> boot cpu >>>boot dua0 ←ブートローダーとカーネルだけの rq0 >> NetBSD/vax boot [1.11 Wed Apr 9 05:16:34 UTC 2003] << >> Press any key to abort autoboot 5..4..3..2..1..0 : gennetbsd: boot failed: Device not configured > boot vmunix ←Quasijarus カーネル : root device? ra1 ←miniroot (rq1) : |
仮ブートしました。Quasijarus カーネルで rq1(ra1) miniroot が
ルートファイルシステムの状態です。
最終的なルートパーティション ra0a を上書きし、rootdump を
restore します。これで取り出した tar を使って、usr.tar の展開も
行います。
# (cd /dev; sh ./MAKEDEV ra2 ra3) # newfs /dev/rra0a ←仮ブートカーネルロードに使った ra0a は上書 # mount /dev/ra0a /a # fsck -y /dev/ra0f ←NetBSD で newfs -O したパーティション # mkdir /a/usr # mount /dev/ra0f /a/usr # cat /a/usr/t/rootdump | (cd /a; restore xvf -) : ↑最終的なルートファイルシステムを展開 set owner/mode for '.'? [yn] y # disklabel ra0 > /tmp/a # cd /usr/mdec ↓忘れないうちにブートローダーを書き込み # disklabel -r -R ra0 /tmp/a rdboot bootra # (cd /a/usr; /a/bin/tar xpvf /a/usr/t/usr.tar) : ↑usr.tar を展開 |
/etc/fstab を作成してリブートします。その他については NetBSD 環境用のページ リブート 、 その他 参照。
# /a/bin/sed 's/ra0h/ra0f/;/ra0g/d' /a/etc/fstab.ra80 \ > /a/etc/fstab ←fstab.ra80 を元に fstab 作成 ↑リブート後、手動マウントして vi で編集しても可 # sync; sync; sync # /a/etc/halt : sim> boot cpu >>>boot dua0 ←導入したディスクでブート |