Solaris のシステム管理 (基本編)

USB 大容量ストレージデバイスの使用 (作業マップ)

作業 

説明 

参照先 

USB 大容量ストレージデバイスを使用できるように準備する 

vold を使用して USB 大容量ストレージデバイスを使用できるように準備する

vold を使用して USB 大容量ストレージデバイスを使用できるように準備する方法

 

vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する

vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法

USB デバイス情報を表示する 

prtconf コマンドを使用して USB デバイス情報を表示する

USB デバイス情報を表示する方法 (prtconf)

USB 大容量ストレージデバイスをフォーマットする 

USB 大容量ストレージデバイスをフォーマットして、データを格納できるようにする 

vold を使用しないで USB 大容量ストレージデバイスをフォーマットする方法

USB 大容量ストレージデバイスをマウントする 

vold を使用して USB 大容量ストレージデバイスをマウントする

vold を使用して USB 大容量ストレージデバイスをマウントまたはマウント解除する方法

 

vold を使用しないで USB 大容量ストレージデバイスをマウントする

vold を使用しないで USB 大容量ストレージデバイスをマウントまたはマウント解除する方法

(省略可能) USB デバイスドライバを無効にする 

システムで USB サポートを必要としない場合は、USB デバイスドライバを無効にする 

特定の USB ドライバを無効にする方法

(省略可能) 未使用の USB デバイスのリンクを削除する 

devfsadm コマンドを使って、未使用の USB デバイスのリンクを削除する

使用されていない USB デバイスのリンクを削除する方法

USB 大容量ストレージデバイスの使用


注 –

この Solaris リリースで USB 大容量ストレージデバイスを使用する場合の最新情報については、USB 大容量ストレージデバイスを参照してください。


Solaris 9 4/04 から、USB の CD-RW、ハードディスク、DVD、デジタルカメラ、Zip、Peerless、SmartMedia、CompactFlash、ORB、および USB フロッピーディスクデバイスなどのリムーバブル大容量ストレージデバイスが、USBA 1.0 フレームワークに対応するポートでサポートされるようになりました。

使用しているデバイスがどのフレームワークで動作しているかを判断する簡単な方法は、デバイスに接続する前と後で、prtconf -D コマンドを実行することです。この方法で、接続後に出力されたものが使用しているデバイスです。上記の出力で、prtconf エントリに usba10_scsa2usb が見つかった場合、使用しているデバイスは USBA 1.0 フレームワークで動作しています。ここで scsa2usb は、接続前のフレームワークを表します。

Solaris 環境でサポートされるすべての USB デバイスを確認するには、 http://www.sun.com/io_technologies/USB.html を参照してください。

これらのデバイスは、ボリューム管理を実行している場合でも実行していない場合でも管理することができます。ボリューム管理を実行している場合のデバイス管理については、vold(1M) のマニュアルページを参照してください。

USB フロッピーディスクデバイスの使用

USB フロッピーディスクデバイスは、ほかの USB デバイスと同様に、リムーバブルメディアデバイスとして表示されます。USB フロッピーディスクデバイスは、fd (フロッピー) ドライバでは管理されません。アプリケーションから fd (ネイティブフロッピー) ドライバに対する ioctl(2) 呼び出しを実行すると、そのアプリケーションは失敗します。read(2) および write(2) 呼び出しのみを実行するアプリケーションは成功します。SunPCI や rmformat などのアプリケーションも成功します。


注 –

現時点では、CDE のファイルマネージャは USB フロッピーディスクを完全にはサポートしていません。ただし、UFS ファイルシステムを含むフロッピーディスクは、ファイルマネージャのリムーバブルメディアマネージャから開いたり、名前を変更したり、フォーマットしたりすることはできます。PCFS ファイルシステムを含むフロッピーディスクを開くには、リムーバブルメディアマネージャを使用する必要があります。フロッピーディスクがいずれかの種類のファイルシステムを含む場合には、フロッピーディスクとファイルマネージャ間でファイルをドラッグ&ドロップできます。


