Saya mencoba mencari tahu apakah xattrs didukung oleh FreeBSD atau tidak menggunakan ZFS. Saya telah membaca beberapa informasi yang saling bertentangan.
zfs get xattr
daftar ituon (default)
untuk/
,/usr
dan/var
, tetapioff (temporary)
untuk semua dataset lain, termasuk anak-anak dari yang disebutkan di atas.- Berjalan,
zfs set xattr=on zroot/usr/home
saya menerima pesanproperty 'xattr' not supported on FreeBSD: permission denied
. - Hal ini sesuai dengan yang
zfs
halaman manual :The
xattr
properti saat ini tidak didukung pada FreeBSD. setextattr
,getextattr
danlsextattr
sepertinya bekerja cukup baik.- Saya juga berhasil menyimpan dan mengembalikan node file perangkat menggunakan
rsync --fake-super
, dan bisa melihat datanya menggunakanlsextattr
dangetextattr
. - Wikipedia memiliki beberapa diskusi di halaman pembicaraan xattr . Rupanya pernah ada klaim bahwa ZFS mendukung xattr sejak FreeBSD 8, tetapi itu dihapus kemudian, dengan referensi ke halaman manual (lihat 3.).
Saat ini saya mendapatkan kesan bahwa atribut diperluas pada zfs bekerja dalam praktiknya, tetapi xattr
properti yang akan mengontrol penggunaannya tidak berfungsi seperti pada distribusi zfs lainnya. Tapi saya ingin mendengar yang dikonfirmasi (atau diperbaiki) sebelum saya percaya sejumlah besar data cadangan untuk rsync --fake-super
berjalan pada mesin seperti itu. Saya lebih suka tidak kehilangan semua metadata saya karena masalah xattr yang diketahui.
Jika itu penting, ini adalah instalasi FreeBSD 10.2 yang sangat segar yang baru saya atur, dengan ZFS yang diatur oleh penginstal.
Jawaban:
Seperti yang Anda temukan, xattrs akan berfungsi, tetapi ada sisi-sisi yang kasar.
Terkadang Anda harus mendekati kode sumber terbuka seperti seorang Antropolog. Jika ini sendiri tidak membantu, mungkin ini akan memicu kontribusi yang lebih baik (atau akhirnya perbaikan kode!)
Saya menemukan ini di kode sumber:
https://github.com/freebsd/freebsd/blob/c829c2411ae5da594814773175c728ea816d9a12/sys/cddl/contrib/opensolaris/uts/common/fs/zfs_zfsops.c#514
dan ini https://github.com/freebsd/freebsd/blob/386ddae58459341ec567604707805814a2128a57/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#L302
namun hal ini memberi Anda jeda: https://github.com/freebsd/freebsd/blob/e95b1e137c604a612291fd223fce89c2095cddf2/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.
Jadi apa yang saya pikir benar-benar terjadi adalah bahwa xattrs berfungsi tetapi fungsi untuk mematikannya (atau menghidupkan) oleh properti dataset ZFS rusak, sehingga pesan "tidak didukung" berarti "Anda sendirian."
Ada beberapa kode di sana yang menetapkan MNTOPT_XATTR tapi saya belum melacaknya. mencoba mengubahnya menggunakan zfs set memberi Anda pesan yang tidak didukung. Dugaan saya adalah yang menjelaskan keanehan properti zfs xattr dengan /, / usr, / var, dan pengaturan / perilaku yang bertentangan dari / home.
Ini menjelaskan beberapa hal. https://www.lesbonscomptes.com/pages/extattrs.html
sumber