640MB Optical Disk

640MB MO を使う

2.2.5Rは、512Bytes/Sectoのmoは、 /etc/diskltabさえ用意すれば標準で使用できるようです。 しかし、640MBのmoは2048B/Sであるために、 そのままでは使用できないようです。 現在、2048B/Sを完全にサポートしているのは、3.0系だけのようです。

参考になる本:Unix User Vol.6 No.10 OCT.1 1997 "FreeBSD 利用法入門"


以下に、640MBmoを使用する方法を解説します。 ただし、完全無保証&無駄ありありです(^^;。

機器構成


まずod-driver-2.2-ALPHA.tar.gzを用意し解凍します。

540MBmoを使いたいのであれば、od-driver-2.2-ALPHA/disktab.odを /etc/disktabに追加し、もとのdisktab内にあるmoのエントリを 消去するだけで使えるはずです。

以下のパッチをod-driver-2.2-ALPHA/README.od-Jに従って当てます。

rejectが出ます。無視して構いません。気になるなら、
# cd /sys
# find . -name "*.rej"
でリジェクトされたファイルを探し、そのファイルを調べて見ると良いでしょう。 基本的にコメント部分と、既にパッチ済である事が確認できるはずです。
カーネルを再構築します。
/dev/od0*がある事を確認します。(あるはずです)

640MB moをドライブにセットします。以下を実行します。

# disklabel -rwB od0 auto
# newfs -u 0 -t 0 /dev/rod0c
# fsck /dev/rod0
また、disklabelが実行できない場合には、fdiskを実行しなければならないでしょう。 これは、以下のように設定します。
# fdisk -i od0

<省略>

 you want to change it? [n] y
Supply a decimal value for "sysid" [0] 165
Supply a decimal value for "start" [0] 
Supply a decimal value for "size" [0] 310352
Explicitly specifiy beg/end address ? [n] 
sysid 165,(FreeBSD/NetBSD/386BSD)
    start 0, size 310352 (606 Meg), flag 0
        beg: cyl 0/ sector 1/ head 0;
        end: cyl 46/ sector 44/ head 62
Are we happy with this entry? [n] y
fdisk実行後にdisklabelを実行します。 入力値は/etc/disktabを参考にしています。

ただし、disklabel実行後のfdiskの表示内容は壊れてしまっているようです。

# fdisk od0
******* Working on device /dev/rod0 *******
parameters extracted from in-core disklabel are:
cylinders=151 heads=64 sectors/track=32 (2048 blks/cyl)

parameters to be used for BIOS calculations are:
cylinders=151 heads=64 sectors/track=32 (2048 blks/cyl)

Media sector size is 2048
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:

The data for partition 2 is:

The data for partition 3 is:

The data for partition 4 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
    start 0, size 50000 (97 Meg), flag 80
        beg: cyl 0/ sector 1/ head 0;
        end: cyl 1023/ sector 63/ head 255

od-driver-2.2-ALPHA/README.od-Jの説明通りではうまくいきませんでした。 本来は、autoの箇所をmo128 or mo230 or mo540 or mo640とすべきはずです。 確かめた範囲ではmo540,mo640はautoを使用しないと、disklabelがかけられない ようです。

また、/stand/sysinstallは640moのメディアがドライブに入っていると 起動しませんでした。

[FreeBSD-users-jp 11504]を参考にしました。


マウントすればUFSとして使用できます。

# mkdir /mo
# mount /dev/od0a /mo
# umount /mo
# eject od0              # eject-1.2
今の所、順調に使えています。
参考:# dd if=/dev/zero of=/dev/rod0 count=1
topへ