본문 바로가기

작업일지/Linux

UMS(Usb Mass Storage) 자동 마운트 방법

USB외장 HDD를 물려놓고 부팅 할 경우 동일한 디바이스로 올라오지 않는다.
예를들어 160G, 80G의 HDD가 각각 /home2, /home3로 마운트 되어야 하는데 항상 동일한 장치명으로 올라온다는 보장이 없어 fstab에서 잡아 쓸수 없다.
아래는 장치명대신 UUID를 이용해 fstab를 설정하여 원하는 장치가 원하는곳에 마운트 되도록 하는 방법이다.


fdisk -l을 이용해 어떤 HDD가 /dev/sdb, /dev/sdc인지 알아낸다.
다음으로 UUID를 알아낸다.(vol_id가 사용되지 않는다는 이야기도 있고 제대로 동작이 안됨으로 blkid를 이용해서 알아낸다)
# blkid
/dev/sda1: UUID="a50d8d66-b46a-4464-b09f-c4a9d0d9d394" TYPE="ext2"
/dev/sda2: UUID="6w5Hqt-ERrE-RMLm-60wT-QBQJ-XYyN-o6uAzm" TYPE="lvm2pv"
/dev/dm-0: UUID="c39a0095-7a92-4ca2-a988-f4590a794dfd" TYPE="ext3"
/dev/dm-1: UUID="b21b71e0-bb45-436e-b488-cbd7ebb83809" TYPE="ext3"
/dev/dm-2: UUID="536e8ed7-dccb-419e-88ed-a97be8dac836" TYPE="ext3"
/dev/dm-3: TYPE="swap"
/dev/dm-4: UUID="14b772bc-992d-49f4-8150-3cc32ec8db2b" TYPE="ext3"
/dev/dm-5: UUID="ac04df9d-3cfe-445e-848b-79d1719fe67c" TYPE="ext3"
/dev/sdb: UUID="b700e3bd-fc0d-4a67-b7d3-a313e2128c99" TYPE="ext3"
/dev/sdc: UUID="a7fbdd2e-b95a-4907-b943-c2b565f16d9c" TYPE="ext3"


fstab를 수정한다.
# vi /etc/fstab 
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/mapper/nas-root /               ext3    errors=remount-ro 0       1
/dev/sda1       /boot           ext2    defaults        0       2
/dev/mapper/nas-home /home           ext3    defaults        0       2
/dev/mapper/nas-tmp /tmp            ext3    defaults        0       2
/dev/mapper/nas-usr /usr            ext3    defaults        0       2
/dev/mapper/nas-var /var            ext3    defaults        0       2
/dev/mapper/nas-swap_1 none            swap    sw              0       0
UUID=b700e3bd-fc0d-4a67-b7d3-a313e2128c99       /home2  ext3    defaults        0       0
UUID=a7fbdd2e-b95a-4907-b943-c2b565f16d9c       /home3  ext3    defaults        0       0

여기까지 하면 부팅시 /home2와 /home3로 마운트가 된다.
/home2는 ftp,SVN으로 사용하고 있고 /home3는 다운로드용으로 사용되고 있다.
init.d에 스크립트를 작성. 이용하여 부팅시 각기 적절한 디렉토리에 마운트 해준다.
# vi /etc/init.d/bindums
#!/bin/sh
### BEGIN INIT INFO
# Provides:          bindums
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     S
# Default-Stop:
# Short-Description:
### END INIT INFO


case "$1" in
        start)
          echo "Start bind ums"
          mount --bind /home2/mongin/ /home/mongin/home2
          mount --bind /home2/jeremy/ /home/jeremy/home2
          mount --bind /home3/mongin/ /home/mongin/home3
          ;;
        stop)
          echo "Stopping bind ums"
          umount /home2/mongin
          umount /home2/jeremy
          umount /home3/mongin
          ;;
        *)
        echo "Useage: /etc/init.d/bindums {start|stop}"
        exit 1
        ;;
esac

exit 0

실행 속성으로 변경
 # chmod 755 /etc/init.d/bindums

update-rc.d로 스크립트 추가 
 # update-rc.d -f bindums defaults



이것이 제대로 동작 하려면 부팅전 HDD가 USB에 연결이 된 상태여야 한다.