NFS 프로토콜 사용해보기

NFS 프로토콜 사용해보기는 보드 안에 루트파일시스템을 다 넣지 않고, PC에서 공유해서 쓰고 싶을 때 많이 쓴다. BeagleBone Black 같은 보드는 NFS 루트로 띄워서 개발하면 수정-테스트 사이클이 빠르다.

NFS는 네트워크 파일시스템이다. 말 그대로 서버 쪽 디렉토리를 보드가 마운트해서 쓰는 방식이다. 그래서 파일을 조금 고치고 바로 재부팅하거나 다시 마운트해서 볼 수 있다.

왜 이걸 쓰나

직접 rootfs를 SD 카드에 매번 굽는 건 귀찮다. NFS를 쓰면 그 과정을 줄일 수 있다. 그래서 BeagleBone 리눅스 빌드하기를 하는 사람이라면, 이 방식도 한 번은 써보는 게 좋다.

기본 흐름

  1. PC에서 export할 디렉토리를 만든다.
  2. 보드에서 mount할 경로를 준비한다.
  3. 서버와 보드의 IP를 맞춘다.
  4. mount를 걸고 파일이 보이는지 확인한다.
  5. 루트파일시스템으로 쓸지 여부를 결정한다.

이 과정은 Busybox 사용해보기와 같이 보면 더 편하다. BusyBox로 최소 환경을 만든 뒤 NFS로 붙이면 테스트가 쉽다.

실제 쓸 때 보는 포인트

NFS는 단순히 파일 하나 보이는 걸로 끝이 아니다. 권한 문제, export 옵션, 네트워크 상태를 같이 봐야 한다. 그리고 부팅 과정에서 kernel bootargs에 NFS 설정을 넣는 경우도 많다. 이 부분은 U-Boot 설정과도 연결된다.

그래서 U-boot 컴파일하기도 같이 보면 부팅 흐름이 정리된다.

주의할 점

서버는 보이는데 보드에서 안 보일 때는 대부분 IP, 방화벽, export 옵션 중 하나가 틀린다. 그리고 mount가 되어 있어도 root 권한이 필요한 파일은 따로 문제가 날 수 있다. NFS는 편한 대신 설정이 조금만 틀려도 바로 막힌다.

정리

NFS 프로토콜 사용해보기는 개발 중인 rootfs를 빠르게 바꾸고 싶을 때 아주 유용하다. BeagleBone 쪽 작업에서는 꽤 자주 쓰게 된다.

실행 체크

NFS는 설정이 맞으면 정말 편하다. 그런데 IP 하나만 틀려도 바로 안 붙어서, 처음엔 헷갈릴 수 있다. 그래서 export 설정, 보드 IP, 마운트 경로를 차례대로 보는 습관이 필요하다.

rootfs를 자주 바꾸는 개발 중이라면 NFS가 훨씬 낫다. 부팅 옵션까지 같이 넣어두면 테스트 속도가 빨라진다. U-Boot와 함께 보면 흐름이 더 자연스럽다.

  • export 먼저 확인
  • mount 경로 확인
  • bootargs도 같이 보기

NFS는 한 번 맞추면 개발 속도가 빨라진다. 하지만 잘못된 설정을 오래 붙들고 있으면 왜 안 되는지 찾기 힘들다. 그래서 export와 mount를 각각 따로 확인하는 습관이 중요하다.

댓글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.