ボリューム管理 (vold) では、USB フロッピーディスクデバイスは SCSI リムーバブルメディアデバイスとして認識されます。ボリューム管理を使用して、/rmdisk ディレクトリのUSB フロッピーディスクデバイスにアクセスできます。

USB フロッピーディスクデバイスの使用方法の詳細については、第 17 章「リムーバブルメディアの管理 (概要)」を参照してください。

非準拠 USB 大容量ストレージデバイスの使用

デバイスの識別が間違っていたり、USB 大容量ストレージクラスと互換性がないとされているドライバでも、USB 大容量ストレージドライバをサポートする場合があります。scsa2usb.conf ファイルには、大容量デバイスに対応するかどうかを示す、ベンダー ID、製品 ID、およびバージョンを一覧表示した属性オーバーライドリストが含まれています。またデフォルトのデバイス属性をオーバーライドするフィールドも含まれています。このリストのエントリにはデフォルトでコメントが表示されています。特定のデバイスのサポートを有効にするために、コメントをコピーしたり削除したりすることもできます。

この Solaris リリースで動作するシステムに USB 大容量ストレージデバイスを接続したが、システムでそのデバイスを使用できない場合、/kernel/drv/scsa2usb.conf ファイルでこのデバイスに一致するコメントエントリがあるかどうか確認できます。scsa2usb.conf ファイルの指示に従って、オーバーライド情報を使用して、特定のデバイスをサポートできるかどうか確認してください。推奨される USB 大容量ストレージデバイスについては、http://www.sun.com/io_technologies/USB.html を参照してください。

詳細については、scsa2usb(7D) のマニュアルページを参照してください。

vold を使用して USB 大容量ストレージデバイスを使用できるように準備する方法

Solaris 共通デスクトップ環境 (CDE) が実行されている場合は、USB リムーバブル大容量ストレージデバイスは、CDE ファイルマネージャのコンポーネントであるリムーバブルメディア・マネージャによって管理されます。CDE ファイルマネージャの詳細については、dtfile(1) のマニュアルページを参照してください。


注 –

この節に記載されているマニュアルページを表示するには、MANPATH 変数に /usr/dt/man ディレクトリを含める必要があります。これらのコマンドを使用するには、パスに /usr/dt/bin ディレクトリを含め、さらに CDE を実行している必要があります。また、これらのコマンドをリモートで使用する場合は、DISPLAY 変数を設定する必要があります。


次の表に、リムーバブルメディア・マネージャが CDE 環境からストレージデバイスを管理する際に使用するコマンドを示します。

コマンド 

マニュアルページ 

作業 

sdtmedia_format

sdtmedia_format(1)

デバイスのフォーマットおよびラベル付けを行う 

sdtmedia_prop

sdtmedia_prop(1)

デバイスのプロパティを表示する  

sdtmedia_prot

sdtmedia_prot(1)

デバイスのアクセス権を変更する 

sdtmedia_slice

sdtmedia_slice(1)

デバイス上のスライスを作成または変更する 

USB デバイスのフォーマットが終了すると、通常は /rmdisk/label ディレクトリの下にマウントされます。リムーバブルストレージデバイスの構成方法については、rmmount.conf(4) または vold.conf(4) のマニュアルページを参照してください。

デバイスノードは /vol/dev ディレクトリの下に作成されます。詳細については、scsa2usb(7D) のマニュアルページを参照してください。

次の手順は、vold を使用しないで USB 大容量ストレージデバイスを管理する方法を示しています。デバイスノードは、文字型デバイスについては /dev/rdsk ディレクトリ、ブロック型デバイスについては /dev/dsk ディレクトリの下に作成されます。デバイスリンクは、デバイスをホットプラグしたときに作成されます。詳細については、scsa2usb(7D) のマニュアルページを参照してください。

vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法

USB 大容量ストレージデバイスは、ボリューム管理 (vold) を使用しないで準備することもできます。次のコマンドを実行して vold を停止します。


# /etc/init.d/volmgt stop

または、次の手順を実行して、vold を実行します。この場合、USB 大容量ストレージデバイスは vold には登録されません。

  1. スーパーユーザーになります。

  2. 以下に示すように /etc/vold.conf ファイル内の次の行で # マークを挿入してコメント扱いにし、USB 大容量ストレージデバイスのボリュームマネージャの登録を削除します。


    # use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk.so rmdisk%d
  3. 上記のようにコメントアウトした後、vold を再起動します。


    # /etc/init.d/volmgt start 
    

    注意 – 注意 –

    この行をコメントにすると、そのシステム内に他の SCSI、ATAPI Zip、Peerless などのリムーバブルデバイスがある場合、それらのデバイスの vold の登録も無効になります。


    詳細については、vold.conf(4) のマニュアルページを参照してください。

USB デバイス情報を表示する方法 (prtconf)

prtconf コマンドを使用して USB デバイス情報を表示します。

SPARC システムの場合、prtconf の出力は、以下のように示されるはずです。


$ prtconf
        usb, instance #0
                 hub, instance #2
                     device, instance #8
                         interface (driver not attached)
                     printer (driver not attached)
                     mouse, instance #14
                     device, instance #9
                         keyboard, instance #15
                         mouse, instance #16
                     storage, instance #7
                         disk (driver not attached)
                     communications, instance #10
                         modem (driver not attached)
                         data (driver not attached)
                 storage, instance #0
                     disk (driver not attached)
                 storage, instance #1
                     disk (driver not attached)

x86 システムの場合、prtconf 出力中の usb の代わりに、ベンダー ID および デバイス ID を元に PCI カード番号が表示されます。たとえば、usb, instance #0 の代わりに pci1022,7460, instance #0 と表示されます。 

prtconf コマンドの -D オプションを使用すれば、追加ドライバ情報を表示できます。この情報を使用して、SPARC システム上の USBA 1.0 フレームワークが使用しているポートおよびデバイスを確認できます。たとえば、次のように表示されます。


$ prtconf -D
.
.
.
SUNW,Sun-Blade-1500
.
.
.
1 pci, instance #0 (driver name: pcisch) 
           isa, instance #0 (driver name: ebus)
.
.
.
2 usb, instance #0 (driver name: ohci)
           usb, instance #1 (driver name: ohci)
.
.
.
3 pci, instance #0 (driver name: pci_pci)
4 usb, instance #0 (driver name: usba10_ohci)
            usb, instance #1 (driver name: usba10_ohci)
            usb, instance #0 (driver name: usba10_ehci)
                storage, instance #9 (driver name: usba10_scsa2usb)
                    disk, instance #9 (driver name: usb_sd)
            firewire, instance #0 (driver name: hci1394)
.
.
.

上の出力から、次の構成の特徴を確認できます。

vold を使用しないで USB 大容量ストレージデバイスをフォーマットする方法

