SSブログ
エステ

ファイルをもどせない。。 [Netatalk]

古いLinuxファイルサーバから新しいLinuxファイルサーバへ
移行するにあたって、一時的に古いファイルサーバのファイル達を
iMacにコピーしておきました。

それを新しいファイルサーバに戻そうとしたとき。。。

スクリーンショット(2010-04-01 2.30.04).png
あら。。

新しいエラーコード出現です。

予期しないエラーが起きたため、操作を完了できません。(エラーコード -50)


でも、全てのファイルに対して出るのではなく、一部のファイルやフォルダを
コピーしようとした時にでるのです。


iMacのターミナルから、確認してみて気づいたのですが、、

$ ls -la
total 32
drwx------@ 12 nao  staff    364  4  1 17:12 .
drwxrwxrwt@  7 root  admin    238  4  1 17:07 ..
-rwx------@  1 nao  staff  15364  4  1 15:04 .DS_Store
drwx------  15 nao  staff    466  4  1 14:55 directoryA
drwxr-xr-x@  7 nao  staff    264  3 30 19:22 directoryB

フォルダのコピーに成功するディレクトリには@がついていて、
失敗するディレクトリには@がついていない。。

そもそもこの@はなんのか??


どうやら拡張属性をもったファイルやディレクトリには@がつくようです。

拡張属性は ls-la の後に@をつけると確認できるようです。


$ ls -la@
total 32
drwx------@ 12 nao  staff    364  4  1 17:34 .
com.apple.FinderInfo   32 
drwxrwxrwt@  7 root  admin    238  4  1 17:07 ..
com.apple.FinderInfo   32 
-rwx------@  1 nao  staff  15364  4  1 15:04 .DS_Store
com.apple.FinderInfo   32 
drwx------  15 nao  staff    466  4  1 14:55 directoryA
drwxr-xr-x@  7 nao  staff    264  3 30 19:22 directoryB
com.apple.FinderInfo   32 


directoryAにはFinderInfoがなく、iMacからファイルサーバへのコピーに失敗します。
directoryBにはFinderInfoがあり、iMacからファイルサーバへのコピーに成功します。


推測ですが、、、

古いファイルサーバからiMacへコピーした時、netatalkとsambaを使いました。
netatalkでコピーしたファイルは拡張属性もコピーされ、sambaでコピーした
ファイルは拡張属性がコピーされなかった。

そして、拡張属性がないファイルのコピーには失敗する。

では、拡張属性をつけられないか??

う〜ん、SetFile -a で拡張属性はつけられそうですが、適切かつ、数万のファイル、
ディレクトリにつけるには。。?


一旦、iMacからMacBookProの共有フォルダへファイルをコピーすれば、あらたに
拡張属性が付加されることを見いだしたので、一旦、MacBookProへファイルを
コピーします。

そのMacBookProからファイルサーバへコピーすればよいのでは??
というわけです。


結果。ほぼ成功です。
たまに、エラーコード -36 が出ることがありましたが、なんとか全てコピーできました。

修正 2010.4.23
上記の推測、間違っていたので修正です。

ファイルサーバのnetatalkのエラーログをチェックするのを忘れていました。
早速チェックすると、

Apr 23 09:29:10.618775 afpd[16348] {filedir.c:304} (E:AFPDaemon): check_name: illegal name: '.AppleDouble'
Apr 23 09:29:10.618817 afpd[16348] {directory.c:733} (I:AFPDaemon): extenddir: illegal path: '.AppleDouble'

こんな具合のエラーが大量にはかれています。

つまり、悪さの原因は

.AppleDouble

このディレクトリでした!

これはnetatalk2.0.x時代の遺物です。

理由がわかったので対処法はこのとおり。。

Macのターミナルから、コピー元のフォルダ(ここでは/Desktop/St1 とします)から
.AppleDouble を完全消去します。

こんな感じで。

$ sudo find ./Desktop/St1 -name ".AppleDouble" -execdir rm -dfr {} \;

find の-deleteオプションでは"."で始まるディレクトリは削除出来ない模様。
なので、-execdirオプションで。

