ファイルをもどせない。。 [Netatalk]
古いLinuxファイルサーバから新しいLinuxファイルサーバへ
移行するにあたって、一時的に古いファイルサーバのファイル達を
iMacにコピーしておきました。
それを新しいファイルサーバに戻そうとしたとき。。。
あら。。
新しいエラーコード出現です。
予期しないエラーが起きたため、操作を完了できません。(エラーコード -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も構築できました![[るんるん]](https://blog.ss-blog.jp/_images_e/146.gif)
![[るんるん]](https://blog.ss-blog.jp/_images_e/146.gif)
RAID10の構築は普通に mdadm を使います。
/dev/sda,adb,adc,addを使って構築します。
まず、各ディスク目一杯に1つパーティションを切ります。
。。。というところで、このブログを書いていた、iMacが落ちたので、
メモっていた詳細は割愛。
あー、しょっく![[たらーっ(汗)]](https://blog.ss-blog.jp/_images_e/163.gif)
![[たらーっ(汗)]](https://blog.ss-blog.jp/_images_e/163.gif)
たぶん原因は、

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基のディスクは
左上 Disk1 右上 Disk3
左下 Disk2 右下 Disk4
となっています(ディスクの上にある小さい●の数で表しているようです)
これに対して、
左上 sdd 右上 sdc
左下 sdb 右下 sda
と割り当てられています。
ま、これはSATAコネクタの接続を変えればなんとでもなりますが。
デフォルトではこんなところです。
とりあえず、なんとか動くところまできたので、バックアップしておいた
ファイルたちを戻すことにします![[揺れるハート]](https://blog.ss-blog.jp/_images_e/137.gif)
![[揺れるハート]](https://blog.ss-blog.jp/_images_e/137.gif)