USB 大容量ストレージデバイスは、Solaris オペレーティングシステムが使用する他のすべてのデバイスと同様に、使用する前にフォーマットしてファイルシステムを作成する必要があります。USB 大容量ストレージデバイス (フロッピーディスクも含む) は、PCFS および UFS の両方のファイルシステムをサポートします。PCFS または UFS ファイルシステムを作成する前に、ディスクがフォーマットされていることを確認してください。

  1. vold を無効する方法については、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法 を参照してください。

  2. (省略可能) USB フロッピーディスクデバイスをシステムに追加します。

    USB デバイスをホットプラグする方法については、以下を参照してください。

  3. (省略可能) フロッピーディスクデバイスを特定します。

    たとえば、次のようになります。


    # cd /dev/rdsk
    # devfsadm -C
    # ls -l c*0 | grep usb
    lrwxrwxrwx   1 root  root   55 Mar  5 10:35 c2t0d0s0 ->
    ../../devices/pci@1f,0/usb@c,3/storage@3/disk@0,0:a,raw

    この例では、フロッピーディスクデバイスは c2t0d0s0 です。

  4. フロッピーディスクをフロッピーディスクドライブに挿入します。

  5. フロッピーディスクをフォーマットします。


    % rmformat -Flong raw-device
    

    たとえば、次のようになります。


    % rmformat -Flong /dev/rdsk/c2t0d0s0
    
  6. ファイルシステムの種類を決定し、次のいずれかの作業を選択します。

    1. PCFS ファイルシステムを作成します。


      # mkfs -F pcfs -o nofdisk,size=size raw-device
      

      -size オプションを 512 バイトブロック単位で指定します。

      次の例は、1.4M バイトのフロッピーディスクに PCFS ファイルシステムを作成する方法を示しています。


      # mkfs -F pcfs -o nofdisk,size=2880 /dev/rdsk/c4t0d0s0
      

      次の例は、100M バイトの Zip ドライブに UFS ファイルシステムを作成する方法を示しています。


      # mkfs -F pcfs -o nofdisk,size=204800 /dev/rdsk/c5t0d0s0
      

      このコマンドの実行には、数分かかることがあります。

    2. UFS ファイルシステムを作成します。


      # newfs raw-device
      

      たとえば、次のようになります。


      # newfs /dev/rdsk/c4t0d0s0
      

      注 –

      フロッピーディスクの記憶容量は少ないので、UFS ファイルシステムのためにフロッピーディスクのかなりの容量が消費されます。


vold を使用して USB 大容量ストレージデバイスをマウントまたはマウント解除する方法

  1. すべてのリムーバブル大容量ストレージデバイス (USB 大容量ストレージデバイスを含む) について、デバイスの別名を表示します。


    $ eject -n
    .
    .
    .
    cdrom0 -> /vol/dev/rdsk/c0t6d0/audio_cd   (Generic CD device)
    zip0 -> /vol/dev/rdsk/c1t0d0/zip100       (USB Zip device)
    zip1 -> /vol/dev/rdsk/c2t0d0/fat32        (USB Zip device)
    rmdisk0 -> /vol/dev/rdsk/c5t0d0/unnamed_rmdisk (Peerless, HD or floppy)
    rmdisk1 -> /vol/dev/rdsk/c4t0d0/clik40    (Generic USB storage)
  2. 次のいずれかの方法を選択して、USB 大容量ストレージデバイスをマウントまたはマウント解除します。

    1. 上記のようにリストされたデバイス別名を使用して、USB 大容量ストレージデバイスをマウントします。


      $ volrmmount -i device-alias
      

      次の例では、USB Zip ドライブ (/rmdisk/zip0) をマウントします。


      $ volrmmount -i zip0 
      
    2. USB 大容量ストレージデバイスをマウント解除します。


      $ volrmmount -e device-alias
      

      次の例では、USB Zip ドライブ (/rmdisk/zip0) をマウント解除します。


      $ volrmmount -e zip0
      
  3. USB デバイスを、汎用の USB ドライブから取り出します。


    $ eject device-alias
    

    たとえば、次のようになります。


    $ eject rmdisk0
    

    注 –

    デバイスのマウントが解除されていない場合、eject コマンドは、そのデバイスのマウント解除も行います。また、そのデバイスにアクセスするアプリケーションが実行されている場合は、そのアプリケーションを終了させます。


