상세 컨텐츠

본문 제목

025. Raspberry Pi 라즈베리 파이 - USB 외장하드 mount 마운트하기 (rc.local)

raspberrypi/raspbian

by ZelKun 2016. 8. 29. 00:00

본문

반응형

   

fstab 을 사용하면 설정 한줄로 끝나서 편리하지만 외장하드가 연결되 있지 않을 경우

부팅 시 에러가 난건가 root계정으로 로그인해야하는 문제가 발생하더라구요

(설정을 잘못했나..)

   

그래서 bash 쉘스크립트를 이용해서 외장하드가 연결되 있을경우

자동으로 mount 있도록 구성했습니다

   

설정을 건드리기 때문에 sudo 혹은 root 로 작업해야 합니다

   

외장하드를 연결한 후에 blkid 명령어를 입력합니다

pi@rasp2-retropie:~ $ blkid

/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="C8AF-020C" TYPE="vfat" PARTUUID="9aa70067-01"

/dev/mmcblk0p2: LABEL="retropie" UUID="bcb87907-d8d8-43d8-aaf6-8d288dc11f8d" TYPE="ext4" PARTUUID="9aa70067-02"

/dev/sda1: LABEL="rasp2-Media" UUID="4E91-332E" TYPE="exfat" PTTYPE="dos" PARTUUID="36ee6590-01"

/dev로 시작하는게 3개가 보이는데 이중 /dev/sda1 으로 보이는게 외장하드입니다

LABEL : 외장하드 표시 이름

UUID : UUID로 포멧하면 변경되는듯 합니다

TYPE : 외장하드 포멧 형식

   

외장하드를 /home/pi/exHDD 에 mount 할거에요

   

rc.local 수정

/etc/rc.local 에 스크립트를 직접 넣으면 부팅할때 시작됩니다

if blkid | grep rasp2-Media > /dev/null then;

echo "mount /dev/sda1 /home/pi/exHDD"

mount /dev/sda1 /home/pi/exHDD

else

echo "not connect /dev/sda1"

fi

간단하게 만든 스크립트라 참고만 하셔도 됩니다

외장하드 LABLE 같은 게 있으면 /home/pi/exHDD mount 되는 스크립트입니다

굵은 글씨 부분을 UUID 변경해도 동일하게 작동 거에요

   

mount 경로만 해도 고정경로라서 범용성이 떨어지지만

어짜피 외장하드 연결 USB슬롯을 변경안하면 되니까 mount위치만 수정하면 되겠네요

쉘스크립트공부를 더 해야겠네요 전부 변수 처리할 수 있을것 같은데 실력부족 ㅠ

   

수정을 완료하면 재부팅을 해서

sudo mount를 진행합니다

pi@rasp2-retropie:~ $ sudo mount

/dev/sda1 on /home/pi/exHDD type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)

pi@rasp2-retropie:~ $ 

   

혹시 아래와 같이 나온다면 mount할 디렉토리가 비어있지 않아서이니

FUSE exfat 0.9.7

fuse: mountpoint is not empty

fuse: if you are sure this is safe, use the 'nonempty' mount option

디렉터리 내부의 파일을 모두 삭제해 줘야 합니다

ex) rm -rf /home/pi/exHDD/* 정도면 되겠네요



---- 내용추가 ----

#외장하드 설정

if blkid | grep 4E91-332E > /dev/null; then

    MPATH="$(blkid | grep '4E91-332E' | cut -d: -f1 | awk '{ print $1}')"

    echo "mount $MPATH /home/exHDD"

    mount $MPATH /home/exHDD

else

    echo "not extra hdd"

fi

외장하드 USB 슬롯을 변경하지 않았는데 경로가 변경되는 문제가 발생...

UUID 확인후 경로를 변수로 읽어와서 mount 하도록 변경


---- 16.10.23 내용추가 ----

UUID mount경로를 모두 변수로 변경

#외장하드 설정

UPATH="/home/exHDD" #mount 위치변수처리

UUID="4E91-332E"    #외장하드 UUID

if blkid | grep $UUID > /dev/null; then

    MPATH="$(blkid | grep $UUID | cut -d: -f1 | awk '{ print $1}')"

    echo "mount $MPATH $UPATH"

    mount $MPATH $UPATH

else

    echo "not extra hdd"

fi

주의 할점은 MPATH   UUID 전에는 ' 감싸줬는데

변수로 변경시 문자열로 인식하기 때문에 ' 제거해야 합니다

테스트할때는 문제없었는데 결국 mount 안되고 파일을 다운받아 용량부족현상이

발생했습니다...



반응형

관련글 더보기

댓글 영역