3. インストール

LF1000 は、SCSI-2 互換のデバイスです。ブロックサイズは、512 バイトで、 Linux の SCSI ドライバと互換性があります。このドライブを、Adaptec 1542C SCSI コントローラを使って AMD 486-100MHz マシンにインストールしてみました。 インストールと、読み書き可能な光ディスクのマウントは、以下に述べるよう な手順で行ないました。

3.1. インストールの手順

これで準備は完了です。

3.2. ヒント

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

  ------------------ここまで----------------------------------

もし、うまくいかなかった場合は、以下の点をチェックしてみて下さい。

以下 3 点は、誤解を招くので、AT 互換機ユーザーは読み飛ばして下さい。

AT 互換機ユーザーは、以下の点もチェックして下さい。

PDのメディアは、約 500000 回の読み書きができるそうです。(訳注:私の知る ところでは 100 万回オーダーです。)しかし Linux などの OS を PD 上にインストー ルすることは勧めません。このような OS は、プロセスをディスクに書き込んだ り読み込んだりするものです。こういう使い方では、簡単にメディアの寿命が くることになってしまいます。

できるだけ、読み込み専用でマウントするようにしましょう。

書き込みは、大きな固まりの単位で行ないましょう。これによって、読み込み 時のシークを増やす元となるフラグメンテーションを減少させることができます。

しかしながら、バックアップや、画像、あまり使う事の無い巨大プログラムの 保存用には、素晴らしいメディアです。バックアップからのリストアは、テー プよりも何倍も高速です。バックアップは、テープドライブでは役に立たない "cp -rp"コマンドでも行なえます。が、この場合は、 シンボリックリンクが実ファイルに置き換わってしまいます。