また私はMACHのことがイマイチ分かってません。特にMACH4.0はさっぱりです。
その辺を差し引いて参考にして下さい。
※恐ろしくアッサリかかれているが、IBM-PC(互換機)でboot可能な領域を作る
のはやっかいである。最近の大容量ディスクをC/H/Sでアクセスしようという
BIOSが根本的に間違っているのだが、この問題を回避する為、私はFDISKせずに
「全領域を使う」にした。*BSDのSCSI probeで示される総block数をpc#に、
スワップ領域の大きさをpb#にして、残りをpa#とし、oa#=oc#=0,ob#=pa#
としてdisktabを作った。C/H/S(nc#,nt#,ns#)はfakeでなく、SCSI queryで
返される値を使った。言うまでも無いが、詳しくはdisktab(5)のmanを見て。
※FreeBSDでもOKだった。要するに、4.4BSD FFS形式でdisklabel,newfsできれば
よいようだ。FixItフロッピーも用意しておいた方が何かと助かるだろう。
(STEP1でNetBSD bootフロッピーを使ったのであれば、このファイルは
/mnt/boot/servers.bootにある筈)
まずgrub bootフロッピーを起動する。diskがSCSIかIDEかによってどれかの
single user bootを選ぶ。
するとMachがloadされ、次いでHurdが起動するはず。こんな風に、
完全に機能するHurdにするために、
NOTE: Hurd FFSにBSD fsckをかけないこと!
single-user bootを選んでSTEP6に進む。
grubのメニューは/boot/grub/menu.lstにある。これを編集してdefault
optionを変えることが出来る。
※メニューを見ると、hd0へのinstallしか無いのでSCSIな人は不安に思うかも
知れないが、SCSIしかつながっていないのであれば気にしなくて良い。hd0でも
いつの間にか[:-)]SCSIにinstallされていた。
一時的mountには`-a'オプションを付ける。オプションの位置に注意。
※/(root)がRead Only mountされたのをR/Wにしたい(UNIXの`mount -u /'相当)時は、
STEP 1:
grub boot floppyを作る
dd if=grub-boot.image of=/dev/fd0 bs=512
次いでBSD FFS(fast file system)上にバイナリ配布を展開する。
STEP2:
Hurd領域の`boot/servers.boot'というファイルに以下のような行を記述する。
/dev/sd0b $(add-paging-file) $(default-pager)
paging不要ならこの行をコメントアウトしても構わない。
Linuxのようにswapパーティションを初期化する必要は無い。
STEP3:
(もしNetBSD bootフロッピーを使っているのであれば、`umount /mnt;halt'
としてNetBSDをshutdownする)
Hurd server bootstrap: ufs exec init proc auth.
Single-user bootstrap: term sh.
bash#
STEP4:
初めて起動した時、GNUは変なメッセージを出すだろう。またpipeが働かない
ことを覚えておくこと。
/bin/sh /SETUP disk
とする。ここで`disk'はsd0かhd0である。この後システムをrebootする。
また立ち上がってきたら、single-userモードで起動する。
STEP 5:
またフロッピーから立ち上げ、今度は"grub install"を選ぶ。PCをリセット
したらフロッビーをドライブから取り出す。これでハードディスクから
起動するだろう。
STEP 6:
●make devices
cd /dev
./MAKEDEV dev1 dev2 dev3 ...
デバイス名はMachが起動する時に表示するもの
●networkの設定
settrans /servers/socket/inet \
/hurd/pfinet --interface=eth0 --address=NN.NN.NN.NN \
--gateway=GG.GG.GG.GG --netmask=MM.MM.MM.MM
ホスト名ではなく、IPアドレスで指定すること。
/etc/resolv.confと/etc/hostsも正しく設定すること(※)
※viはまだ不安定なので、エディタにはemacsを使った方が良いだろう。
パラメータはfsysoptsで変更できる
fsysopts /servers/socket/inet --netmask=MM.MM.MM.MM
●mount
例えば、hd0aをmountするなら(UNIXなら mount /dev/hd0a /mnt)、
settrans /mnt /hurd/ufs /dev/rhd0a
RAWデバイスであることに注意!
その他の例
settrans /mnt /hurd/ext2fs /dev/rhd0a #Linux ext2fs
settrans /mnt /hurd/ufs -r /dev/rhd0a #read only
settrans /mnt /hurd/nfs /remote/file/system remote.host.org #NFS
host:fsやfs@host形式のNFSについては`/hurd/nfs --help'参照
`settrans /mnt'で取り除く。`showtrans /mnt'で今の状態を見る。
これらを自動的に行うには/etc/fstabにエントリを作らなければならない。
settrans -a /mnt /hurd/ufs /dev/rsd0a
showtransでは表示されない。
fsysopts / --writable
●configuration
Enjoy!