2012년 10월 10일 수요일

리눅스에서 USB 사용법


USB Storage(USB메모리 디스크)를 장착하면 잠시후에 자동으로 인식하게 된다.
이렇게 안될 경우에는 Menual방식으로 드라이버를 Loading해야만 사용할 수 있다.
USB Storage는 Linux에서 SCSI디스크로 인식하기 때문에 등록한 후에는
fdisk를 통해서 확인하면 SCSI디스크의 Target Name이 나타나는 것을 확인할 수 있다.

1. lsmod를 통해서 현재 드라이버확인
usb-uhci/usb-storage가 로딩되어 있는지 확인한다.
Module                  Size  Used by    Not tainted
i830                   72024   1
agpgart                57752  11  (autoclean)
usbserial              23580   0  (autoclean) (unused)
parport_pc             18756   1  (autoclean)
lp                      8964   0  (autoclean)
parport                36832   1  (autoclean) [parport_pc lp]
autofs4                15928   0  (autoclean) (unused)
ds                      8576   2
yenta_socket           13792   2
pcmcia_core            56800   0  [ds yenta_socket]
audit                  89816   3
8139too                17384   0
mii                     3956   0  [8139too]
crc32                   3712   0  [8139too]
sg                     36204   0  (autoclean)
sr_mod                 17784   2  (autoclean)
microcode               5688   0  (autoclean)
ide-scsi               12336   1
scsi_mod              106408   3  [sg sr_mod ide-scsi]
ide-cd                 33920   0
cdrom                  32416   0  [sr_mod ide-cd]
keybdev                 2944   0  (unused)
mousedev                5524   1
hid                    22116   0  (unused)
input                   5888   0  [keybdev mousedev hid]
ehci-hcd               20008   0  (unused)
usb-uhci               25740   0  (unused)
usbcore                77376   1  [usbserial hid ehci-hcd usb-uhci]
ext3                   85736   2
jbd                    50604   2  [ext3]
2. USB 드라이버를 Loading한다.
Linux:/>/sbin/modprobe usb-storage (USB Flash Memory DISK)
[Hancom Linux 4.0]에서는 /sbin/modprobe usb_storage


3. USB드라이버 Loading후에 디스크 드라이브 확인
USB드라이버를 Loading한 후에 실제로 USB메모리 디스크가 Linux O/S에서
인식했는지 확인하는 절차이다. 3가지의 방식으로 확인해 본다.1) FDISK를 사용한 확인   fdisk -l을 하면 USB디스크가 SCSI디바이스로 인식한다.
  ROOT/> fdisk -l
  Disk /dev/sda: 521 MB, 521142272 bytes
  32 heads, 32 sectors/track, 994 cylinders
  Units = cylinders of 1024 * 512 = 524288 bytes
      Device Boot    Start       End    Blocks   Id  System
  /dev/sda1   *         1       994    508912    6  FAT16
   Disk /dev/hda: 60.0 GB, 60011642880 bytes
  255 heads, 63 sectors/track, 7296 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
      Device Boot    Start       End    Blocks   Id  System
      /dev/hda1   *         1      3824  30716248+   7  HPFS/NTFS
   /dev/hda2          3825      7296  27888840    f  Win95 Ext'd (LBA)
   /dev/hda5          3825      6374  20482843+   7  HPFS/NTFS
   /dev/hda6          6375      6387    104391   83  Linux
   /dev/hda7          6388      6518   1052226   82  Linux swap
   /dev/hda8          6519      7296   6249253+  83  Linux
 2) LOG Message를 통한 확인
   로그메시지를 확인하면 SCSI 디바이스로 인식한 것을 확인할 수 있다.
   tail -n 7 /var/log/messages
   Sep 22 17:27:26 localhost kernel: SCSI device sda: 1017856 512-byte hdwr sectors (521 MB)
   Sep 22 17:27:26 localhost kernel: sda: Write Protect is off
   Sep 22 17:27:26 localhost kernel:  sda: sda1
   Sep 22 17:27:26 localhost kernel: SCSI device sda: 1017856 512-byte hdwr sectors (521 MB)
   Sep 22 17:27:26 localhost kernel: sda: Write Protect is off
   Sep 22 17:27:26 localhost kernel:  sda: sda1
   Sep 22 17:27:27 localhost devlabel: devlabel service started/restarted
 3) PROC을 통한 확인    USB드라이버가 로딩이 되면 PROC의 SCSI밑에 usb-storage-0가 등록이 된다.
   그 디렉토리에서 보면 파일 1이 생성되어 있는 것을 볼 수 있다.
   이 파일에 현재 USB storage의 내용이 나타난다. 아래에 보면 현재 Attached가 Yes로 되어
   있는 것을 확인 할 수 있다.
   Linux/> ls /proc/scsi
   ide-scsi   scsi   sg   usb-storage-0
   Linux/> cat /proc/scsi/usb-storage-0/1
      Host scsi1: usb-storage
          Vendor: Imation
         Product: Flash Drive
   Serial Number: 21110499738793
        Protocol: Transparent SCSI
       Transport: Bulk
            GUID: 071800830021110499738793
        Attached: Yes
    [Hancom Linux 4.0]에서는 /proc/scsi/usb-storage/1로 생성된다.

4.  USB드라이버의 마운트Linux:/> mount /dev/sda1 /mnt/flash
  Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      3824  30716248+   7  HPFS/NTFS
/dev/hda2          3825      7296  27888840    f  Win95 Ext'd (LBA)
/dev/hda5          3825      6374  20482843+   7  HPFS/NTFS
/dev/hda6          6375      6387    104391   83  Linux
/dev/hda7          6388      6518   1052226   82  Linux swap
/dev/hda8          6519      7296   6249253+  83  Linux
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda8             5.9G  4.4G  1.2G  79% /
/dev/hda6              99M  9.0M   85M  10% /boot
none                  246M     0  246M   0% /dev/shm
/dev/sda1             497M  3.5M  494M   1% /mnt/flash


5. USB 스토리지 사용하지 않을 경우 순서
1) sync;sync; umount /dev/sda1
2) modprobe -r usb-storage
[Hancom Linux 4.0]에서는 /sbin/modprobe -r usb_storage





출처 - http://katalog.egloos.com/2524010

댓글 없음:

댓글 쓰기