![/etc 파일은 다른 파티션에 있습니다.](https://linux55.com/image/36466/%2Fetc%20%ED%8C%8C%EC%9D%BC%EC%9D%80%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%ED%8B%B0%EC%85%98%EC%97%90%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
내 설정에서는 일부 /etc
파일이 별도의 파티션에 있어야 합니다. 이를 위해 소프트 링크를 만들었습니다.
ls -li /etc/group
956 lrwxrwxrwx 1 root root 21 May 7 15:48 /etc/group -> /var/common/etc/group
ls -li /var/common/etc/group
3145744 -rw-r--r-- 1 root root 668 May 11 11:02 /var/common/etc/group
내 문제는 다음 파일을 사용하여 명령을 실행하려고 할 때입니다.
groupadd foo
groupadd: failure while writing changes to /etc/group
strace
보고서:
rename("/etc/group+", "/var/common/etc/group") = -1 EXDEV (Invalid cross-device link)
write(2, "groupadd: failure while writing "..., 54groupadd: failure while writing changes to /etc/group
) = 54
groupadd
내가 어떻게 출근 할 수 있는지에 대한 아이디어가 있나요 ?
답변1
/etc
따라서 여러 파티션에 파일을 분할하는 것은 좋지 않은 생각입니다.
무슨 일이 일어나고 있는지는 groupadd
유틸리티가 임시 파일을 생성한 다음 /etc/groups
한 번의 간단한 작업으로 실제 파일(또는 오히려 심볼릭 링크가 가리키는 파일)을 임시 파일로 바꾸는 것입니다 rename
.
문제는 rename()
동일한 파일 시스템에서만 작동한다는 것입니다. 그렇지 않으면 오류가 발생합니다.
여기서 발생할 수 있는 또 다른 잠재적인 문제는 작업을 수행할 때 rename
심볼릭 링크가 끊어지고 이제는 일반 파일이 된다는 것입니다.
/etc
또 다른 잠재적인 문제는 시스템이 추가 볼륨을 마운트하기 전에 올바르게 부팅하는 데 필요한 파일이 많다는 것입니다. 따라서 이러한 파일은 실제로 손실됩니다.
간단히 말해서, 아니요, 이 문제는 고칠 수 없습니다. 그리고 어쨌든 그렇게 해서는 안 됩니다.
답변2
/etc
루트 파일 시스템에 위치해야 합니다. 현명한 방법은 그렇게 유지하는 것입니다.
정말로 분할이 필요한 경우 /etc
통합 마운트를 사용하면 더 나은 결과를 얻을 수 있습니다. Linux가 하나의 구성 요소가 마운트 지점과 일치하는 Union 마운트를 지원하는지 여부는 모르겠지만, /etc
Union 마운트의 일부로 실제 루트 파일 시스템을 갖지 않는 것은 어려울 것입니다.
모든 것을 다른 파티션에 저장하려면 필요한 것( init에 필요한 것( 또는 init 시스템에서 사용하는 것), 최소 및 init 시스템에서 사용하는 것 등) 만 포함하는 최소 파티션을 /etc
만들 수 있습니다 . 부팅 초기에( ! 보다 훨씬 이전 ) 바인드는 에 마운트됩니다 . 그러나 이를 올바르게 수행하려면 많은 작업이 필요하며 아마도 원하는 것이 아닌 단일체가 생성될 수 있습니다. 이 설정은 일반적인 초기화 시스템을 사용하지 않고 루트 파일 시스템의 크기에 엄격한 제한이 있는 특정 임베디드 시스템에 가장 적합합니다./etc
/etc/fstab
/etc/inittab
/etc/init
/etc/rc*
/etc/passwd
/etc/group
/etc/rc.local
/var/common/etc
/etc
/var/common/etc
/etc
/var/common
여러 서버에서 공유되는 서버가 있는 경우 이 문제에 다르게 접근해야 합니다. 적절한 구성 관리 시스템을 사용하여 공유 파일을 /etc
.
/etc/passwd
와 같은 파일은 /etc/group
컴퓨터 간에 공유되어서는 안 됩니다. 로컬 사용자 및 그룹에 대해서만 이 파일을 사용하십시오. 컴퓨터 간에 공유되는 항목의 경우 NIS 또는 LDAP를 사용하십시오.