▼MOドライブをSPARC Solaris 2.6で使用する▼

[テスト中のむきだしMOドライブ]

Abstract

zipにつづき、230MB MOドライブをつないでみました。 デバイスドライバ的に認識されてしまえばあとはほとんど同じようです。 ただし、MO は Superfloppyフォーマットの場合が多いので注意。

$Id: solmo.html,v 1.13 2001-07-10 01:21:13+09 kabe Exp $


材料

230MBドライブです。(640ではない) このMOドライブも御多分にもれず Solaris には正式には(たぶん)対応していません。


HDDモードって…

まず普通につないでみると、

probe-scsi ではちゃんと認識しているのですが、 デバイスファイル (/dev/{,r}dsk/c0t4d0s*) が 作られていません。 /devices/sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@4,0* は 作られているので、全く認識していないわけではない。

ありがたいことに、富士通からは 接続Howto が公開されており、これを参照すると

MOのデバイスタイプモードをHDD(ダイレクトアクセス装置)に設定してください。

…どのジャンパだろ。

CNH2ジャンパブロックのどこかにあることは設定表からわかるのですが、 どのピンかまでは書いていない。 電話etcで聞くとゆーのが正攻法ですが、業務時間外だったので、 かたっぱしからジャンパを飛ばして試してみました。()

	        下 上
	#SCSIID2 o o ?
	#SCSIID1 o o (Vcc?)
	#SCSIID0 o o (LED-K?)
	     GND o o #EJECT (Lにするとエジェクトされる) 
	       ? o o #HDDMODE
	     GND o o ?
	       ? o o ?
	     GND o o ?
	       [CNH2]

何もしないと probe-scsi の出力は

	Target 4
	  Unit 0   Removable Device type 7     FUJITSU M2512E         0050
ですが、HDDモードでは
	Target 4
	  Unit 0   Removable Disk     FUJITSU M2512E         0050
Diskと認識されていれば sd デバイスドライバが 面倒を見てくれるようになるようです。 HDDモードだからといって、DOSのように途中で抜き差しできない というわけではありません。
以前 Olympus の TURBO MO 640 をつないてみた時も 全く認識しなかったのですが、HDDモードでなかったせいかしらん


設定すぞ

基本的にはZipの場合 と同じです。 format.datは書かなくても使えるみたいですが、 書いておいた方がいいでしょう。(下記参照)

複数のrmscsiドライブがつながっていると rmscsi番号がLinuxのHDDのごとく不定になるので (/dev/をソートした順につく;vold.conf(4) )、 以下のようにvold.confに書き込んでalias名を固定しておくのもいいかも。

	use rmscsi drive /dev/rdsk/c0t5d0s2 dev_rmscsi.so zip0
	use rmscsi drive /dev/rdsk/c0t4d0s2 dev_rmscsi.so mo0
	use rmscsi drive /dev/rdsk/c*s2 dev_rmscsi.so rmscsi%d
これで Zip は /rmscsi/zip0, MOは /rmscsi/mo0 を使うようになります。 なにがいいかって、"eject zip" "eject mo" みたいなコマンドが 書けるようになるんですね。 将来SCSI ID 4,5 以外にリムーバブルデバイスをつないだ場合は 従来通り rmscsi2 といった番号がつきます。

次に /etc/rmmount.conf をいじって、 rmscsiはpcfsではマウントしない ようにしておきます。 マウントされた所で当面は使えんので。

	ident pcfs ident_pcfs.so floppy rmscsi pcmem
			↓
	ident pcfs ident_pcfs.so floppy pcmem
Zipは FDISK フォーマットが標準なのであまり問題にならんようですが、 MO は superfloppy形式が多いので対策しておいた方がいいでしょう。 いちいち volrmmount -e する手間が省けます。


フォーマットしよう

フォーマット自体はroot権限は不要です。

ufsで使う場合

format

Zip100では format.datを書いておく必要がありましたが、 230MB MO は容量がでかいせいか format.datがなくても formatコマンドでの自動パーティション生成が 使えます。

	% format /vol/dev/aliases/mo0
	format> partition
	partition> print
	Current partition table (default):
	Total disk cylinders available: 869 + 2 (reserved cylinders)

	Part      Tag    Flag     Cylinders       Size            Blocks
	  0       root    wm       0 -  63       16.00MB    (64/0/0)   32768
	  1       swap    wu      64 - 191       32.00MB    (128/0/0)  65536
	  2     backup    wu       0 - 868      217.25MB    (869/0/0) 444928
	  3 unassigned    wm       0              0         (0/0/0)        0
	  4 unassigned    wm       0              0         (0/0/0)        0
	  5 unassigned    wm       0              0         (0/0/0)        0
	  6        usr    wm     192 - 868      169.25MB    (677/0/0) 346624
	  7 unassigned    wm       0              0         (0/0/0)        0

