관련된 내용에 대한 내 추측은 다음과 같습니다.

관련된 내용에 대한 내 추측은 다음과 같습니다.

에서 man mount_unionfs:

If a file exists in the upper layer then there is no way to access a file
with the same name in the lower layer.  If  necessary, a combination of
loopback and union mounts can be made which will still allow the lower
files to be accessed by a different pathname.

어떻게 해야 하나요? .ISO 및 기타 블록 이미지를 마운트하는 것 이외의 파일 시스템 루프백에 대한 참조를 찾을 수 없습니다. 이는 분명히 올바른 의미가 아니며 nullfs는 전달 시 해당 용어만 언급하지만 특정 정보는 없습니다.

관련된 내용에 대한 내 추측은 다음과 같습니다.

내 생각에는 "하위" 레이어를 먼저 마운트한 다음(어쩌면 두 개의 다른 마운트 지점에 두 번?) 해당 마운트 지점(또는 두 마운트 지점 중 하나)에 Unionfs를 두 번째 마운트 지점에 마운트하는 것이 포함될 수 있습니다. 동일한 파일 시스템이 첫 번째 마운트 지점을 통해 수정되지 않은 상태로 노출되고, 두 번째 마운트 지점을 통해 연합된 하위 레이어로도 노출된다는 아이디어입니다. 이건 팁을 기반으로 한 거예요이 페이지.

@arrowd의 목표에 대한 응답을 명확히 하기 위해 업데이트합니다.

매뉴얼 페이지에는 루프백을 통해 하위 수준 파일(즉, 전체 하위 수준 파일 집합)에 액세스할 수 있다고 명시되어 있으며 이를 통해 하위 수준 파일에 Unionfs의 하위 수준 계층으로 병렬(A)로 액세스할 수 있습니다. 및 (B) 다른 경로를 통해 "루프백" 마운트 지점/경로 이름이 파일 시스템 자체 역할을 합니다. 나는 루프백 레이어의 개념을 이해하므로 이것이 의미가 있으며 페이지에는 man가능하다고 나와 있지만 이 작업을 수행할 수 있는 명령을 찾을 수 없습니다.

더 구체적으로 말하면, 일반적인 방식으로 Unionfs로 파일 시스템을 오버레이하고 싶지만, 특정 작업이 전체 "하위 계층" "낮음"을 읽고/쓰고/검색할 수 있도록 하위 계층을 별도로 노출하는 별도의 마운트 지점도 원합니다. 파일 시스템곧장게다가,아니요결합된 "오버레이 fs"로 덮음/가림/덮임. 따라서 이는 단지 하나의 파일이 아닙니다. Unionfs 레이어 또는 파일별 레이어를 통해서가 아니라 루프백 및 별도의 마운트 지점을 통해 액세스할 수 있는 전체 "하위" 레이어가 필요합니다. 이는 아마도 처음에는 루프백을 통해, 그 다음에는 Unionfs를 통해 두 번 설치해야 한다는 의미일 것입니다. 원래는 Unionfs 레이어를 설정/설치했지만 어떻게 해야 할지 모르겠습니다.

목적은 일부 cron 작업(때로는 내 작업도 포함)이 기본 레이어 내의 파일을 업데이트해야 한다는 것입니다(unionfs 오버레이를 제거/방해하지 않고).아니요단순히 Unionfs를 사용하는 것처럼 "상위" 레이어에서 복사하고 업데이트하는 것이 아닙니다. 따라서 두 개의 마운트 지점을 사용해야 합니다. 하나는 Unionfs로 덮인 하위 레이어를 노출하고 다른 하나는 하위 레이어만 노출합니다.아니요Unionfs는 오버레이되어 서로 다른 작업에서 두 ​​가지를 동시에 사용할 수 있습니다.

위에 추가한 댓글도 참조하세요 - 나생각하다하위 파일 시스템을 두 번(직접 한 번, 연합으로 한 번) 마운트하거나, 한 번 마운트하고 해당 마운트 지점에서 두 번째로(연합으로) 다시 마운트하는 작업이 포함될 수 있습니다. 그러나 나는 그것이 얼마나 안전한지 확신하지 못합니다.

이를 통해 질문의 목적이 더 명확해지기를 바랍니다.

답변1

드디어 해결책을 찾았습니다! 나는 다른 이름을 가진 블록 장치에서 mdconfig -f라는 많은 트릭을 시도했지만 그 중 아무 것도 작동하지 않았습니다. 그런데 나중에 알게 됐어요!

당신이 해야 할 일은 통합 마운트 지점이 될 디렉터리의 nullfs 마운트를 만드는 것입니다.앞으로당신은 동맹에 가입합니다. 사실 이것은 노조 문제와 전혀 관련이 없습니다.

예:

# echo "Hello World!" >/mnt/hello.txt
# ls /mnt/hello.txt
hello.txt
# cat /mnt/hello.txt
Hello World!
# mount -t nullfs /mnt /mnt2
# ls /mnt2/hello.txt
hello.txt
# cat /mnt/hello.txt
Hello World!
# mount /dev/ad0s1a /mnt
# ls /mnt/hello.txt
ls: hell: No such file or directory
# ls /mnt2/hello.txt
hello.txt
# cat /mnt2/hello.txt
Hello World!
# echo "Hello Universe!" >/mnt2/hello.txt
# umount /mnt
# ls /mnt/hello.txt
hello.txt
# cat /mnt/hello.txt
Hello Universe!

마운트로 인해 가려진 모든 것에 계속 접근하는 방법을 알아보세요. 이제 이것을 페더레이션과 결합하면 /mnt2의 nullf를 /mnt에 세 번째 계층으로 마운트하는 3티어 페더레이션과 같은 모든 종류의 작업을 수행할 수 있습니다. 이는 이제 원시 /mnt를 작성할 수 있음을 의미합니다. 그러나 이는 또한 디렉토리에 작성한 모든 새 파일이 이제 마운트한 장치가 아닌 /mnt 마운트 지점을 사용하여 원래 파일 시스템에 배치된다는 의미이기도 합니다.

문제가 해결되었습니다! 정말 기뻐요!

답변2

내 생각엔 이 문단 이 그것에 관한 것 같아요 nullfs.

foomount 로 덮어쓴 파일이 있는 경우 먼저 다른 파일(예 : )에 덮어쓴 다음 을 실행할 unionfs수 있습니다 . 그러면 해당 이름으로 파일에 액세스 할 수 있습니다 .mount_nullfsbarmount_unionfsfoobar

관련 정보