Mar 23, 2007
SMB サーバ経由で外付け USB HDD にアクセス
後輩から Thinkpad T41 で USB 2.0 が使えないと聞き、自分の環境も そうなっているのに気づいた。いろいろ調べてみたり、別の後輩に BIOS ダウングレードなどもやってもらってみたが、ダメみたい。 同じ目にあっている人はたくさんいるようだ。ソフトウェア的問題なのか、 それともみんなハードウェア的に壊れたのか(壊れやすいという問題なのか) わからない。
LINUX デスクトップを samba サーバにして、それ経由で USB 外部ディスクにアクセスした。
USB-HDD <-USB-> LINUX Desktop <-Ether-> XP Laptop
<-Ether-> 部分が無線LAN 802.11a で 19Mbps、有線 100TX で 56Mbps から 72Mbps くらい出た。有線でやったときはスループットが 揺れてた(TCP Monitor 調べ)ので、ネックはネットワークの パフォーマンスじゃないかも。
まず、Linux Desktop で USB-HDD を認識する。 これはほとんどやることが無かった。 USBに刺したら、/media/usbdisk に mount された。 確認するときは:
% cat /proc/bus/usb/devices
:
T: Bus=01 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#= 10 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=04bb ProdID=010b Rev= 1.00
S: Manufacturer=I-O DATA DEVICE,INC.
S: Product=HDH-UL series
S: SerialNumber=019A0080
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
% cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: HDS725050KLA360 Rev: K2AO
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi8 Channel: 00 Id: 00 Lun: 00
Vendor: Maxtor 6 Model: B300R0 Rev: BAH4
Type: Direct-Access ANSI SCSI revision: 02
% cat /proc/scsi/usb-storage/8
Host scsi8: usb-storage
Vendor: I-O DATA DEVICE,INC.
Product: HDH-UL series
Serial Number: 019A0080
Protocol: Transparent SCSI
Transport: Bulk
Quirks:
% dmesg | less
usb 1-7: new high speed USB device using ehci_hcd and address 12
usb 1-7: configuration #1 chosen from 1 choice
scsi10 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 12
usb-storage: waiting for device to settle before scanning
Vendor: Maxtor 6 Model: B300R0 Rev: BAH4
Type: Direct-Access ANSI SCSI revision: 02
SCSI device sdd: 586110608 512-byte hdwr sectors (300089 MB)
sdd: Write Protect is off
sdd: Mode Sense: 03 00 00 00
sdd: assuming drive cache: write through
SCSI device sdd: 586110608 512-byte hdwr sectors (300089 MB)
sdd: Write Protect is off
sdd: Mode Sense: 03 00 00 00
sdd: assuming drive cache: write through
sdd: sdd1
sd 10:0:0:0: Attached scsi disk sdd
usb-storage: device scan complete
参考: Link
次に、LINUX Desktop で iptables と smb の設定。
/etc/sysconfig/iptables に netbios-ssn の行を追加して /etc/rc.d/init.d/iptables restart.
# Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p 89 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport netbios-ssn -j ACCEPT-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
/etc/samba/smb.conf を設定。
[global] workgroup = MYGROUP server string = plant hosts allow = 127. A.B.C.D/25 E.F.G.H/24 I.J.K.L/24 printcap name = /etc/printcap load printers = yes cups options = raw log file = /var/log/samba/%m.log max log size = 50 security = user socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = no idmap uid = 16777216-33554431 idmap gid = 16777216-33554431 template shell = /bin/false winbind use default domain = no[home] path = /home/%S comment = Home Directory writable = yes guest ok = no browseable = no
[usbdisk] path = /media/usbdisk guest ok = yes writable = yes browseable = yes
[homes] path = /home comment = Home Directories writable = no read only = yes guest ok = yes browseable = yes
ある程度ログが出るように、/etc/sysconfig/samba を以下に。
# Options to smbd SMBDOPTIONS="-D -d 1" # Options to nmbd NMBDOPTIONS="-D -d 1" # Options for winbindd WINBINDOPTIONS=""
nobody や guest などの UNIX account を設定して、 smbpasswd -a user する。
これで、Windows XP のエクスプローラのアドレスに
などと入れると、共有できる。(A.B.C.D は Desktop のIPアドレス。)\\A.B.C.D\
writeback message: Ready to post a comment.