#!/bin/sh T_PX="`cat /tmp/SeTT_PX`" rm -f /tmp/SeTmount /tmp/SeTDS /tmp/SeTCDdev modprobe isofs modprobe nls_cp932 modprobe sr_mod dialog --title "Install from the Plamo Linux CD-ROM" \ --menu \ "Plamo Linuxでは、ATAPIとSCSI以外の独自仕様CD-ROMはサポート \n\ しておりません(テスト環境が周りに存在しないので、、) \n\ それらのCD-ROMの場合、あらかじめCD-ROMの内容をハードディスク \n\ にコピーしておいて、HDDからインストールする方法があります。 \n\ PDドライブがCD-ROMとして認識されない場合は \n\ LUNの設定を変えてみてください(DOS/V用からMac用にするなど) \n\ お使いのCDドライブの種類は?" 18 74 4 \ "scan" "CDドライブのタイプを自動認識してみます" \ "1" "ほとんどのATAPI/IDE CDドライブ (/dev/hd*)" \ "2" "SCSI (/dev/scd0 あるいは /dev/scd1)" \ 2> /tmp/cdtype if [ $? = 1 -o $? = 255 ]; then rm -f /tmp/tmpmsg /tmp/cdtype exit fi CD_ROM_TYPE="`cat /tmp/cdtype`" rm -f /tmp/tmpmsg /tmp/cdtype if [ "$CD_ROM_TYPE" = "scan" ]; then for device in /dev/sr0 /dev/sr1 /dev/sr2 /dev/scd0 /dev/scd1 /dev/scd2 /dev/scd3 /dev/scd4 /dev/scd5 /dev/scd6 ; do dialog --infobox "$deviceをスキャン中..." 3 60 mount -o ro -t iso9660 $device /var/adm/mount 1> /dev/null 2> /dev/null if [ $? = 0 ]; then DRIVE_FOUND=$device break fi done umount /var/adm/mount 1> /dev/null 2> /dev/null if [ "$DRIVE_FOUND" = "" ]; then dialog --title "ドライブが見つかりません" --msgbox "調べたデバイスのどこにもCD-ROMドライブが見つかりませんでした。\n\ 自分のCDドライブをサポートしているブートディスクを使用しているか、\n\ 確認してみてください。ドライブを認識するために必要な、より詳しい\n\ 情報については、ファイルBOOTINGを参照してください。それから \n\ インストールに再挑戦してみてください。どうしてもだめな場合は、\n\ FAQ.TXTにCDの内容をDOSパーティションにコピーしてインストール\n\ 方法が書かれていますので、それを参照してください。" 14 70 else dialog --title "CD-ROMドライブが見つかりました" --msgbox "CD-ROMがデバイス$DRIVE_FOUNDにありました。" 5 65 CD_DEVICE="$DRIVE_FOUND" fi elif [ "$CD_ROM_TYPE" = "2" ]; then dialog --title "SCSIデバイスの選択" --menu "どのSCSI CD-ROMを使用しますか?(わからない場合は、\n\ /dev/scd0 を選んでください)" 10 60 3 \ "/dev/scd0" "SCSI CD 0" \ "/dev/scd1" "SCSI CD 1" \ "/dev/scd2" "SCSI CD 2" \ "/dev/scd3" "SCSI CD 3" \ "/dev/scd4" "SCSI CD 4" \ "/dev/scd5" "SCSI CD 5" \ "/dev/scd6" "SCSI CD 6" 2> /tmp/whichscsi if [ $? = 1 -o $? = 255 ]; then rm -f /tmp/tmpmsg /tmp/cdtype /tmp/whichscsi exit fi CD_DEVICE="`cat /tmp/whichscsi`" rm -f /tmp/whichscsi elif [ "$CD_ROM_TYPE" = "3" ]; then CD_DEVICE="/dev/sonycd" elif [ "$CD_ROM_TYPE" = "4" ]; then CD_DEVICE="/dev/cdu535" elif [ "$CD_ROM_TYPE" = "5" ]; then CD_DEVICE="/dev/mcd" elif [ "$CD_ROM_TYPE" = "6" ]; then CD_DEVICE="/dev/mcdx0" elif [ "$CD_ROM_TYPE" = "7" ]; then CD_DEVICE="/dev/sbpcd" elif [ "$CD_ROM_TYPE" = "8" ]; then CD_DEVICE="/dev/aztcd" elif [ "$CD_ROM_TYPE" = "9" ]; then CD_DEVICE="/dev/cm206cd" elif [ "$CD_ROM_TYPE" = "10" ]; then CD_DEVICE="/dev/gscd" elif [ "$CD_ROM_TYPE" = "11" ]; then CD_DEVICE="/dev/optcd" elif [ "$CD_ROM_TYPE" = "12" ]; then CD_DEVICE="/dev/sjcd" elif [ "$CD_ROM_TYPE" = "1" ]; then dialog --title "IDEデバイスの選択" --menu "CD-ROMドライブはどのIDEデバイスに接続されていますか? \n\ 良く分からなければ、自動検出させてみることもできます。" 17 70 9 \ "scan" "ドライブを自動検出してみます" \ "/dev/hda" "プライマリIDEインターフェース, ドライブ1" \ "/dev/hdb" "プライマリIDEインターフェース, ドライブ2" \ "/dev/hdc" "セカンダリIDEインターフェース, ドライブ1" \ "/dev/hdd" "セカンダリIDEインターフェース, ドライブ2" \ "/dev/hde" "サードIDEインターフェース, ドライブ1" \ "/dev/hdf" "サードIDEインターフェース, ドライブ2" \ "/dev/hdg" "フォースIDEインターフェース, ドライブ1" \ "/dev/hdh" "フォースIDEインターフェース, ドライブ2" \ 2> /tmp/idecd if [ ! "`cat /tmp/idecd`" = "scan" ]; then CD_DEVICE="`cat /tmp/idecd`" else for device in /dev/hdd /dev/hdc /dev/hdb /dev/hda \ /dev/hde /dev/hdf /dev/hdg /dev/hdh ; do dialog --infobox "$deviceスキャン中..." 3 30 mount -o ro -t iso9660 $device /var/adm/mount 1> /dev/null 2> /dev/null if [ $? = 0 ]; then DRIVE_FOUND=$device break fi done umount /var/adm/mount 1> /dev/null 2> /dev/null if [ "$DRIVE_FOUND" = "" ]; then dialog --title "ドライブが見つかりません" --msgbox "調べたどのデバイスにもIDE(ATAPI) CD-ROMドライブは見つかり\n\ ませんでした。ドライブを認識するために必要な、より詳しい \n\ 情報に付いては、ファイルBOOTINGを参照してください。それから\n\ インストールに再挑戦してみてください。どうしてもだめな場合は、\n\ FAQ.TXTにCDの内容をDOSパーティションにコピーしてインスト\n\ ール方法が書かれていますので、それを参照してください。" \ 12 70 else dialog --title "IDE(ATAPI) CD-ROMドライブが見つかりました" --msgbox "IDE(ATAPI) CD-ROMドライブがデバイス$DRIVE_FOUNDで見つかりました。" 5 70 CD_DEVICE="$DRIVE_FOUND" fi fi fi # The CD will be mounted automatically later on: if [ "$DRIVE_FOUND" != "" ]; then echo "$CD_DEVICE /cdrom iso9660 user,ro,noauto,exec,iocharset=euc-jp 0 0" > /tmp/SeTcdfstab fi while [ 0 ] ; do dialog --title "インストール方法の選択" \ --menu "Plamo Linux の配布 CD-R からのインストールの場合は plamo を \n\ 選んでください(/cdrom/plamo から必要なファイルがインストールされます) \n\ 配布CD-R以外のCD-ROMからインストールする場合は、custom を選んで \n\ plamo Linuxのパッケージのあるディレクトリを指定してください。" 15 74 4 \ "plamo" "ハードディスクへの通常のインストール" \ "custom" "通常とは異なるディレクトリからのインストール" \ 2> /tmp/SeTreturn if [ $? = 1 -o $? = 255 ]; then rm -f /tmp/cdtype /tmp/SeTreturn exit fi if [ "`cat /tmp/SeTreturn`" = "help" ]; then dialog --title "インストール法のヘルプ" --textbox /usr/lib/setup/IMhelpj \ 20 74 continue fi break done SLACK_SOURCE_LOCATION="`cat /tmp/SeTreturn`" if [ "$SLACK_SOURCE_LOCATION" = "custom" ]; then dialog --title "インストール元ディレクトリの選択" --inputbox "Plamo Linuxの \ ソースが入っているCDのディレクトリを入力\n\ してください。これはCDの種類によって異なっている可能性があり\n\ ます。先頭の'/'は省いてしまってもかまいません。 \n\ どのディレクトリにPlamo Linuxのソースがありますか?" 11 67 \ 2> /tmp/slacksource if [ $? = 1 -o $? = 255 ]; then rm -f /tmp/cdtype /tmp/slacksource exit fi rm -f /tmp/tmpmsg SLACK_SOURCE_LOCATION="`cat /tmp/slacksource`" rm -f /tmp/slacksource fi while [ 0 ]; do mount -o ro -t iso9660 $CD_DEVICE /var/adm/mount 1> /dev/null 2> /dev/null if [ ! $? = 0 ]; then dialog --title "MOUNT ERROR" --menu "CD-ROMのマウント中にエラーが発生しました。" 11 60 3 \ "1" "CDからのインストールを中止" \ "2" "CD-ROMを再度マウントしてみる" \ "3" "エラーを無視し,継続" 2> /tmp/errordo if [ $? = 1 -o $? = 255 ]; then rm -f /tmp/SeTDS /tmp/SeTmount /tmp/SeTCDdev /tmp/errordo exit; fi DOWHAT="`cat /tmp/errordo`" rm -f /tmp/errordo if [ $DOWHAT = 1 ]; then rm -f /tmp/SeTDS /tmp/SeTmount /tmp/SeTCDdev exit; elif [ $DOWHAT = 3 ]; then break; fi else if [ ! -d /var/adm/mount/$SLACK_SOURCE_LOCATION ]; then dialog --title "エラー:ディレクトリが見つかりません" --msgbox "Plamo Linuxのソースディレクトリが見つかりませんでした。\n\ インストールするには,ソースディレクトリを設定し直してください。" 8 70 rm -f /tmp/SeTmount /tmp/SeTDS /tmp/SeTCDdev exit fi break; fi done # since we've mounted successfully, let's refresh the link: if [ ! -d $T_PX/dev ]; then mkdir $T_PX/dev chown root.root $T_PX/dev chmod 755 $T_PX/dev fi ( cd $T_PX/dev ; ln -sf $CD_DEVICE cdrom ) echo "/var/adm/mount/$SLACK_SOURCE_LOCATION" > /tmp/SeTDS echo "-source_mounted" > /tmp/SeTmount echo "$CD_DEVICE" > /tmp/SeTCDdev echo "/dev/null" > /tmp/SeTsource