vold を使用しないで USB 大容量ストレージデバイスをマウントまたはマウント解除する方法

  1. vold を無効にする方法については、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法 を参照してください。

  2. スーパーユーザーになります。

  3. (省略可能) フロッピーディスクデバイスを特定します。

    たとえば、次のようになります。


    # cd /dev/rdsk
    # devfsadm -C
    # ls -l c*0 | grep usb
    lrwxrwxrwx   1 root  root   55 Mar  5 10:35 c2t0d0s0 ->
    ../../devices/pci@1f,0/usb@c,3/storage@3/disk@0,0:a,raw

    この例では、フロッピーディスクデバイスは c2t0d0s0 です。

  4. 次のいずれかの方法を選択して、USB 大容量ストレージデバイスをマウントまたはマウント解除します。

    1. USB 大容量ストレージデバイスをマウントします。


      # mount [ -F fstype ] block-device mount-point
      

      次の例は、UFS ファイルシステムを使用しているデバイスのマウント方法を示しています。


      # mount /dev/dsk/c1t0d0s2 /mnt
      

      次の例は、PCFS ファイルシステムを使用していするデバイスのマウント方法を示しています。


      # mount -F pcfs /dev/dsk/c1t0d0s0:c /mnt
      

      次の例は、読み取り専用の HSFS ファイルシステムを使用している CD のマウント方法を示しています。


      # mount -F hsfs -o ro /dev/dsk/c1t0d0s2 /mnt
      
    2. USB 大容量ストレージデバイスをマウント解除します。

      デバイス上のファイルシステムを使用しているユーザーがいないことを最初に確認してください。

      たとえば、次のようになります。


      # fuser -c -u /mnt
      # umount /mnt
      
    3. デバイスを取り出します。


      # eject /dev/[r]dsk/cntndnsn
      

      たとえば、次のようになります。


      # eject /dev/rdsk/c1t0d0s2 
      

特定の USB ドライバを無効にする

特定の種類の USB デバイスを無効にするには、対応するクライアントドライバを無効にします。たとえば、USB プリンタを無効にするには、そのプリンタを使用している usbprn ドライバを無効にします。usbprn を無効にしても、USB ストレージデバイスなどの他のデバイスには影響しません。

両方のフレームワークでデバイスタイプを無効にする必要があります。一方のフレームワークだけでデバイスタイプを無効にすることはできません。次の表に、USB デバイスタイプとそれに対応するドライバを示します。

デバイスの種類 

無効にするドライバ 

オーディオ 

usb_ac および usb_as

HID (通常はキーボードとマウス) 

hid

ストレージ 

scsa2usb

プリンタ 

usbprn

シリアル 

usbser_edge

システムに接続されている USB デバイスのドライバを無効にすると、次のようなコンソールメッセージが表示されます。


usba10: WARNING: usba:    no driver found for device name

特定の USB ドライバを無効にする方法

  1. スーパーユーザーになります。

  2. 削除するドライバの別名を記録します。


    # cp /etc/driver_aliases /etc/driver_aliases.orig
    
  3. 無効にする USB ドライバの別名を特定します。

    たとえば、次のようになります。


    # grep usbprn /etc/driver_aliases
    usbprn "usbif,class7.1.1"
    usbprn "usbif,class7.1.2"
  4. ドライバの別名エントリを削除します。

    たとえば、次のようになります。


    # update_drv -d -i '"usbif,class7.1.1"' usbprn
    # update_drv -d -i '"usbif,class7.1.2"' usbprn
    
  5. システムをリブートします。


    # init 6
    

使用されていない USB デバイスのリンクを削除する方法

システムの電源がオフのときに USB デバイスを取り外した場合には、次の手順を実行します。システムの電源が切断されているときに USB デバイスを取り外すと、存在しないデバイスへのリンクが残る場合があります。

  1. スーパーユーザーになります。

  2. そのデバイスにアクセスする可能性のあるアプリケーションをすべて閉じます。

  3. 特定の USB クラスの未使用のリンクを削除します。

    たとえば、次のようになります。


    # devfsadm -C -c audio
    

    または、関連するリンクをすべて削除します。


    # devfsadm -C