본문 바로가기
Hardware/Home Assistant(라즈베리파이)

QUAD Sata HAT, SSD 자동 마운트

by lovey25 2021. 1. 1.
반응형

2021-03-18 update log: fstab 관련 내용 수정


라즈베리파이에서 외장 SSD를 사용하는 경우 SSD 드라이브를 부팅 시 자동으로 마운트 시키는 방법입니다.

먼저 라즈베리파이 SSD를 연결했다면 SSD 드라이브를 잘 인식하고 있는지 확인합니다. "sudo lsblk"명령어를 사용합니다.

"sda"라는 디스크로 인식이 되어 있습니다. 그런데 마운트는 안되어 있네요. 그리고 다른 용도로 사용하던 SSD라서 파티션이 여러 개 나누어져 있는데 먼저 포맷부터 해주는 게 좋겠네요.

"sudo mkfs.ext4 /dev/sda" 명령으로 ssd를 ex4 파일 시스템을 포맷합니다.

잠시 기다리면 순식간에 끝납니다. 다시 확인해보면 아래와 같이 파티션 없이 정리가 된 것을 볼 수 있습니다.

이제 라즈베리파이에서 SSD가 자동으로 마운트 될 수 있도록 해 주겠습니다. 먼저 SSD가 마운트 될 폴더를 만들어 줍니다. 경로는 "/home/pi/externalSSD/"입니다.

다음으로, 연결된 SSD의 UUID를 확인합니다. "sudo blkid"명령을 사용합니다.

sda장치의 UUID가 확인되죠? 복사해 둡니다. (/dev/sda: UUID="f7ebfba9-8d86-4f76-9b5d-3700fbc0ecc8" TYPE="ext4") UUID를 사용하지 않고 "/dev/sda"를 사용할 수도 있는데 나중에 SSD가 많아지는 걸 대비해서 UUID를 사용합니다.

외장 드라이브를 자동 마운트를 시키는 방법 중 2가지 방법 알아보겠습니다.

방법 1. "/etc/fstab"

편집기로 "/etc/fstab" 파일을 열어서 마지막 줄에 마운트 정보를 입력하고 저장합니다.

UUID=f7ebfba9-XXXX-...0ecc8 /folder/path/to/mount fstype defaults,auto,users,rw,nofail 0 0

위에서 찾은 UUID의 디바이스를 "/home/externalSSD" 경로로 마운트하고 마운트 될 파티션의 파일 시스템은 ext4라는 뜻입니다. 그리고 뒤에 있는 옵션은 라즈베리파이 OS 공홈을 참고해서 넣어준 건데 정확히 내용을 파악하지는 못하고 있습니다. 옵션별 기능은 좀 찾아봤더니 다음과 같은 의미가 있다고 하네요.

auto / noauto: 부팅 시 자동 mount 여부
exec / noexec: 바이너리 실행 여부
ro / rw: read-only / read-write
nouser / user: user의 mount 권한 여부
atime / noatime / relatime: access time 기록 여부
suid / nosuid: suid와 sgid 비트 동작 허용 여부
dev / nodev: character나 block special device를 interpret허용 여부
defaults: 기본값(rw, suid, dev, exec, auto, nouser, async) 사용

그리고 맨 마지막에 있는 0 0은 dump, fsck 실행을 하지 않는 설정이라고 합니다. 이렇게 하면 부팅 시 자동으로 마운트를 시도하는데 만약 부팅시 해당 드라이브가 연결되어 있지 않다면 대기시간이 추가되어 부팅에 90초가량이 더 소요된다고 하니 이 부분은 참고해야겠습니다.

방법 2. "/etc/rc.local"

"/etc/rc.local"파일의 아랫부분에 다음과 같이 마운트 명령을 추가해 줍니다. 

sleep 10s
mount -t ext4 UUID="f7ebfba9-8d86-4f76-9b5d-3700fbc0ecc8" /home/pi/externalSSD &

마운트 전 10 초 대기시간을 준 이유는 부팅 즉시 마운트를 했을 때 장치를 찾지 못하는 경우가 있어서 대기시간을 추가했습니다. 나중에는 장치 인식여부를 확인하는 스크립트로 변경하는 게 좋을 것 같습니다.

최종적인 파일내용은 다음과 같습니다.

이제 리부팅해서 에 들어가서 잘 되었는지 확인해보면 안 될 가능성이 높습니다. 왜냐하면 "rc.local"파일은 그 자체가 비활성화 상태이거든요. 그래서 따로 활성화를 시켜주어야 합니다.

활성화는 아래 링크를 참고해 주세요.

 

/etc/rc.local파일 활성화

"/etc/rc.local"파일은 시스템이 부팅하고나서 맨 마지막에 실행되는 스크립트입니다. 그래서 사용자가 부팅시 자동화 하고싶은 어떤 동작이 있다면 여기에 넣어서 실행시킬 수 있는거죠. 파일 내

kwonkyo.tistory.com

이렇게 까지 모든 과정을 마치고 리부팅을 해보면 마운팅이 자동으로 잘 되는 걸 볼 수 있습니다.

 

끝!

반응형

댓글