2013-12-16 8 views
6

Dies ist eine einfache Frage, aber ich habe einige Nachforschungen gemacht und kann keine Antworten finden ... Also weiß jemand, wenn wenn wir erweiterte Attribute durch XATTR definieren, diese Attribute innerhalb der Datei gespeichert werden "Inhalt (am Ende, oder?), oder wenn der Inode eine spezielle Region hat, um diese zu speichern?Wo sind erweiterte Attribute gespeichert?

Und übrigens, ich habe gelesen, dass in ext4 "jedes erweiterte Attribut auf einen Dateisystemblock (z. B. 4 KiB) beschränkt ist". Ich kann nicht sagen, ob das ausreicht, wenn ich 7 erweiterte Attribute für jede Datei im Dateisystem speichern möchte. Ist das reallistisch?

Meine letzte Frage ist, ob diese erweiterten Attribute portabel sind in dem Sinne, dass, wenn die Dateien auf andere Maschinen mit anderen Dateisystemen verschieben, was passiert mit diesen Attributen?

+0

Da Sie es nicht gewählt haben, gehe ich davon aus, dass ich Ihre Frage nicht vollständig beantwortet habe. Kannst du die Frage ein wenig weiter klären? – aleatha

Antwort

5

Wenn Sie sich die Inode-Spezifikation ansehen, werden Sie feststellen, dass am Ende des Inode ein kleiner Platz für erweiterte Attribute vorhanden ist. Wenn Sie diesen Bereich überfließen, können Sie mit ext4 einen weiteren Block (im Wesentlichen wie eine Ressourcenzweig) für zusätzliche erweiterte Attribute zuweisen. Diese 4-KB-Beschränkung gilt pro Attribut und pro Datei. Sie können also sicher 7 erweiterte Attribute pro Datei speichern, es sei denn, das Attribut ist ein BLOB, das größer als 4 KB ist. Wenn Sie jedoch den Speicherplatz am Ende des Inodes überschreiten, weisen Sie den Metadaten Metadaten statt Daten zu und reduzieren so die nutzbare Größe Ihres Dateisystems.

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

Ihre Frage über Portabilität zu beantworten, sind erweiterte Attribute nicht standardmäßig kopiert, auch innerhalb eines einzigen Dateisystem und sind nicht tragbar zwischen Dateisystemen.

Siehe: https://unix.stackexchange.com/questions/44253/how-to-clone-copy-all-file-directory-attributes-onto-different-file-directory für einige weitere Diskussion zu diesem Thema. Rysnc kann viel für das Kopieren erweiterter Attribute tun, aber wenn das Zieldateisystem keine xattrs unterstützt, haben Sie kein Glück.

+0

[Um Ihre Frage zur Portabilität zu beantworten, werden erweiterte Attribute nicht standardmäßig kopiert] macOS Sierra und mindestens OS X El Capitan kopieren standardmäßig xattr – cavalcade