vine-users ML アーカイブ



[vine-users:067239] Re: CFカー ドのマウント

  • From: Hideya Hane <wing@xxxxxxxx>
  • Subject: [vine-users:067239] Re: CFカー ドのマウント
  • Date: Wed, 25 Aug 2004 00:06:47 +0900 (JST)
 From: Harada kazutaka <kazutaka@xxxxxxxxxxxxxxxx>
 Date: Tue, 24 Aug 2004 21:08:40 +0900

kazutaka> どうやらSCSI接続のdiskが既にある環境では、
kazutaka> usb_mountスクリプトがデバイス名を正しく認識できてないようです。

  [vine-users:067202] でも書きましたが、認識できていま
せん。usb_mount を見たら

    for procEntry in `find /proc/scsi/ -path '/proc/scsi/usb-storage*' -type f | sort`; do

となっているのは、ちと上手くないかと思います。安直にテ
ストしただけなので良い例でありませんが、パッチをつけて
おきますので、参考にどうぞ。このパッチで取り敢えずうち
では困っていません(/proc/scsi/scsi の Type には Optical
Device のように空白を含むものがあるので、$2 だけで判断
するとまずいかも知れません)。
  ただし、もし /proc/scsi/usb-storage*/* 以外に 
Attached: Yes を含むものがあったら NG かも…

======================================================
 羽根 秀也  wing@xxxxxxxx  http://www.lain.org/~wing/
            Studio 八割堂  http://www.lain.org/
======================================================

--- usb_mount.orig      2004-08-24 22:42:38.000000000 +0900
+++ usb_mount   2004-08-24 23:41:17.000000000 +0900
@@ -18,22 +18,23 @@
     local cdRom=0
     local nonCd=0
     #determine dev name.
-    for procEntry in `find /proc/scsi/ -path '/proc/scsi/usb-storage*' -type f | sort`; do
+    for procEntry in `find /proc/scsi/ -path '/proc/scsi/*/*' -type f | sort `; do
         hostNum=`echo $procEntry | awk -F"[-/]" '{ print $NF }'`
-        devType=`grep -A 2 scsi$hostNum /proc/scsi/scsi | awk '/Type/{ print $2 }'`
- 
-        if [ "$devType" == "CD-ROM" ]; then
-            scsiDev="/dev/scd"$cdRom
-            cdRom=`expr $cdRom + 1`
-        else
-            scsiDev=`echo $nonCd | awk '{ print "/dev/sd" substr("abcdefghijklmnopqrstuvwxyz", $1+1, 1) }'`
-            nonCd=`expr $nonCd + 1`
-        fi
-        #dev name & product name is concatenated in 1 word.(for convinience)
-        if grep -q 'Attached: Yes' $procEntry; then
-            productName=`grep Product $procEntry | cut -b16- | tr " " "_"`
-            echo $scsiDev":"$productName
-        fi
+        for devType in `grep -A 2 scsi$hostNum /proc/scsi/scsi | awk '/Type/{ print $2 }'`; do
+
+           if [ "$devType" == "CD-ROM" ]; then
+                scsiDev="/dev/scd"$cdRom
+                cdRom=`expr $cdRom + 1`
+            elif [ "$devType" != "Processor" ]; then
+                scsiDev=`echo $nonCd | awk '{ print "/dev/sd" substr("abcdefghijklmnopqrstuvwxyz", $1+1, 1) }' `
+                nonCd=`expr $nonCd + 1`
+            fi
+            #dev name & product name is concatenated in 1 word.(for convinience)
+            if grep -q 'Attached: Yes' $procEntry; then
+                productName=`grep Product $procEntry | cut -b16- | tr " /!~#$%|*?" "_"`
+                echo $scsiDev":"$productName
+            fi
+        done
     done
 }
 
@@ -79,7 +80,7 @@
     case "$USE_SUPERMOUNT" in
         yes|Yes|YES)
             echo -e \
-            "none\t""$mountPoint""\tsupermount\t""dev=$1"",fs=ext2:vfat:iso9660:udf\t0 0\t""usb-mount" \
+            "none\t""$mountPoint""\tsupermount\t""dev=$1"",fs=ext3:ext2:vfat:iso9660:udf\t0 0\t""usb-mount" \
             >> /etc/fstab;
         ;;
         no|No|NO)