Håndtering af USB-enheder i Linux

Tux

Denne artikel beskriver hvordan USB-enheder såsom USB-sticks, USB-kameraer og USB-Mass Storage kan håndteres uden at bruge de helt store armbevægelser. Det antages at kernen man benytter er kompilet med USB-understøttelse og at usbdevfs/usbfs er mounted på /proc/bus/usb.
(Red. artiklen er for de dists som ikke bruger en form for automount)

Første skridt på vejen er at installere "sg-utils" eller "sg3-utils". På Debian gøres dette nemt med:

apt-get install sg-utils.

Sg3-utils er en smule mere avanceret end sg-utils, men begge dækker vores behov til denne artikel. Sg*-utils er beregnet til at sende SCSI kommandoer til Linux enheder, og siden USB-enheder er mounted som SCSI kan sg*-utils benyttes her.

Scenariet er at man har plugget sin USB-enhed, f.eks. en USB-stick, i sin Linuxbox og nu vil mounte enheden. Vi bliver derfor root:

<tt>su
Password:</tt>

og udfører:
sg_scan -i

I mit tilfælde får jeg outputtet:

/dev/sg0: scsi0 channel=0 id=0 lun=0 [em]
    SAMSUNG   CDRW/DVD SN-324B  U102 [rmb=1 cmdq=0 pqual=0 pdev=0x5]
/dev/sg1: scsi1 channel=0 id=0 lun=0 [em]
    Generic   USB Storage-SMC   0205 [rmb=1 cmdq=0 pqual=0 pdev=0x0]
/dev/sg2: scsi2 channel=0 id=0 lun=0 [em]
         [rmb=1 cmdq=0 pqual=1 pdev=0x0]
/dev/sg3: scsi3 channel=0 id=0 lun=0 [em]
    QUANTUM   FIREBALLP AS40.0  A2R. [rmb=0 cmdq=0 pqual=0 pdev=0x0]
/dev/sg4: scsi4 channel=0 id=0 lun=0 [em]
    LEXAR     JUMPDRIVE         1.01 [rmb=1 cmdq=0 pqual=0 pdev=0x0]</tt></pre>

Heraf kan jeg se at min USB-stick befinder sig på <i>/dev/sg4</i>. Dog er SCSI-enheder mappet til andre enheder så for at finde den endelige enhed udfører vi:
<code>>sg_map

I dette tilfælde får jeg outputtet:

/dev/sg0 /dev/scd0
/dev/sg1 /dev/sda
/dev/sg2 /dev/sdb
/dev/sg3 /dev/sdc
/dev/sg4 /dev/sdd

Altså findes enheden på /dev/sdd. Enhedens partitionstabelfindes nemt med kommandoen
cfdisk /dev/sd*

Name Flags Part Type FS Type [Label] Size (MB)
----------------------------------------------------------------------
sdd1 Boot Primary FAT16 [MEDION ] 64,43
Pri/Log Free Space 0,07

Dette vil desuden afsløre filsystemets type på hver af partitionerne.

Nu er både enhed og partition kendt og man kan derefter mounte USB-enheden som sædvanligt:

mount -t vfat /dev/sdd1 /mnt/usbstick

Af andre nyttige værktøjer til brug når der arbejdes med USB kan nævnes lsusb i pakken

usbutils

Links:
http://www.linux-usb.org/
http://sg.torque.net/sg/u_index.html