USBハードディスクの接続とマウント

日時:2005/03/12 10:15

USBハードディスクはSCSIデバイスとして認識される。よって、カーネルコンフィグではUSBの設定意外にSCSIの有効化が必要。

まずはカーネルの設定(カーネル2.6)。
Device Drivers  --->
  SCSI device support  --->
    <*>  SCSI disk support
  USB support  --->
    <*> EHCI HCD (USB 2.0) support
    <*> USB Mass Storage support
として、必要な機能をオンにする。

USB 2.0の場合は、EHCIをオンにするだけでOK。さらに、ハードディスクを使うので「USB Mass Storage support」が必要になる。 カーネルを再構築(カーネル2.6の設定とコンパイル)したら、USBハードディスクを接続する。これだけで認識されるはずなので、その確認を行う。
# cat /proc/bus/usb/devices
を実行して、
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0411 ProdID=002a Rev= 1.01
S:  Manufacturer=MELCO INC.
S:  Product=MELCO INC. USB2-IDE Bridge
S:  SerialNumber=000001011BA8
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
のように表示されればハードディスクがUSBとして認識されている。次に、SCSIデバイスとしての状態確認。
# cat /proc/scsi/scsi
で、
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: USB-HS   Model: WDC WD1600AB-00D Rev: 0.01
  Type:   Direct-Access                    ANSI SCSI revision: 02
このように出力されればOK。当然、使用しているハードディスクによって表示の細部は異なる。

ちなみに、dmesgコマンドの結果は以下のとおり。
# dmesg
SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
sda: assuming drive cache: write through
SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
sda: assuming drive cache: write through
 sda: sda1
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
usb-storage: device scan complete
sda1(/dev/sda)として認識されていることが分かる。

パーティションとファイルシステムの作成の要領で、
# fdisk /dev/sda
を実行してパーティションを作成し、好みのファイルシステムを作成する。ext3なら、
# mke2fs -j /dev/sda1
になる。

マウントするには、まずマウントポイントを作成する。
# mkdir /mnt/usbhd
試しにマウントしてみる。
# mount -t ext3 /dev/sda1 /mnt/usbhd
マウントしたら、/mnt/usbhdにcdしてみたり、dfを実行したりしてうまくマウントできているかどうかを確認。

問題なければ、/etc/fstabに設定を追加する。
/dev/sda1               /mnt/usbhd      ext3            noatime               0 0
これで、マシンを再起動してもUSBハードディスクが自動的にマウントされる。