여기에는 약간 이상한 설정이 있습니다. Android를 클라이언트로 사용하고 해당 커널은 NFSv4를 지원하지 않으며 서버 측의 /etc/exports 파일에는 NFSv4 스타일 항목이 없습니다.
LFS를 따르는 것 외에도 몇 가지 툴체인(gcc-4.8-armhf와 이러한 모든 도구가 휴대폰에 있고 필요할 때 설치할 수 있도록 저장소를 설정하는 apt-get이 있음)을 구축하려고 합니다. 하지만 저는 Perl과 같은 일부 프로그램은 파일 소유권을 설정할 수 없는 등의 이유로 구축되었습니다.
내 /etc/exports(서버):
/media/usb3/Android 192.168.1.209(rw,sync,subtree_check,no_root_squash)
A는 ls -l
다음과 같습니다(클라이언트 측).
drwxr-xr-x 6 4294967294 4294967294 4096 Jun 21 17:23 toolchains
-rw-r--r-- 1 4294967294 4294967294 0 Jun 25 18:51 rootu
A는 sudo chown root:root
다음과 같습니다(클라이언트)(rootu는 단지 테스트 파일입니다):
sudo chown root:root rootu
chown: changing ownership of `rootu': Invalid argument
내 설치 명령(클라이언트):
sudo mount -t nfs 192.168.1.210:/media/usb3/Android /home/edge-case/Android-Lab/ -o tcp
매뉴얼 페이지를 살펴보고 몇 가지 튜토리얼과 기타 질문을 읽었지만 모두 no_root_squash를 설정하라고 하는데 처음부터 해봤지만 작동하지 않습니다.
현재 LDAP나 Kerberos 또는 복잡한 인증 설정이 없습니다. 모든 것이 현재 기술(및 급여 0) 수준을 넘어섰습니다. 저는 집에 있기 때문에 모든 것에 대한 완전한 루트 액세스와 소유권을 가지고 있습니다. 전쟁 운전병 외에는 보안에 대해 크게 걱정하지 않습니다. 하지만 좋은 무선 비밀번호를 가지고 있으므로 은박 모자는 실제로 필요하지 않습니다.P
나는 이 작업을 했었지만 데비안이 약간의 변화를 줘서 더 이상 잘 작동하지 않는 것 같습니다. Windows 에이전트가 Linux 소스 코드를 엉망으로 만들었나요? ? J/g
이것은 정확히 무엇입니까? 내가 가지고 있는 파일로 디렉터리를 마운트하는 쉬운 방법을 어디에서 찾을 수 있습니까? 아니면 클라이언트나 서버 "사용자"에 존재하지 않는 이상한 "4294967294" 없이 루트(sudo chown을 통해)를 마운트하는 방법을 찾을 수 있습니까?
답변1
질문하자마자 바로 알아차리는 걸 싫어하는데,
나는 사용했다
/system/xbin/busybox mount -t nfs /path/to/share /path/to/mountpoint -o tcp,nolock
작동하고 이제 내 파일은 클라이언트의 내 사용자 "10001:10001"에 속하지만 busybox mount
해당 옵션 없이 Cyanogenmod를 사용하면 nolock
권한이 거부되지만 Debian 설치를 사용하고 해당 nolock
옵션을 사용하면 지저분한 솔루션입니다. 여전히 이상한 UID:GID 소유권이 있습니다.
따라서 현재 유일한 작업 방법은 Cyanogenmod를 사용하는 것입니다 busybox mount
. 데비안에서 nolock
사용하면 ID 문제가 해결되지 않으며 Cyangenmod와 함께 사용하지 않으면 거부됩니다.nolock
mount
nolock
내 생각에 올바른 해결책은 각 명령의 소스 코드를 확인하고 mount
Cyan과 유사한 패치를 사용하여 데비안용 명령을 다시 빌드하고 nolock
그것이 필요한 이유를 찾는 것입니다. 필요하지 않을 것 같습니다. 어쩌면 이것이 링커/라이브러리 문제일까요? ATM 외에는 모르겠습니다.