커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 장비 / 하드웨어 도움말
검색 : 사이트 WHOIS 웹서버 종류

Sun 장비 (1, 자료 4)
엑스박스(xbox) / PS2 / iPod (7, 자료 6)
USB 장치 / IEEE 1394 (7, 자료 1)

  리눅스에서 USB 메모리 카드 사용 작성일 : 2003/08/28 01:25
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 14211
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : 리눅스에서 USB 메모리 카드 사용
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2003.8.27(수)
    수정일 : 2005.10.2(월) 문제해결 부분 추가

    - 환  경 : 커널 2.4.20, 레드햇 8.0, hotplugging (2005.10현재 2.6.x에서도 마찬가지)

    64MB의 작은 USB 메모리 카드가 하나 있습니다.
    설정 파일이나 작업 문서 등을 백업해두기 딱 좋습니다. /etc를 통채로 백업해도 남습니다. ^^

    USB 메모리 카드를 USB 포트에 꽂으면 hotplugging되어 바로 인식합니다.  
    dmesg 로 확인. lsmod로 모듈이 로딩된 것도 확인
    /proc/bus/usb/devices, /proc/bus/usb/drivers, /proc/partitions 파일에서 더 자세한
    정보를 얻을 수 있습니다.

     
    # dmesg

    ... 생략 ...
    hub.c: new USB device 00:1f.2-2, assigned address 5
    usb.c: USB device 5 (vend/prod 0x9a6/0x8001) is not claimed by any active
    driver.
    Initializing USB Mass Storage driver...
    usb.c: registered new driver usb-storage
    scsi1 : SCSI emulation for USB Mass Storage devices
      Vendor: KMIT      Model: UNI DRIVE         Rev: 1.00   <-- 국산입니다. ^^
      Type:   Direct-Access                      ANSI SCSI revision: 02
    Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
    SCSI device sda: 129408 512-byte hdwr sectors (66 MB)
    sda: Write Protect is off  <-- 쓰기 가능 상태
    sda: sda1                 <-- 디바이스와 파티션
    WARNING: USB Mass Storage data integrity not assured
    USB Mass Storage device found at 5
    USB Mass Storage support registered.
    #
    # lsmod |grep usb
    usb-storage            74592   1
    scsi_mod              107608   4  [sg sd_mod usb-storage ide-scsi]
    usb-uhci               26412   0  (unused)
    usbcore                78944   1  [usb-storage hid usb-uhci]
     


    속에 있는 걸 다보여줬네요.
    /dev/sda, /dev/sdb 디바이스를 통해 사용할 수 있으며 위에 보이는대로 저는 /dev/sda 입니다.
    파티션은 하나여서 sda1만 표시됐습니다. 여러 개이면 sda1 sda2 sda3 .. 같이 표시됩니다.

    이하 존칭 생략합니다.

    1. mount해보자.

    /etc/fstab에 다음과 같이 넣는다. /dev/sda1은 자신의 환경에 맞게
     
    /dev/sda1   /mnt/usb    auto      noauto,iocharset=cp949,user 0 0
     


    mount 하면
     
    # mkdir /mnt/usb  <-- 없다면 생성
    # mount /mnt/usb
    # df -k
    Filesystem           1K-blocks      Used Available Use% Mounted on
    ... 생략 ...
    /dev/sda1                64432     24624     39808  39% /mnt/usb
     


    2. 자동으로 마운트하는 2가지 방법

    1) automount 데몬을 활용하여 USB 사용할 때만 마운트하기

    USB 메모리 카드로 접근을 하면 바로 mount되도록 /etc/auto.misc에 다음을 넣는다.

     
    usb             -fstype=auto,iocharset=cp949 :/dev/sda1
     


    cd /misc/usb 또는 ls /misc/usb만 해도 바로 마운트되고 60초동안 사용이 없으면
    unmount 된다. automount에 대해서는
    http://coffeenix.net/board_view.php?cata_code=0&bd_code=27 를 참고

    2) USB 메모리 카드를 꽂을 때 자동으로 마운트하기

    커널의 hotplugging에 의해 usb-storage 모듈이 로딩이되고 이 때 쉘 스크립트를 통해
    mount 명령을 실행할 수 있다.

    /etc/hotplug/usb/usb-storage 파일을 만들고 다음 내용을 입력한다.
    그런 후 chmod 755 usb-storage

     
    #!/bin/sh
    #
    # /etc/fstab 설정에 따라 /mnt/usb에 마운트
    mount /mnt/usb
     


    3. 문제해결 (2005.10 현재)

    Q1) USB가 자동으로 마운트 안되요.

    A1) hotplugging은 커널에서 지원하도록 컴파일을 한 경우에 사용할 수 있다.
        cat /proc/sys/kernel/hotplug 명령을 했을 때 /sbin/hotplug(USB를 꽂으면
        /sbin/hotplug 스크립트가 실행됨을 나타냄)이 보이는지 확인해봐야 한다.
        만약 /proc/sys/kernel/hotplug 자체도 없다면 커널부터 다시 컴파일하길

    * 관련글 : http://coffeenix.net/bbs/viewtopic.php?p=1952#1952

    Q2) 일반 사용자도 USB에 쓰기 가능하게 mount할 수는 없나요?

    A2) /etc/fstab 설정에 uid=UID값을 옵션을 추가하면 된다.
       UID 500인 사용자는 읽고 쓰기가 모두 가능하게 하려면 아래와 같이 설정하면 된다.

     
    /dev/sda1  /mnt/usb  auto   noauto,iocharset=cp949,user,uid=500 0 0
     


    umask=002 옵션으로 소유자(uid=로 지정)와 그룹(gid=로 지정)이 읽고 쓰기 가능하게 설정할 수도 있다.

    * 관련글 : http://coffeenix.net/bbs/viewtopic.php?p=1872#1872

    Q3) 윈도처럼 "하드웨어 안전하게 제거"라는 것은 없나요?

    A2) 굳이 필요없겠지만 /etc/fstab 설정에 sync 옵션을 추가하면 write할 때
        바로바로 USB에 쓰게 된다. sync옵션을 주지 않았어도 문제 생긴적은 없었다.
      커피닉스 카페 최근 글
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
    [08/04] 칼리리눅스 텔넷관련
    [06/29] 또 다른 무료 SSL 인증서, Let's Encrypt
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~