これで、ちゃんとコピーができるようになりました!
 

しかし、iMacからMacBookProへのコピーが遅い。。というかおかしい。
iMacはローカルの読み書きで90MB/sec
MacBookProはSSDで、ローカルの読み書きで100~200MB/sec程度
なのにファイル転送速度が目測で5~10MB/sec程度。。かと思いきや、急に50MB/sec
くらい出たりと、かなりムラがあります。


ES34069-BK-180 でソフトウェアRAIDを構築しました [LinuxでSoftware RAID]

そういえば、購入前に気にしていた、電源容量の問題は、
大丈夫でした。
ぎりぎりといいますか、ちょっと不足していましたが、
なんとか起動し、RAIDも構築できました[るんるん]

RAID10の構築は普通に mdadm を使います。

/dev/sda,adb,adc,addを使って構築します。

まず、各ディスク目一杯に1つパーティションを切ります。

。。。というところで、このブログを書いていた、iMacが落ちたので、
メモっていた詳細は割愛。

IMG_1119.JPG

あー、しょっく[たらーっ(汗)]
たぶん原因は、

I-O DATA Mac用 USB接続 地上デジタル対応TVキャプチャBOX「m2TV」 GV-MACTV

I-O DATA Mac用 USB接続 地上デジタル対応TVキャプチャBOX「m2TV」 GV-MACTV

  • 出版社/メーカー: アイ・オー・データ
  • メディア: エレクトロニクス
これのせい。
よく落ちるので道連れにされたのでしょう。。
全くひどい代物です。

IO DATAの製品でまともなのに当たらないのは偶然?


2TBをぎりぎり超えてるかどうか不明なので、パーティションはpartedで切りました。
2TB以下ならfdiskで切れます。

RAIDを構築してからフォーマットするので、個別のパーティションをフォーマット
する必要はありません。

# mdadm --create /dev/md0 -v --raid-devices=4 --level=raid10 /dev/sd[abcd]1

この呪文で、4つのパーティションでRAID10が構築され、syncが始まります。
寝ている間に終わったのでわかりませんが、5時間くらい掛かった模様です。

man mdadm.conf を見てもよくわからなかったのですが、

# mdadm --examine --scan

ARRAY /dev/md0 level=raid10 num-devices=4 UUID=fa0cdaa4:35dc9145:883fc9c1:0b6673d2

の結果をmdadm.confに書いておけ、とあちこちで言われているので、とりあえず
書いておきます。
あとで詳しく調べます。

構築が終わったら、

# mkfs.ext4 -m 1 /dev/md0

して、フォーマットします。

すべて完了したところで、

# mdadm --detail /dev/md0

/dev/md0:
        Version : 00.90
  Creation Time : Wed Mar 31 06:07:14 2010
     Raid Level : raid10
     Array Size : 3907028864 (3726.03 GiB 4000.80 GB)
  Used Dev Size : 1953514432 (1863.02 GiB 2000.40 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Thu Apr  1 00:15:00 2010
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2, far=1
     Chunk Size : 64K

           UUID : fa0cdaa4:35dc9145:883fc9c1:0b6673d2 (local to host ss)
         Events : 0.18

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1
       2       8       33        2      active sync   /dev/sdc1
       3       8       49        3      active sync   /dev/sdd1


OKそうです(^^)

軽くベンチマークをとりましたが、CG-HDC4EU3500でRAID10を
構築したときとほとんど同じパフォーマンスでした。

ちなみに、4基のディスクは
product6213780907.jpg
左上 Disk1  右上 Disk3
左下 Disk2  右下 Disk4
となっています(ディスクの上にある小さい●の数で表しているようです)

これに対して、

左上 sdd 右上 sdc
左下 sdb 右下 sda

と割り当てられています。

ま、これはSATAコネクタの接続を変えればなんとでもなりますが。
デフォルトではこんなところです。


とりあえず、なんとか動くところまできたので、バックアップしておいた
ファイルたちを戻すことにします[揺れるハート]

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