LF1000 は、SCSI-2 互換のデバイスです。ブロックサイズは、512 バイトで、 Linux の SCSI ドライバと互換性があります。このドライブを、Adaptec 1542C SCSI コントローラを使って AMD 486-100MHz マシンにインストールしてみました。 インストールと、読み書き可能な光ディスクのマウントは、以下に述べるよう な手順で行ないました。
ドライブを取り付け、他のデバイスとぶつからないように SCSI ID をセットする。 その後、ケーブルを繋ぎ直す。
コンピュータを起動し、SCSI コントローラがドライブを認識していることを 確認する。
Linux のカーネルが起動している間に、SCSI デバイスが新たに認識されるこ とと思います。私の場合は、/dev/sda にハードディスク があるので、/dev/sdb として認識されました。
overwrite warning が出るので、また dosemu の設定をいじりたく無かったの で fdisk コマンドは使いませんでした。
mkfs -t ext2 /dev/sdb |
mkdir /pd |
mount -t ext2 -o ro,suid,dev,exec,auto,nouser,async /dev/sdb /pd |
mount -t ext2 -o defaults /dev/sdb /pd |
これで準備は完了です。
SCSI カーネルドライバが、CD-ROM ISO 9660 フォーマットと ext2 フォーマット などのデバイスモードの変更をサポートしているかどうかは、不明です。どな たか、判りましたらメールを下さい。
訳注:少なくとも、aic7xxx, ncr53c[7,8]xx, ncr53c8xx などのドライバでは、可能でした。カーネルを、LUN を検索にいく ように作り直すか、 boot prompt で max_scsi_luns=1 を設定する必要はあります。
補足:後述しますが最新カーネルでは、max_scsi_luns の設定は 無関係です。
Linux のブート時に、ちゃんとドライブを認識していますか? dmesg の出力の抜 粋をつけておきます。MATSHITA ドライブを認識しているかどうか確認して下さ い。たぶん同じようなメッセージが出る筈です。
注意点: "Adding Swap" の下 3 行は、Linux が PD を使えるようにブートしたため です。もし、CD-ROM を PD-Drive に入れたままブートした場合、この CD-ROM を iso9660 フォーマットのメディアとして /cdrom にマウント します。CD-ROM を使って Linux をインストールする場合には、PD ドライブに CD-ROM を入れたままブートしなくてはいけません。いったん Linux がブートした 後は、"umount /cdrom" とすることで、メディアを交換できます。 もちろん、マウントし直さなければいけません。以下に、この操作を助ける Shell Script を用意してあります。"mgrpd" の名前で ファイルに切りとり、"sh mgrpd" として実行して下さい。
(訳注:カーネル及び PD ドライブの LUN の設定を正しく行なえば、先に CD-ROM を入れておこうが、PD を入れておこうが、いつでも、mount, umount 処理でメ ディア交換は可能です。)
#-----------dmesgコマンドの出力------------------------------------- Configuring Adaptec at IO:330, IRQ 11, DMA priority 5 scsi0 : Adaptec 1542 scsi : 1 host. Vendor: QUANTUM Model: PD1050iS Rev: 3110 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi disk sda at scsi0, id 0, lun 0 Vendor: MATSHITA Model: PD-1 LF-1000 Rev: A109 Type: Optical Device ANSI SCSI revision: 02 Detected scsi disk sdb at scsi0, id 1, lun 0 scsi : detected 2 SCSI disks total. SCSI Hardware sector size is 512 bytes on device sda SCSI Hardware sector size is 512 bytes on device sdb Linux version 1.2.13 (root@bigkitty) (gcc version 2.7.0) #1 Wed Aug 23 03:54:14 CDT 1995 Partition check: sda: sda1 sda2 sda3 sda4 sdb: bad partition table VFS: Mounted root (ext2 filesystem) read-only. Adding Swap: 34812k swap-space end_request: I/O error, dev 2100, sector 64 isofs_read_super: bread failed, dev 0x2100 iso_blknum 16 Unable to identify CD-ROM format. #-------------------ここまでdmesgコマンドの出力----------------- |
Adaptec 1542C SCSI コントローラのドライバは、Slackware の scsinet1 カーネ ルのものを使いました。このコントローラの場合は、無事動きましたが、違う コントローラを使う場合は、Drew Eckhardt 氏の書いた SCSI-HOWTO (日本語訳) を見て下さい。
LF1000 ドライブを使う上で便利な Shell Script を以下に付記しておきます。自 由に使ってもらって結構ですが、Copyright 表示は残しておいてください。 (訳注:後述する理由で、AT 互換機ではあまり役に立たないです。MkLinux を動 かす場合には意味があるかも)
------------------------ここから-------------------------------- #@/@/@ mgrpd ABR Linux 1.2.13 486 mgr shell for phase change drive #************************************************************************# # # # program : mgrpd # # # # # # # # # # Author : Skip Rye Copyright 1996 # # # # Revision : v1.0 02-01-96 Start # # 03-13-96 Released # # # # Calls : None # # # # Files : # # # # # ########################################################################*/ # Display menu and process choice: sel=0 while [ $sel ] do echo "***************************************************************" echo "* MGRPD *" echo "* Version v1.0, Copyright 1996, Author Skip Rye *" echo "***************************************************************" echo "************** ext2 formated file system *********************" echo "1) Format pd disk - mkfs /dev/sdb" echo "2) Mount pd read/write" echo "3) Mount pd read only" echo "************** dos formated file system ***********************" echo "Note : must have been formatted using dos" echo "4) Mount read/write" echo "5) Mount read only" echo "40) List disk space - df" echo "50) umount" echo "######################## CDROM ################################" echo "Note : must have Use LUN Numbers jumper on drive" echo "100) Mount CDROM" echo "101) umount CDROM" echo "END Hit to End" echo echo "Select option: \c" read sel case $sel in 1) echo "This option assumes ext2 is the default mkfs format" echo "This will DESTROY ALL data on disk. Enter y to continue." read ans1 if [ $ans1 ] then echo "Enter the fully qualified path name of the PD drive" echo "ie. /dev/sdb" read pdpath if [ $pdpath ] then if [ $ans1 = "y" -o $ans1 = "Y" ] then echo "This will DESTROY ALL data on disk $pdpath. Enter y to co ntinue" read ans2 if [ $ans2 ] then if [ $ans2 = "y" -o $ans2 = "Y" ] then mkfs $pdpath fi fi fi fi fi ;; 2) mount -t ext2 -o defaults /dev/sdb /pd ;; 3) mount -t ext2 -o ro,suid,dev,exec,auto,nouser,async /dev/sdb /pd ;; 4) mount -t msdos -o rw,suid,dev,exec,auto,nouser,async /dev/sdb /pd ;; 5) mount -t msdos -o ro,suid,dev,exec,auto,nouser,async /dev/sdb /pd ;; 40) df ;; 50) umount /dev/sdb ;; 100) /etc/rc.d/rc.cdrom ;; 101) umount /cdrom ;; esac done ------------------ここまで---------------------------------- |
もし、うまくいかなかった場合は、以下の点をチェックしてみて下さい。
SCSI コントローラは何を使っていますか? サポートされているカードですか? Drew Eckhardt 氏の SCSI-HOWTO (日本語訳) を見て下さい。
SCSI コントローラのドライバをカーネルに組み込んでいますか?
以下 3 点は、誤解を招くので、AT 互換機ユーザーは読み飛ばして下さい。
CD-ROM を使うには、Linux のブート前に LF1000 の電源を入れ、CD-ROM を入れ ておく必要があります。CD-ROM を認識できた後には、CD をアンマウントし、 CD-ROM を取り替えたり、マウントし直したりできるようになります。 -- "mgrpd" Shell Script の使い方を参照のこと。
光ディスクを扱うには、CD-ROM を入れずに Linux をブートしてください。
LF1000 のジャンパ設定は、LUN を使うようになっていますか?
AT 互換機ユーザーは、以下の点もチェックして下さい。
LF1000 ドライブの電源は入っていますか?
Kernel Configuration で Probe all LUNs on each SCSI device を on にして カーネルを再構築してありますか? もしくは、ブートプロンプトで、 max_scsi_luns=1 を設定しましたか? (訳注:最近のカーネルでは、Probe all LUNs on each SCSI device が off の ままでも、PD の LUN はサポートされるようになりました。Kernel 2.0.22 以降 だったように思います)
LF1000 の LUN ジャンパ 7 番を off の位置に合わせてありますか?
PDのメディアは、約 500000 回の読み書きができるそうです。(訳注:私の知る ところでは 100 万回オーダーです。)しかし Linux などの OS を PD 上にインストー ルすることは勧めません。このような OS は、プロセスをディスクに書き込んだ り読み込んだりするものです。こういう使い方では、簡単にメディアの寿命が くることになってしまいます。
できるだけ、読み込み専用でマウントするようにしましょう。
書き込みは、大きな固まりの単位で行ないましょう。これによって、読み込み 時のシークを増やす元となるフラグメンテーションを減少させることができます。
しかしながら、バックアップや、画像、あまり使う事の無い巨大プログラムの 保存用には、素晴らしいメディアです。バックアップからのリストアは、テー プよりも何倍も高速です。バックアップは、テープドライブでは役に立たない "cp -rp"コマンドでも行なえます。が、この場合は、 シンボリックリンクが実ファイルに置き換わってしまいます。