SSブログ
エステ

Sambaでも拡張属性を有効にする の巻 [Samba]

netatalk 2.1beta1では拡張属性(EA)に対応しているため、
マウント時のオプションで user_xattr を付加すれば、拡張属性が
利用できました。

そこで、ついでにSamba(3.4.0)でも試してみます。

[global]セクションに以下を追加します。

ea support = yes
store dos attributes = yes

これでSambaを再起動します。

iMacからCIFS(by Samba)でファイルサーバにtest.txtをコピーします。

で、
# getfattr -d test.txt
しますと、

# file: test.txt
user.DOSATTRIB="0x0"

と帰ってきますので、有効になってそうです。

そして、コピー先の同じディレクトリに
._test.txt
も出来ています。


さて、WindowdのPCからコピーするとどうなるのでしょうか?
WindowsのPCを引っ張り出すのが面倒なので、試していません[たらーっ(汗)]

2010/4/2 追記
その後、いろいろあり、現時点で正しそうな設定はこちら

ddコマンドでディスクまるごとコピー [Linux コマンド・設定 Memo]

そう、少し前まで、ファイルサーバーの/ディレクトリのディスクは
USBメモリを2つ使ってRAID1を組んでいたのですが、起動時に

IMG_1045.JPG

こんなことを言われることが頻繁におこり、でも実際はdegradeしてない
という意味不明な状況だったりして、むむむな状態にしびれを切らして、
RAIDはやめて、USBメモリをちょくちょくもう一つのUSBメモリに
コピーすればいいじゃないですか。。
という訳で、早速コピーしてみました[るんるん]

# dd if=/dev/sdb of=/dev/sdd

ifでコピー元
ofでコピー先
のUSBメモリを指定します。
# おわかりの通り、逆にすると悲惨なことになりますので、ご注意を[あせあせ(飛び散る汗)]

8GBのUSBメモリですが、転送速度が遅いので、それなりに時間が
かかります。

コピーが完了すると、

15949824+0 records in
15949824+0 records out
8166309888 bytes (8.2 GB) copied, 1741.72 s, 4.7 MB/s

などと表示されます。

これで、コピー完了[exclamation]

USBメモリを差し替えて、起動してみます。
OK[ぴかぴか(新しい)]
ちゃんと起動しました。

今回は起動中のUSBメモリから空のUSBメモリへコピーしました。
完全にコピーするなら、起動中のubuntuを一度終了させて、
他のddコマンドが使えるOSで二つのUSBメモリを認識させて、
コピーするのがいいのでしょうが、、、面倒なので[たらーっ(汗)]

ま、動いたので、これで良しとしましょう[揺れるハート]




拡張属性を有効にする の巻 [Netatalk]

知らなかったのですが、いくつかのファイルシステムでは
簡単に拡張属性を有効にできるようです。

ubuntu9.10で標準となっているext4でも、fstabのオプションに
user_xattrを追加します。
# ext2,3,xfsなどでも同じかと思います。

UUID=4c5d08a8-b2da-477a-b1c1-f625d4726bac /st1 ext4 defaults,user_xattr  0 2

これでサーバの再起動を行います。

それにより、afpd起動時の
volume "nao" does not support Extended Attributes, using ea:ad instead
が消えました。

そして、拡張属性を有効にしたディレクトリにiMacからファイルサーバに
 test.txt ファイルをコピーした際に、.AppleDoubleディレクトリに作成されていた

test.txt::EA
test.txt::EA::com.apple.metadata:3akMDItemFinderComment
test.txt::EA::com.apple.TextEncoding

などのファイルは作られなくなり、.AppleDoubleには

test.txt

というバイナリファイルが作られるようになりました。

syslogにはxattrに関するログが残っていないことが気になりますが。。

 EXT4-fs (sda1): barriers enabled
 kjournald2 starting: pid 702, dev sda1:8, commit interval 5 s
 EXT4-fs (sda1): internal journal on sda1:8
 EXT4-fs (sda1): delayed allocation enabled
 EXT4-fs: file extents enabled
 EXT4-fs: mballoc enabled
 EXT4-fs (sda1): mounted filesystem with ordered data mode


ですが、拡張属性は有効になっているようです。

確認の方法としては..
先ほどのtest.txtに対して、

$ getfattr -d test.txt

としますと。。

# file: test.txt
user.com.apple.TextEncoding="utf-8;134217984"

などとtest.txtファイルに格納されていた拡張属性が表示されます。

getfattr や setfattr などの拡張属性を取得したり、格納するための
コマンド類は attr に入っています。
入っていないと、

The program 'getfattr' is currently not installed.  You can install it by typing:
apt-get install attr
getfattr: command not found

と言われますので、

# apt-get install attr

してください[るんるん]


いつもながらHATさま、ありがとうございました。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。