본문 바로가기
Research/Linux

hdd 나 usb flash memory 가 마운트된 경로 알아내기

by sunnyan 2009. 6. 12.
728x90
cat /proc/mounts | grep /dev/sdb | awk '{print $2}' | tr -d 'n' | sed 's/\040/ /'

먼저 cat /proc/mounts 명령을 실행하면 아래와 같이 마운트된 정보가 쭉 나열된다...

[root@localhost hdperf]# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / ext3 rw,relatime,errors=continue,user_xattr,acl,data=ordered 0 0
/dev /dev tmpfs rw,relatime,mode=755 0 0
/proc /proc proc rw,relatime 0 0
/sys /sys sysfs rw,relatime 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620 0 0
/dev/sda3 /opt ext3 rw,relatime,errors=continue,user_xattr,acl,data=ordered 0 0
/dev/sda2 /root ext3 rw,relatime,errors=continue,user_xattr,acl,data=ordered 0 0
/dev/sda1 /boot ext3 rw,relatime,errors=continue,user_xattr,acl,data=ordered 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
ertos:/root/nfshare /root/ertos nfs rw,relatime,vers=3,rsize=262144,wsize=262144,namlen=255,hard,nointr,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=210.108.165.53,mountvers=3,mountproto=tcp,addr=210.108.165.53 0 0
nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
gvfs-fuse-daemon /root/.gvfs fuse.gvfs-fuse-daemon rw,nosuid,nodev,relatime,user_id=0,group_id=0 0 0
none /proc/fs/vmblock/mountPoint vmblock rw,relatime 0 0
/dev/sdc1 /media/stobee fuseblk rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0
/dev/sdb1 /media/disk vfat rw,nosuid,nodev,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,utf8 0 0

원하는 디바이스가 /dev/sdb 라면 /dev/sdb 에 관련된 마운트 정보가 얻기 위해 grep /dev/sdb1 을 실행한다.

[root@localhost hdperf]# cat /proc/mounts | grep /dev/sdb
/dev/sdb1 /media/disk vfat rw,nosuid,nodev,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,utf8 0 0

원하는 것은 /media/disk 이기 때문에 awk '{print $2}' 을 이용해 /media/disk를 얻어온다.

[root@localhost hdperf]# cat /proc/mounts | grep /dev/sdb | awk '{print $2}'
/media/disk

위와 같이 해서 문자열을 얻어오면 눈에 보이지는 않지만 /media/disk 문자열 끝에 개행문자 'n' 가 붙는다. 개행문자를 없애기 위해
tr -d 'n' 을 사용한다.

[root@localhost hdperf]# cat /proc/mounts | grep /dev/sdb | awk '{print $2}' | tr -d 'n'
/media/disk[root@localhost hdperf]#

또한 디렉토리에 공백문자가 들어가는 경우가 있는 데, 이럴 경우 공백문자는 ?40으로 표시된다. 따라서, ?40을 공백으로 바꿔주기
위해서 sed 's/\040/ /' 명령을 사용한다.

[root@localhost hdperf]#  cat /proc/mounts | grep /dev/sdb | awk '{print $2}' | tr -d 'n' | sed 's/\040/ /'
/media/disk[root@localhost hdperf]#

728x90