macOS 에서 nfs(Linux)를 연결하려다가..

오랜만에(?) 맥을 다시 꾸며보고 있는 중. 역시나 예전에 삽질한 내용들이 고스란히 남아있어서 큰 불편은 없다.
그럼에도 불구하고, nfs 문제는 여전히 있고, 아마도 그 중심에는 UTF8, nfc/nfd 가 큰 비중을 차지하고 있는 듯 하다.

이와 관련하여 새로운 내용이 있을까하여 구글 검색을 해봤는데..
한국어로 된 문서들이 있어 열어봤더니, 이런.. 어째 어딘가 좀 익숙한 문구??

알고보니 내가 쓴 글을 그대로 올려놓은게 아닌가..!!! 출처를 밝히긴 했으나, 난 저렇게 남의 글을 그대로 똑같이 올리는 행위를 정말 경멸해 마지 않는다. 어쨌든, nfs 사용자는 그 때나 지금이나 별로 늘어나지 않았음이 또 다시 증명된 셈이다.


nfs 관련하여, 예전 상황과 별로 달라진 게 없다. 여전히, 디렉토리 이름에 한글이 들어가 있으면 제대로 인식을 하지 못한다.
예를 들면 이런 식. 아래는 Autofs 설정 내용이다.

# 성공
cctv-1            -fstype=nfs,rw,nfc,soft,locallocks srv:/storage/cctv

# 실패
"강좌"             -fstype=nfs,soft,nfc,ro,locallocks srv:/storage/nfs/강좌
cctv-2          -fstype=nfs,soft,nfc,ro,locallocks ctrk:"/카메라 녹화"

리눅스(클라이언트)에선 모두 문제없는 설정인데, macOS 에선 되지 않는다. 앞 쪽 한글(“강좌”)보다는 뒷쪽에 있는 서버 디렉토리명(srv:/storage/for_nfs/강좌)이 문제다. 일단 마운트가 되는 듯 하긴 하고, mac 에서 디렉토리명이 보이긴 하지만, 들어가려 하면 오류가 발생한다.

$ ll /nfs/강좌
ls: cannot open directory '/nfs/강좌': Invalid argument

뭘 어떻게 고쳐야할 지 알 수가 없네.


궁하면 통하는 법!
원래 이 글에서 이렇게 해결법(?)까지 고민할 생각은 없었는데.. 그저 내 글 밖엔 다른 해결책이 안보인다는 푸념을 하려고 했었는데, 하다보니 또 다시 편법, 우회책, 돌아가기 등등이 튀어나와 버렸다.

문제는 한글로 된 디렉토리다. 이걸 macOS 의 nfs 가 제대로 인식하지 못하면서 결국 디렉토리 마운트에 실패해버렸다. 이를 해결하려면 nfs 디렉토리명을 바꿔줘야 한다. 허나..? 그걸 바꿈으로써 이어질 연쇄효과는…???

그리하여!
링크를 만들어봤다.
방법은 간단하다. 한국어로 된 디렉토리를, 영어로 된 디렉토리로 링크를 걸어준다. 물론 이건 서버에서.

sudo ln -s 강좌 Lecture

그리고, macOS nfs(autofs) 설정에선, ‘강좌’를 마운트하는게 아니라 Lecture 를 마운트하게끔 설정한다.

# 실패
"강좌"             -fstype=nfs,soft,nfc,ro,locallocks srv:/storage/for_nfs/강좌

# 성공
"강좌"             -fstype=nfs,soft,nfc,ro,locallocks srv:/storage/for_nfs/Lecture

이렇게 했더니!! 성공!
디렉토리명을 바꾸는 수고와 모험을 할 필요가 없어졌다.
또, 서버의 /etc/exports 에서 Lecture 를 Export 하겠다고 명시하지 않았음에도 아무런 문제없이 잘 연결이 됐다. 즉, 원래 설정인 ‘강좌’ 디렉토리만 export 되어 있음에도, macOS 클라이언트가 이 디렉토리의 심볼릭링크인 Lecture 에 진입하려 해도 오류가 발생하지 않았다. (이거 엄밀히 보면 버그 또는 Back Door 가 아닐까??)


복잡한 문제는 전문가(?)들에게 맡기고, 난 그저 또 한번 꽃삽질 결과에 만족할 뿐!

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.