もっとも、これをそのまま使うと、次回マウント時に /vol/dev/aliases/mo0/{s0,s1,s2,s6} というように各パーティションに バラされてしまいます。 2番パーティション以外を全部潰しておけば、mo0直下でアクセスできます。

	Current partition table (unnamed):
	Total disk cylinders available: 869 + 2 (reserved cylinders)

	Part      Tag    Flag     Cylinders       Size            Blocks
	  0       root    wm       0 - 868      217.25MB    (868/0/0) 444928
	  1 unassigned    wu       0              0         (0/0/0)        0
	  2     backup    wu       0 - 868      217.25MB    (869/0/0) 444928
	  3 unassigned    wm       0              0         (0/0/0)        0
	  4 unassigned    wm       0              0         (0/0/0)        0
	  5 unassigned    wm       0              0         (0/0/0)        0
	  6 unassigned    wm       0              0         (0/0/0)        0
	  7 unassigned    wm       0              0         (0/0/0)        0
(0番は2と全く同じ、でもいいらしい。Zipはそうなっている)

当然、新しいメディアをフォーマットする度にいちいち format→partition→全部潰す…は めんどくさいので、 format.dat は書いておくべきでしょう。 以下を format.dat に書き加えます。 (使う際は総ブロック数が444928以上あるかどうか 確かめて下さい…大丈夫だと思いますけど)

	#
	# 230MB Magneto-Optical (MO) disk; total 446325 blocks
	#
	disk_type = "Magneto-Optical 230M" \
		: ctlr = SCSI \
		: ncyl = 869 : acyl = 2 : pcyl = 871 : nhead = 8 \
		: nsect = 64 : rpm = 4300 : bpt = 32768
	partition = "MO230M whole" \
		: disk = "Magneto-Optical 230M" : ctlr = SCSI \
		: 0 = 0,444928 \
		: 2 = 0,444928
(nhead=8はヘンだよな…気分的に)

newfs

formatでパーティションを確定したら ufs をこしらえます。

	% newfs /vol/dev/aliases/mo0				(特に何も考えない)
	% newfs -m 3 -c 64 -i 16384 /vol/dev/aliases/mo0	(多少容量アップ)
書き込む時のシーク音を聞いていると、シリンダグループは 少なめにとったほうがディスクにやさしそうです。

pcfsで使う場合

標準の fdformat(1) はフロッピーしか扱えないので、 mtools の mformat を使います。 以下のパラメーターを mtools.conf に書き加えておきます。

	drive M: file="/vol/dev/aliases/mo0" scsi=1 privileged=0 nodelay \
	         mformat_only cylinders=869 heads=8 sectors=64

上のパラメータは format.dat に準拠して書いてあります。 Win95 でフォーマットすると cylinders=216 heads=64 sectors=32 相当 になるようです。 メいっぱい使いたいような場合は cylinders=541 heads=15 sectors=55 なんてのも一興。

mtools.confが落ち着いたら mformat m: でフォーマットします。

partition句がないので、superfloppy形式となります。 mformatは partition= がなくても FDISKパーティションテーブルを 偽造してくれるみたいなので、NT でも読めるかもしれません。 (試してないのでエラソーなことが言えない)

注意事項

(以前のファイルシステム) ufs,pcfsとも、フォーマットした後でも以前のファイルシステムが 中途半端に残ってしまうことがあり、 次回挿入時にマウントされなかったり変なディレクトリが作られたり 違ったファイルシステムでマウントされたりするので、 フォーマット時は以下のように前もってブートレコード等を 書き潰しておいた方が良いようです。

	% cp /kernel/genunix /vol/dev/aliases/mo0
	% eject mo0
	(再度挿入してフォーマット)
さらにきれいさっぱりしたい人は format コマンドや
	% dd if=/dev/zero of=/vol/dev/aliases/mo0 bs=512k
なんてのもありますが、ディスクの健康にいいのかは不明。

(superfloppy形式とvold) superfloppy形式でフォーマットすると、デフォルトでは再挿入時に vold が pcfsとしてマウントしてしまいます。 何が問題かというと pcfs モジュールは何もしないと FAT12 だと思い込むので、 まずFAT16であるMOはまともに読めず、書くと中身を破壊します。 よって、アクセスは基本的に mtools からのみ行なうべし。このためには

Windowsで直接読めなくてもいいならufsが楽。

(ちょっと変なことをすればvold+pcfsマウントも可能)


使おう

Linuxなんかはソースがある強みで FAT32 なんかもマウントできるように なってますが、Solarisでは mtools で我慢。 使い勝手は ufs の方が上です。 Samba等で共有すれば Windows からも一応使える。


FAQとか

Zipの方の俺FAQ (ufs,mtools) を参照。ほとんど同じです。

追加分:

アクセスできない (dd if=/vol/dev/aliases/mo0 も効かない)

場合によっては formatコマンドの formatを使って 全セクタフォーマット(普通はやらない)をかけると復活する場合があります。

物理フォーマットレベルでおかしくなると、認識しなくなる 場合があります。コンソールにもそれなりのメッセージが出てきます。 (メモるのを忘れたので…) おそらく Win95 などに突っ込んでも 認識しなくなっていると思います。


参考文献


kabe@sra-tohoku.co.jp