리눅스에서 USB장치 사용하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 6,270 조회
- 0 추천
- 목록
본문
제목 : 리눅스에서 USB장치 사용하기
이번절 에서는 리눅스에서 USB장치를 사용하는 방법에 대해서 알아보도록 하겠습니다. 당연한 얘기지만 리눅스에서도 USB장치를 사용할 수 있습니다. 일반 디스크장치나 CD-ROM드라이브를 사용하는 방법과 마찬가지로 마운트포인트를 생성하고 파일시스템 타입에 맞게 마운트를 하여 사용하면 됩니다.
USB장치를 vfat타입으로 사용하기
USB장치가 마운트된 후에는 자연적으로 파일 또는 디렉토리의 생성/삭제등이 가능합니다. 자, 그럼 여기에서는 일반사람들이 가장 흔하게 사용하는 USB장치인 USB메모리스틱을 리눅스에서 마운트하여 사용하는 방법에 대해서 알아보도록 하겠습니다.
먼저, 필자가 이번 절에서 예로 들 메모리스틱은 다음 그림과 같은 것입니다.
위의 메모리스틱은 필자가 사용하고 있는 것으로 32MB용량의 좀 오래된 것이긴 하지만 현재도 파일백업용으로 사용하고 있습니다. 주로 윈도우PC에서 문서작업을 하고 작업한 문서를 임시로 저장해 두는 용도로 사용하고 있습니다. 이렇게 사용하는 메모리스틱을 리눅스에서 사용하기 위하여 마운트하는 방법에 대해서 알아보겠습니다.
먼저 USB장치를 리눅스서버에 꼽아두십시요. 그리고 USB장치를 마운트할 마운트포인트를 mkdir로 다음과 같이 생성합니다.
[root@bible /]# mkdir /usb [root@bible /]# |
그리고 다음과 같이 modprobe명령어로 ide-scsi모듈을 로드합니다.
[root@bible /]# modprobe ide-scsi [root@bible /]# |
그런 다음 ide-scsi모듈이 로드가 되었는가를 확인하기 위하여 다음과 같이 lsmod를 실행해 보았습니다. 아래 결과를 보다시피 ide-scsi모듈이 로드되어 있다는 것을 알 수 있습니다.
[root@bible /]# lsmod Module Size Used by vfat 18176 1 fat 46240 1 vfat ide_scsi 20996 0 parport_pc 32324 1 lp 16748 0 parport 40776 2 parport_pc,lp autofs4 24196 0 sunrpc 151524 1 iptable_filter 7936 0 ip_tables 23168 1 iptable_filter dm_mod 65668 0 video 19972 0 button 10896 0 battery 13572 0 ac 9092 0 md5 8576 1 ipv6 271392 12 usb_storage 72000 1 uhci_hcd 37520 0 i2c_piix4 12816 0 i2c_core 26752 1 i2c_piix4 e100 40192 0 mii 9472 1 e100 floppy 63760 0 ext3 134408 4 jbd 65048 1 ext3 aic7xxx 177848 5 sd_mod 22272 7 scsi_mod 125952 4 ide_scsi,usb_storage,aic7xxx,sd_mod [root@bible ~]# |
그리고 리눅스에서 대부분 USB장치는 /dev/sda 또는 /dev/sdb 또는 /dev/sdc등의 창치명을 사용하는데 현재 리눅스서버에서 사용되고 있지 않은 장치명을 USB장치명으로 사용할 수 있습니다. 따라서 어떤 장치명에 할당되었는가를 확인하기 위하여 다음과 같이 "fdisk -l"을 실행해 봅니다.
[root@bible ~]# fdisk -l
Disk /dev/sda: 18.3 GB, 18373206016 bytes 128 heads, 32 sectors/track, 8761 cylinders Units = cylinders of 4096 * 512 = 2097152 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 64 131056 83 Linux /dev/sda2 65 2112 4194304 83 Linux /dev/sda3 2113 3160 2146304 83 Linux /dev/sda4 3161 8761 11470848 5 Extended /dev/sda5 3161 3416 524272 82 Linux swap /dev/sda6 3417 8761 10946544 83 Linux
Disk /dev/sdb: 18.3 GB, 18373206016 bytes 255 heads, 63 sectors/track, 2233 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/sdc: 32 MB, 32768000 bytes 2 heads, 32 sectors/track, 1000 cylinders Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System /dev/sdc1 ? 29215178 31850952 84344761 69 Unknown Partition 1 has different physical/logical beginnings (non-Linux?): phys=(68, 13, 10) logical=(29215177, 1, 6) Partition 1 has different physical/logical endings: phys=(288, 115, 43) logical=(31850951, 0, 23) Partition 1 does not end on cylinder boundary. /dev/sdc2 ? 26586242 55803140 934940732+ 73 Unknown Partition 2 has different physical/logical beginnings (non-Linux?): phys=(371, 114, 37) logical=(26586241, 1, 26) Partition 2 has different physical/logical endings: phys=(366, 32, 33) logical=(55803139, 1, 18) Partition 2 does not end on cylinder boundary. /dev/sdc3 ? 41 41 0 74 Unknown Partition 3 has different physical/logical beginnings (non-Linux?): phys=(371, 114, 37) logical=(40, 0, 14) Partition 3 has different physical/logical endings: phys=(372, 97, 50) logical=(40, 0, 13) Partition 3 does not end on cylinder boundary. /dev/sdc4 1 53673648 1717556736 0 Empty Partition 4 has different physical/logical beginnings (non-Linux?): phys=(0, 0, 0) logical=(0, 0, 1) Partition 4 has different physical/logical endings: phys=(0, 0, 0) logical=(53673647, 1, 32) Partition 4 does not end on cylinder boundary. [root@bible ~]# |
위의 "fdisk -l"의 실행결과를 잘 보시기 바랍니다. 위의 결과에서 /dev/sda는 현재 사용중인 하드디스크의 장치명이고 /dev/sdc라는 32MB용량의 장치가 하나 보입니다. 즉, 방금 리눅스서버에 꼽아둔 USB장치의 장치명이 /dev/sdc에 할당되었다는 것을 알 수 있습니다.
자, 그럼 이제 마운트를 하여 사용만 하면 됩니다. 따라서 /dev/sdc라는 장치를 처음에 생성해둔 /usb라는 마운트포인터(디렉토리)에 다음과 같이 마운트를 하였습니다. 아래에서 마운트를 하면서 파일시스템 타입으로 vfat을 사용한 것은 필자가 사용하던 USB장치는 윈도우PC에서 파일을 저장하기 위한용도로 사용하였으므로 윈도우 파일시스템 타입을 읽기 위하여 vfat이라고 지정한 것입니다. 하지만 꼭 vfat으로만 해야되는 것은 아니므로 여러분들의 상황에 맞는 파일시스템 타입을 지정하시면 됩니다. 이번 설명에 이어서 ext3타입으로 USB장치를 사용하는 예를 설명하고 있습니다. 참고하시기 바랍니다. 아마도 거의 대부분 필자와 같은 상황일 것이라 판단됩니다.
[root@bible /]# mount -t vfat /dev/sdc /usb [root@bible /]# |
자, 이제 마운트가 정상적으로 되었는가를 확인하기 위하여 다음과 같이 df와 mount를 각각 차례대로 실행해 보았습니다. 아래 보시는 바와 같이 /dev/sdc라는 장치가 /usb라는 마운트포인트에 vfat이라는 파일시스템 타입으로 마운트가 되어 있다는 것을 알 수 있습니다.
[root@bible usb]# mount /dev/sda6 on / type ext3 (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) usbfs on /proc/bus/usb type usbfs (rw) /dev/sda2 on /backup type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) none on /dev/shm type tmpfs (rw) /dev/sda3 on /home type ext3 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/sdc on /usb type vfat (rw) [root@bible usb]# [root@bible usb]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda6 11G 5.4G 4.5G 55% / /dev/sda2 4.0G 132M 3.7G 4% /backup /dev/sda1 124M 16M 102M 14% /boot none 125M 0 125M 0% /dev/shm /dev/sda3 2.1G 40M 1.9G 3% /home /dev/sdc 31M 24M 7.6M 76% /usb [root@bible usb]# |
이제 /usb디렉토리를 통하여 이 장치를 사용할 수있습니다. 다음과 같이 리눅스서버에 있는 /etc/passwd파일을 /usb(USB장치)로 복사해 보았습니다.
[root@bible ~]# cp /etc/passwd /usb [root@bible ~]# [root@bible ~]# ls -l /usb total 2 -rwxr-xr-x 1 root root 1980 Feb 8 07:51 passwd [root@bible ~]# |
그리고 이번에는 리눅스시스템에 있는 /etc/shadow파일과 /etc/group파일을 각각 USB메모리스틱으로 복사해 보았습니다. 그리고 복사가 되었는가를 확인하기 위하여 "ls -l /usb"를 실행하였습니다.
[root@bible ~]# cp /etc/shadow /usb [root@bible ~]# cp /etc/group /usb [root@bible ~]# [root@bible ~]# ls -l /usb total 5 -rwxr-xr-x 1 root root 740 Feb 8 07:52 group -rwxr-xr-x 1 root root 1980 Feb 8 07:51 passwd -rwxr-xr-x 1 root root 1345 Feb 8 07:52 shadow [root@bible ~]# |
이상과 같이 USB장치에 복사가 됩니다. 즉, 리눅스시스템에 있는 특정 파일을 USB메모리스틱에 복사하여 저장한 것입니다. 자, 이제 USB장치의 사용을 종료하였다면 다음과 같이 마운트해제를 시켜주십시요. 마운트된 USB장치의 마운트해제하는 방법은 일반 마운트해제방법과 동일합니다.
[root@bible ~]# umount /dev/sdc [root@bible ~]# |
그리고 다음과 같이 마운트해제가 정상적으로 되었는가를 확인하기 위하여 df를 실행해 보았습니다.
[root@bible ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda6 11G 5.4G 4.5G 55% / /dev/sda2 4.0G 132M 3.7G 4% /backup /dev/sda1 124M 16M 102M 14% /boot none 125M 0 125M 0% /dev/shm /dev/sda3 2.1G 40M 1.9G 3% /home [root@bible ~]# |
USB장치가 마운트 되었을 때 보였던 /dev/sdc장치의 마운트가 해제되어 보이지 않는다는 것을 알 수 있습니다. 이번 절에서 보신바와 같이 USB장치도 일반 장치들과 마찬가지로 리눅스에서 마운트하여 사용할 수 있음을 알 수 있었습니다.
USB장치를 ext3 타입으로 포맷하여 사용하기
앞에서는 USB장치를 vfat타입으로 마운트하여 사용하는 예를 보았습니다. 앞서 말씀드렸듯이 USB장치를 원하는 파일시스템 타입으로 사용할 수 있다고 하였습니다. 이번에는 USB장치를 ext3타입으로 포맷하여 사용하는 예를 보도록 하겠습니다. 방금 사용하였던 USB스틱메모리는 현재 vfat타입으로 포맷이 되어있기 때문에 이를 ext3타입으로 사용하려면 ext3타입에 맞도록 포맷을 해야합니다. 따라서 필자는 다음과 같이 mke2fs 실행시 -j옵션(저널링파일시스템 ext3를 의미함)을 사용하여 ext3타입으로 /dev/sdc장치(USB장치)를 포맷하였습니다.
[root@bible ~]# mke2fs -j /dev/sdc mke2fs 1.35 (28-Feb-2004) /dev/sdc is entire device, not just one partition! Proceed anyway? (y,n) y max_blocks 32768000, rsv_groups = 4000, rsv_gdb = 124 Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 8000 inodes, 32000 blocks 1600 blocks (5.00%) reserved for the super user First data block=1 Maximum filesystem blocks=32768000 4 block groups 8192 blocks per group, 8192 fragments per group 2000 inodes per group Superblock backups stored on blocks: 8193, 24577
Writing inode tables: done inode.i_blocks = 746, i_size = 67383296 Creating journal (1024 blocks): done Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. [root@bible ~]# |
이제 이 USB장치는 ext3타입의 파일시스템으로 포맷이 되었습니다. 그리고 마운트를 하기 위하여 다음과 같이 mount명령어를 실행하였습니다.
[root@bible ~]# mount -t ext3 /dev/sdc /usb [root@bible ~]# |
위와 같이 마운트를 할 때에 -t옵션다음에 ext3를 지정한 것은 /dev/sdc(USB)장치를 좀 전에 ext3파일시스템 타입으로 포맷하였기 때문입니다. 그리고 다음과 같이 mount명령어를 실행하여 마운트된 상황을 확인하였습니다.
[root@bible ~]# mount /dev/sda6 on / type ext3 (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) usbfs on /proc/bus/usb type usbfs (rw) /dev/sda2 on /backup type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) none on /dev/shm type tmpfs (rw) /dev/sda3 on /home type ext3 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/sdc on /usb type ext3 (rw) [root@bible ~]# [root@bible ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda6 11G 5.4G 4.5G 55% / /dev/sda2 4.0G 132M 3.7G 4% /backup /dev/sda1 124M 16M 102M 14% /boot none 125M 0 125M 0% /dev/shm /dev/sda3 2.1G 40M 1.9G 3% /home /dev/sdc 31M 1.4M 28M 5% /usb [root@bible ~]# |
위의 결과를 확인해 보시면 현재 /dev/sdc라는 USB장치는 ext3파일시스템 타입으로 /usb디렉토리에 마운트되어 있다는 것을 확인할 수 있습니다. 자, 이제 다음 예와 같이 cp명령어를 이용하여 현재 디렉토리에 있는 ifconfig_docu.txt파일을 /usb로 복사하였습니다.
[root@bible ~]# cp ifconfig_docu.txt /usb [root@bible ~]# [root@bible ~]# ls -l /usb total 39 -rw-r--r-- 1 root root 80 Feb 8 08:25 ifconfig_docu.txt drwx------ 2 root root 12288 Feb 8 08:23 lost+found [root@bible ~]# |
그리고 복사된 결과를 확인하였습니다. 자, 이렇게 우리는 USB장치를 ext3파일시스템타입으로 포맷하고 마운트하여 사용하는 예를 보았습니다. 이렇게 마운트한 USB장치의 마운트해제 또한 앞의 방법과 동일하게 "umount /usb"라고 하시면 됩니다.
관련자료
-
이전
-
다음