2013-12-16 22 views
6

To jest proste pytanie, ale zrobiłem pewne badania i nie mogę znaleźć żadnych odpowiedzi ... Tak więc każdy wie, czy kiedy definiujemy rozszerzone atrybuty przez xattr, te atrybuty są przechowywane wewnątrz - jako część - pliku "zawartość (w biggining, na końcu?), lub jeśli i-węzeł ma specjalny region do przechowywania tych?gdzie przechowywane są rozszerzone atrybuty?

A tak przy okazji, przeczytałem, że w ext4 "każdy rozszerzony atrybut jest ograniczony do bloku systemu plików (na przykład 4 KiB)". Nie mogę stwierdzić, czy to wystarczy, jeśli chcę zapisać 7 rozszerzonych atrybutów do każdego pliku w systemie plików. Czy to jest realne?

Moje ostatnie pytanie brzmi: czy te rozszerzone atrybuty są przenośne w tym sensie, że jeśli pliki przenoszą się na inne maszyny z różnymi systemami plików, co dzieje się z tymi atrybutami?

+0

Ponieważ nie przegłosowałeś tego, zakładam, że nie odpowiedziałem na twoje pytanie w pełni. Czy możesz wyjaśnić to pytanie nieco dalej? – aleatha

Odpowiedz

5

Jeśli spojrzysz na specyfikację i-węzła, odkryjesz, że na końcu i-węzła znajduje się mała przestrzeń, aby pomieścić rozszerzone atrybuty. Jeśli przepełnisz ten obszar, ext4 pozwala ci przydzielić inny blok (w zasadzie jak widełki zasobów) dla dodatkowych rozszerzonych atrybutów. To ograniczenie 4KB przypada na atrybut, dla każdego pliku, więc na pewno można zapisać 7 rozszerzonych atrybutów na plik, chyba że atrybut jest BLOB większy niż 4KB. Jeśli jednak przekroczysz przestrzeń na końcu i-węzła, będziesz dzielił bloki na metadane zamiast danych, zmniejszając użyteczny rozmiar systemu plików.

Źródło: https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Extended_Attributes

Aby odpowiedzieć na pytanie o przenośności, rozszerzone atrybuty nie są kopiowane domyślnie, nawet w obrębie jednego systemu plików, a nie są przenośne pomiędzy systemami plików.

Zobacz: https://unix.stackexchange.com/questions/44253/how-to-clone-copy-all-file-directory-attributes-onto-different-file-directory w celu dalszej dyskusji na ten temat. Rysnc może dużo zrobić dla kopiowania rozszerzonych atrybutów, ale jeśli docelowy system plików nie obsługuje xattrów, nie masz szczęścia.

+0

[Aby odpowiedzieć na pytanie dotyczące przenośności, rozszerzone atrybuty nie są domyślnie kopiowane] MacOS Sierra i co najmniej OS X El Capitan domyślnie kopiują xattr – cavalcade

Powiązane problemy