Raspberry Pi

Raspberry Pi 3 하드디스크 마운트 및 파일 서버 구축

LimeLee 2022. 5. 27. 19:16

로컬이나 용량이 작은 여러 usb에 분산해서 저장해놓으니까 막상 원하는 파일이 어디에 있는지 몰라서 이 usb, 저 usb 뒤적거리다 결국은 못찾는 경우가 여럿있었다.
그래서 어차피 라즈베리파이는 웹 서버 때문에 24시간 구동도 하겠다. 파일서버 하나 구축하면 접근성도 쉽고 어떤 파일을 찾고 있는지도 용이할 것 같다.

라즈베리파이 3 에서 부팅을 위한 sd card는 아무래도 용량이 기대한 만큼 크지가 않기에 하드디스크를 하나 구매한 뒤 마운트 해서 사용해보자.



라즈베리파이 3는 이동을 자주하는게 아니므로 외장용 하드디스크 말고 그냥 일반 하드디스크를 구매했다.

용량은 4TB.
SATA-USB 변환 케이블로 하드디스크에 전력 공급 및 라즈베리 파이에 연결 시켜줬다.

 

 

$ sudo lsblk

lsblk를 이용하여 sda라는 명으로 디스크가 추가된 것이 보인다.

 

$ sudo mkfs.ext4 /dev/sda

하드디스크를 ext4로 포맷시켜준다. 

이 때 UUID도 같이 출력된다. 자동마운트를 설정해줄거라면 기억해두자.

 

마운트를 할 디렉터리를 생성해준다. /home/storage라는 디렉터리를 생성해주었다.

 

 

$ mount /dev/sda /home/storage/

 

mount 명령어를 통해 /home/storage에 하드디스크가 정상적으로 마운트 된 것을 확인 할 수 있다.

 

ln -s [마운트 된 디렉터리 경로] private

웹 서버에 마운트 된 디렉터리의 경로로 심볼릭 링크를 생성해준다.
이전에 생성해둔 심볼릭링크에 경로를 덮어씌워서 -Tf 옵션을 사용했고 새로 만드는거라면 -s 옵션만 사용하면 된다.


웹 서버에서 심볼릭 링크를 설정한 경로에 접근하면 하드디스크에 업로드한 파일들을 열람할 수 있다.

 

/files/ 와 하위디렉터리 내부에 존재하는 파일이 보이는 이유는 Options +Indexes +FollowSymLinks 옵션을 설정해두었기 때문이다.

AllowOverride all은 HTTP 인증을 위해 추가한 것이고 인증을 할 것이 아니라면 삭제해도 된다.

 

 

라즈베리파이가 리부트되면 재마운트를 해주어야하는데 자동으로 마운트 되게하는 옵션을 설정한다. 

UUID는 하드디스크 포맷 때 확인한 UUID를 입력해주면 된다.

$ sudo vi /etc/fstab

UUID='[하드디스크의 UUID]' /home/storage ext4 defaults,noatime 0 0


이제 리부트되도 하드디스크가 연결되어있다면 자동으로 연결된다.

$ sudo blkid


하드디스크 포맷할 때 UUID 확인을 못했다면 blkid 를 통해 확인 가능하다.