作業 |
説明 |
参照先 |
---|---|---|
USB 大容量ストレージデバイスを使用できるように準備する |
vold を使用して USB 大容量ストレージデバイスを使用できるように準備する | |
|
vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する | |
USB デバイス情報を表示する |
prtconf コマンドを使用して USB デバイス情報を表示する | |
USB 大容量ストレージデバイスをフォーマットする |
USB 大容量ストレージデバイスをフォーマットして、データを格納できるようにする | |
USB 大容量ストレージデバイスをマウントする |
vold を使用して USB 大容量ストレージデバイスをマウントする | |
|
vold を使用しないで USB 大容量ストレージデバイスをマウントする | |
(省略可能) USB デバイスドライバを無効にする |
システムで USB サポートを必要としない場合は、USB デバイスドライバを無効にする | |
(省略可能) 未使用の USB デバイスのリンクを削除する |
devfsadm コマンドを使って、未使用の 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 フロッピーディスクデバイスは、fd (フロッピー) ドライバでは管理されません。アプリケーションから fd (ネイティブフロッピー) ドライバに対する ioctl(2) 呼び出しを実行すると、そのアプリケーションは失敗します。read(2) および write(2) 呼び出しのみを実行するアプリケーションは成功します。SunPCI や rmformat などのアプリケーションも成功します。
現時点では、CDE のファイルマネージャは USB フロッピーディスクを完全にはサポートしていません。ただし、UFS ファイルシステムを含むフロッピーディスクは、ファイルマネージャのリムーバブルメディアマネージャから開いたり、名前を変更したり、フォーマットしたりすることはできます。PCFS ファイルシステムを含むフロッピーディスクを開くには、リムーバブルメディアマネージャを使用する必要があります。フロッピーディスクがいずれかの種類のファイルシステムを含む場合には、フロッピーディスクとファイルマネージャ間でファイルをドラッグ&ドロップできます。
ボリューム管理 (vold) では、USB フロッピーディスクデバイスは SCSI リムーバブルメディアデバイスとして認識されます。ボリューム管理を使用して、/rmdisk ディレクトリのUSB フロッピーディスクデバイスにアクセスできます。
USB フロッピーディスクデバイスの使用方法の詳細については、第 17 章「リムーバブルメディアの管理 (概要)」を参照してください。
デバイスの識別が間違っていたり、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) のマニュアルページを参照してください。
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) のマニュアルページを参照してください。
USB 大容量ストレージデバイスは、ボリューム管理 (vold) を使用しないで準備することもできます。次のコマンドを実行して vold を停止します。
# /etc/init.d/volmgt stop |
または、次の手順を実行して、vold を実行します。この場合、USB 大容量ストレージデバイスは vold には登録されません。
スーパーユーザーになります。
以下に示すように /etc/vold.conf ファイル内の次の行で # マークを挿入してコメント扱いにし、USB 大容量ストレージデバイスのボリュームマネージャの登録を削除します。
# use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk.so rmdisk%d |
上記のようにコメントアウトした後、vold を再起動します。
# /etc/init.d/volmgt start |
この行をコメントにすると、そのシステム内に他の SCSI、ATAPI Zip、Peerless などのリムーバブルデバイスがある場合、それらのデバイスの vold の登録も無効になります。
詳細については、vold.conf(4) のマニュアルページを参照してください。
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) . . . |
上の出力から、次の構成の特徴を確認できます。
PCI カードポートは、usb ノードの上に出力されている一連の pci ノード番号からわかります。
PCI カードポート (4) は、pci ノード 1 およびノード 3 という 2 つの階層になっています。これらのポートは、マザーボードと PCI カードの両方が使用するためです。オンボードポート (2) は、1 つの PCI ノード (1) として出力されています。これらのポートは、メインシステムバスに近い 1 つのハードウェアアーキテクチャ層であるためです。
デバイスノードに関連付けられたドライバの名前は、デバイスおよびそのデバイスが割り当てられているポートを使用しているフレームワークを示しています。(4) のうち、usba10 で始まるすべての USB インスタンスのドライバは、USBA 1.0 フレームワークがこれらのポートおよびポートに割り当てられているデバイスを管理していることを示しています。これらのポートだけが、ハイスピード USB 2.0 デバイスをサポートしています。
USB 大容量ストレージデバイスは、Solaris オペレーティングシステムが使用する他のすべてのデバイスと同様に、使用する前にフォーマットしてファイルシステムを作成する必要があります。USB 大容量ストレージデバイス (フロッピーディスクも含む) は、PCFS および UFS の両方のファイルシステムをサポートします。PCFS または UFS ファイルシステムを作成する前に、ディスクがフォーマットされていることを確認してください。
vold を無効する方法については、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法 を参照してください。
(省略可能) USB フロッピーディスクデバイスをシステムに追加します。
USB デバイスをホットプラグする方法については、以下を参照してください。
(省略可能) フロッピーディスクデバイスを特定します。
たとえば、次のようになります。
# 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 です。
フロッピーディスクをフロッピーディスクドライブに挿入します。
フロッピーディスクをフォーマットします。
% rmformat -Flong raw-device |
たとえば、次のようになります。
% rmformat -Flong /dev/rdsk/c2t0d0s0 |
ファイルシステムの種類を決定し、次のいずれかの作業を選択します。
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 |
このコマンドの実行には、数分かかることがあります。
UFS ファイルシステムを作成します。
# newfs raw-device |
たとえば、次のようになります。
# newfs /dev/rdsk/c4t0d0s0 |
フロッピーディスクの記憶容量は少ないので、UFS ファイルシステムのためにフロッピーディスクのかなりの容量が消費されます。
すべてのリムーバブル大容量ストレージデバイス (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) |
次のいずれかの方法を選択して、USB 大容量ストレージデバイスをマウントまたはマウント解除します。
USB デバイスを、汎用の USB ドライブから取り出します。
$ eject device-alias |
たとえば、次のようになります。
$ eject rmdisk0 |
デバイスのマウントが解除されていない場合、eject コマンドは、そのデバイスのマウント解除も行います。また、そのデバイスにアクセスするアプリケーションが実行されている場合は、そのアプリケーションを終了させます。
vold を無効にする方法については、vold を使用しないで USB 大容量ストレージデバイスを使用できるように準備する方法 を参照してください。
スーパーユーザーになります。
(省略可能) フロッピーディスクデバイスを特定します。
たとえば、次のようになります。
# 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 です。
次のいずれかの方法を選択して、USB 大容量ストレージデバイスをマウントまたはマウント解除します。
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 |
USB 大容量ストレージデバイスをマウント解除します。
デバイス上のファイルシステムを使用しているユーザーがいないことを最初に確認してください。
たとえば、次のようになります。
# fuser -c -u /mnt # umount /mnt |
デバイスを取り出します。
# eject /dev/[r]dsk/cntndnsn |
たとえば、次のようになります。
# eject /dev/rdsk/c1t0d0s2 |
特定の種類の 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 |
スーパーユーザーになります。
削除するドライバの別名を記録します。
# cp /etc/driver_aliases /etc/driver_aliases.orig |
無効にする USB ドライバの別名を特定します。
たとえば、次のようになります。
# grep usbprn /etc/driver_aliases usbprn "usbif,class7.1.1" usbprn "usbif,class7.1.2" |
ドライバの別名エントリを削除します。
たとえば、次のようになります。
# update_drv -d -i '"usbif,class7.1.1"' usbprn # update_drv -d -i '"usbif,class7.1.2"' usbprn |
システムをリブートします。
# init 6 |
システムの電源がオフのときに USB デバイスを取り外した場合には、次の手順を実行します。システムの電源が切断されているときに USB デバイスを取り外すと、存在しないデバイスへのリンクが残る場合があります。