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"コマンドでも行なえます。が、この場合は、 シンボリックリンクが実ファイルに置き換わってしまいます。