우분투에서 레트로파이(RetroPie) 롬(Rom)을 NFS 로 설정
개인적으로 사용하는 롬(rom) 들을 사용하고 있는 나스(NAS)에 저장하고, 저장파일도 같이 일괄적으로 저장하는 방법으로 사용하면 좋지 않을까 싶아서 조금 만져 봤다. 가급적 일관성을 유지하기 위해서는 개별적인 설정을 하지 않는 편이 좋다고 생각되기에 레트로파이의 저장경로, 롬경로 같은건 전혀 건드리지 않는다는 조건이 필요하다.
우선 네트워크 구조부터 생각해봐야 한다.
내 경우 나스가 원거리에 있고, 롬파일을 사용해야 할 컴퓨터가 각각 다른 네트워크에 있어서 내부 네트워크로 묶을려면 VPN 을 사용하는 방법이 최적이겠지만.. 이는 VPN 이라는 리소스를 또 준비해야하고, 로그인 때마다 VPN 접속이 필요하며, 네트워크 인터페이스가 와이파이나 유선으로 자주 변경되는 상황에서 VPN은 좋은 선택이 되지 못했다.
해서 다른 프로토콜이 필요한데, 삼바(SMB)나, 애플프로토콜, FTP, WEBDAV, NFS, iSCSI 등을 생각해봤다.
이 중 NFS가 가장 무난하다고 생각되어서 NFS로 작업을 시작했다. 잘 생각해보면 삼바는 외부포트가 막혀 있어 쓰기 불가능하고, 애플프로토콜은 호환성이 떨어지고, WEBDAV는 용량제한이 있으며, iSCSI는 접근이 엄청 어렵다.
NFS 서버
이 문서에서는 매우 자세한 서버설정은 제외한다.
대신 설정해주어야할 주요 포인트는 아래와 같다.
- 서버는 공인IP를 가지거나 공유기 아래에 있다면, NFS 포트를 열어주는 조치가 필요하다. NFS 포트는 서버 설정에 따라 포트번호가 수시로 바뀌는 경우도 있으니 DMZ 설정을 해주는것도 하나의 방법이다.
- NFS 서버에서 클라이언트의 ip를 지정해줘야하고, 그 설정에 클라이언트가 파일에 대한 root 권한을 가지거나, 파일을 변경할 수 있는 권한을 가지도록 하는 설정이 필요하다.
서버쪽의 폴더는 /volume1/emu/roms 라고 가정하고 /volume1/emu 폴더를 통째로 NFS로 접근 할 수 있다.
NFS 클라이언트
최종적으로는 /etc/fstab 를 이용해 부팅할 때 마운트 하는 형태로 만든다.
우선 해당하는 폴더가 NFS로 마운트가 가능한지 확인 해본다. 이해를 돕기 위해 클라이언트 롬 폴더는 /home/pi/RetroPie/roms/ 라고 지칭해둔다. snes 폴더를 먼저 마운트 해본다.
sudo mount IP주소(xxx.xxx.xxx.xxx):/volume1/emu/roms/snes /home/pi/RetroPie/roms/snes
성공적으로 마운트 되었다면 폴더를 하나 만들고 삭제해본다. 이게 안되면 서버쪽에서 쓰기를 할 수 있는 설정을 별도로 강구해야 한다.
이제 /etc/fstab 를 열고 제일 하단에 아래 내용을 넣는다.(아래는 예시를 든것이므로 각각의 사정에 따라 폴더 경로 및 IP주소는 수정 해주어야 한다.)
sudo nano /etc/fstab
xxx.xxx.xxx.xxx:/volume1/emu/roms/snes /home/pi/RetroPie/roms/snes nfs defaults 0 0
저장하고 재부팅을 하면 레트로파이에서 NFS의 롬을 사용할 수 있다.