본문 바로가기

Linux and Unix

리눅스에서 USB 메모리 사용하기

2005/06/23 16:51 에 이글루스 블로그에 작성했던 글을 가져와서 수정했습니다.

1. 확인 방법

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: P&C FDIS   Model: K V2 (M)   Rev:

 Type:  Direct-Access           ANSI SCSI revision: 02

Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0

usbcore : registered new driver usb-storage

SCSI device sda: 905216 512-byte hdwr sectors (463 MB)

sda: Write Protect is off <-- 쓰기 가능 상태

sda: Mode Sense: 03 00 00 00

sda: assuming drive cache: write through

sda: sda4         <-- 디바이스와 파티션

...

... 생략

#
# 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 입니다.
파티션은 하나여서 sda4만 표시됐습니다.
여러 개이면 sda1 sda2 sda3 .. 같이 표시됩니다.

2. mount 해 봅시다.

/etc/fstab에 다음과 같이 넣습니다. /dev/sda4 은 자신의 환경에 맞게 수정하고
아래 둘 중에 하나를 입력해야 합니다.
--------------------------------------------------------------------

/dev/sda4  /mnt/usb  auto   noauto,iocharset=utf8,user 0 0
/dev/sda4  /mnt/usb  auto   noauto,iocharset=cp949,user 0 0

--------------------------------------------------------------------

위의 iocharset는 자신의 shell 언어 설정에 따라 달라집니다.

# locale 
라고 명령을 내렸을때

언어가 ko_KR.UTF-8 로 되어 있다면, utf
언어가 ko_KR.eucKR로 되어 있다면, cp949

를 사용해야 합니다.

만약 /mnt/usb 디렉토리가 없다면 생성해야 합니다.

# mkdir /mnt/usb <-- 없다면 생성

--------------------------------------------------------------------

mount 를 시도한다.

# mount /mnt/usb

# df -k

Filesystem      1K-blocks   Used Available Use% Mounted on

... 생략 ...

/dev/sda4        64432   24624   39808 39% /mnt/usb

--------------------------------------------------------------------

3. USB가 자동으로 마운트되도록 하기

1) automount 데몬으로 사용할 때만 마운트하기

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

--------------------------------------------------------------------

usb       -fstype=auto,iocharset=cp949 :/dev/sda4
또는
usb       -fstype=auto,iocharset=utf8 :/dev/sda4

--------------------------------------------------------------------

cd /misc/usb 또는 ls /misc/usb만 해도 바로 마운트되고 60초동안 사용이 없으면 unmount 됩니다.

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

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

/etc/hotplug/usb/usb-storage 파일을 다음과 같이 만들어 줍니다.

--------------------------------------------------------------------

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

mount /mnt/usb

--------------------------------------------------------------------

그런 후 생성한 파일에 실행속성을 부여합니다.
# chmod 755 usb-storage

요즘의 리눅스에서는 USB 메모리를 꽂으면 거의 대부분 자동으로 마운트 됩니다.

강제로 마운트를 하면 마운트가 되는데, 자동으로 마운트가 되지 않을 경우에는

윈도우즈나 맥에 꽂았다가 빼기전에 반드시 탐색기나 작업 표시줄을 통해서 "장치 꺼내기" 를 통해서 정상적으로 마운트를 해제한 후에 시도 하시기 바랍니다.

그리고 리눅스에 꽂았다가 빼기전에도 반드시 "마운트 해제" 나 "장치 꺼내기"를 한 후에 USB를 슬롯에서 제거하시기 바랍니다.

명령어창 상태라면, 

# umount /mnt/usb 

명령을 사용하여 장치를 해제한 수 USB를 제거합니다.