2013-12-16 3 views
6

이것은 간단한 질문이지만 몇 가지 조사를 해본 결과 어떤 답도 찾을 수 없습니다 ... xattr을 통해 확장 된 속성을 정의 할 때 해당 속성이 파일의 일부로 저장되는지 '내용 (큰소리로, 결국에는?), 또는 inode가 이것들을 저장하는 특별한 지역을 가지고 있다면?확장 속성은 어디에 저장되어 있습니까?

그리고 덧붙여서, 나는 ext4에서 "각 확장 된 속성은 파일 시스템 블록 (예 : 4 KiB)으로 제한됩니다"라고 읽었습니다. 파일 시스템의 각 파일에 7 개의 확장 된 속성을 저장하고 싶다면이 정도면 충분하지는 않습니다. 이게 현실적입니까?

내 마지막 질문은 파일이 다른 파일 시스템을 가진 다른 시스템으로 이동하면이 속성에 어떤 일이 일어나는가하는 점에서 확장 속성이 이식성이 있는지 여부입니다.

+0

아직 투표하지 않았으므로 귀하의 질문에 완전히 답변하지 않았다고 가정합니다. 조금 더 질문을 명확히 할 수 있습니까? – aleatha

답변

5

inode 사양을 보면 확장 속성을 수용하기 위해 inode의 끝에 약간의 공간이 있음을 알 수 있습니다. 해당 영역을 오버플로하면 ext4는 추가 확장 속성을 위해 다른 블록 (기본적으로 리소스 포크와 같은)을 할당 할 수 있습니다. 4KB 제한은 파일 당 속성마다 있으므로 속성이 4KB보다 큰 BLOB가 아닌 한 파일 당 7 개의 확장 된 속성을 저장할 수 있습니다. 그러나 inode가 끝날 때 공간을 오버런하면 데이터 대신 메타 데이터에 블록을 할당하여 파일 시스템의 사용 가능한 크기를 줄입니다.

출처 : https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Extended_Attributes

는 이동성에 대한 귀하의 질문에 대답하기 위해, 확장 된 특성도 단일 파일 시스템 내에서 기본적으로 복사되지 및 파일 시스템간에 이식 아니다.

자세한 내용은 https://unix.stackexchange.com/questions/44253/how-to-clone-copy-all-file-directory-attributes-onto-different-file-directory을 참조하십시오. Rysnc는 확장 된 속성 복사를 위해 많은 일을 할 수 있지만 대상 파일 시스템이 xattrs를 지원하지 않으면 운이 없게됩니다.

+0

[이식성에 대한 질문에 대답하려면 확장 속성이 기본적으로 복사되지 않음] macOS Sierra와 적어도 OS X El Capitan은 기본적으로 xattr을 복사합니다. – cavalcade

관련 문제