리눅스에서 USB 인식하기

– usb 외장 디스크가 usb 포트에 꼽혀 있고 시스템을 재부팅 하면 자동으로 usb 외장 디스크 인식
– linux 복구 모드에서 사용 가능 (install booting cd #1)

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

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.