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가 안되고 파일을 다운받아 용량부족현상이
발생했습니다...
댓글 영역