壊れたファイルシステムの保存・復元作業

先日の騒動、無事btrfsの修復ができたが、損失の可能性がある。 そこで、バックアップを利用して損失があった場合に備える。

基本的な考え方としては、損失がある可能性のあるファイルを上書きせずにバックアップし、その上でrsyncによりバックアップの更新を行う。

完全なsnapshotを取るのではなく、データに差分があるものについて行うこととした。 つまり、全データについて、実際に読んで、比較することになる。

まずは待避先となるサブボリュームを用意する。

# btrfs subvolume create escaped_snap

次に、さらに別のサブボリュームを用意し、そこに全データをコピーする。今回はディスクに余裕があるので、不安定なデスクトップの稼働時間を抑えることを優先した。

# btrfs subvolume create dest2
# umount /WorldMirror
# mount -o gzip,noatime,space_cache,subvol=dest2 /dev/mapper/btrvolume01 /WorldMirror

最初はrecursiveにファイルを探索して、cmpで比較し、差分があるものについてコピーしようとした。

#!/usr/bin/zsh
# $1 = olddir
# $2 = newdir
# $3 = snapshot base dir

setopt extended_glob
cd "$1"


for i in **/*(#qD.)
do
  print ">>$i"
  if cmp "$i" "$2/$i"
  then
    print "OK"
  else
    sha256sum "$2/**/$i" > /tmp/rec-dir-cmpsnap-sum
    sum=$(sha256sum "$i" | cut -d " " -f 1)
    
    if ! fgrep -q "$sum" /tmp/rec-dir-cmpsnap-sum
    then
      tar cfv - "$i" | (cd "$3"; tar xf -)
    fi

  fi
done

rm /tmp/rec-dir-cmpsnap-sum

だが、うまくいかなかった。理由はよくわからなかったが。

そこで、再帰的なチェックサム差分のためにrsyncのdry-runを使う。

rsync -cvna /mnt/3/ /Worldmirror/ > rsyncdiff.result

/mnt/3には元々の、上書きされていないバックアップがある。

dry-runなので、これによってコピーされようとしているファイルが出力される。 -cオプションでチェックサム比較しているので、「バイナリ的に違いがある、または新しいコピーには存在しないもの」がリストアップされる。

これで転送に関する余分なメッセージを削除すればファイルリストができる。 今回はファイルリストにmvした300GBを越えるファイルがあるので、それについてはリストから削除しておく。

そしてそのリストに基づいてスナップショットへとコピー

while read
do
tar cvf - "$REPLY" | (cd /mnt/2; tar xf -)
done < ~/rsyncdiff.result2

長い道のりだった

フリーズ→btrfsファイルシステム崩壊

熱なのかPCがフリーズ、そしてBtrfsが壊れ、マウントできなくなった。

btrfs csum mismatch on free space cache

と言われてしまう。

これがまたどうしようもない。fsckしてみるが

# btrfsck /dev/mapper/dmcw_ata-WDC_WD30EZRX-00D8PB0_WD-WCC4N0840765

エラーを大量に吐くだけ。

リカバリーマウントしようとしてみる。

# mount -t btrfs -o recovery,no_space_cache /dev/mapper/dmcw_ata-WDC_WD30EZRX-00D8PB0_WD-WCC4N0840765

がやはりマウントできない。

諦めてリカバリー

# btrfs check --repair /dev/mapper/dmcw_ata-WDC_WD30EZRX-00D8PB0_WD-WCC4N0840765

が、ここでもfsckなエラーが出てしまい結果は同じ、依然として状況は変わらず。

zero-log

# btrfs-zero-log /dev/mapper/dmcw_ata-WDC_WD30EZRX-00D8PB0_WD-WCC4N0840765

エラーのあと完了を知らせるが、やはり状況は変わらず。

救出マウント

# mount -t btrfs -o recovery,nospace_cache,nospace_cache /dev/mapper/dmcw_ata-WDC_WD30EZRX-00D8PB0_WD-WCC4N0840765 /mnt/1

マウントできた。scrub

# btrfs scrub start /dev/mapper/dmcw_ata-WDC_WD30EZRX-00D8PB0_WD-WCC4N0840765

時々statusを見ると、猛烈な勢いでエラーがたまっていく。システムがとても重い。

しばらく後、コンソールに出力

WARNING: errors detected during scrubbing, corrected.

statusしてみると

scrub status for 5764a2af-d7e7-4b45-955c-19e27de332ee
	scrub started at Wed Mar 25 13:52:45 2015 and finished after 10337 seconds
	total bytes scrubbed: 4.30TiB with 635846 errors
	error details: read=13 verify=630 csum=635203
	corrected errors: 635846, uncorrectable errors: 0, unverified errors: 0

635846 errors!! まぁ、それはすごい。 しかし、すべてcorrectedとなっているから大丈夫なのか。

一応、従来のバックアップとは別にバックアップをとり、その上で差分をとって、差分があるファイルは保存しておくようにしよう。

USB Type-C

USB Type-Cの記事を読んだ

これを見るとすごいのだが、どーなのよという面もある。

事前に言われていた最大のポイントは裏表がないということだ。 USBは従来差しこみ方向があった。だが、対称形となり、それが廃止された。

だが、私はこれは割とどうでもいい。 というよりも、非対称にすることで性能などでメリットがあるならそのほうがいいと考える。

だが、とりあえずUSB 3.1の全機能を含む全機能をカバーできているというので問題はないのかもしれない。 将来的な発展に対してはどうなのだろう。

発展に対してはメリットもあるだろう。これまでUSB、特にUSB-Aに関しては後方互換性を保った規格となってきた。 だが、今回は形状は全く異なり、旧来のUSBデバイスは直接差し込むことができない。 アダプタを使う、と割りきったことは有利になるかもしれないし、ピンレベルの互換性を保とうとしたことが裏目に出るかもしれない。

個人的な意見だが、小さいプラグに限定したことには賛成しかねる。 なぜならば、microUSBは抜けやすいし負担も大きい。というよりも、差し込み自体が不安定だ。 しっかりと差し込める大型のプラグ規格もあってよかったのではないか。

また、大型プラグを採用したほうが設計上の余裕から性能が出るということはないのだろうか?それがないのだとしたら、なぜ小さなプラグで置き換えてこなかったのか。

USBの速度に関しては若干の不満がある。 この問題はマザーボード自体が持っている帯域の問題にもなるのだが、デバイスや規格の速度に追いついてこないのだ。

実際、PCI-Eでも速度的には不十分なこともあり、PCI-Eのスロット不足に悩まされる。そのPCI-Eもフルスピードで使えなかったりする。

だが、そもそもUSBを実装する側の都合は問題ないと過程した場合に、USB3.1でもまだ速度が足りないケースというのは考えられる。特にデイジーチェーンできるUSBの場合はそれは現実的にあるのだ。

そして速度的にはやはりThundarboltに期待したいのだ。 Intelの規格なのだからAppleのみの現状は疑問でならない。

もっとも、USBの場合、入力機器のような情報量の少ない、昔からあるデバイスも接続できるというメリットもある。 その意味ではUSBを廃してThundarboltを採用されるよりは、USBをたくさん搭載してくれたほうが構成の自由度があり使いやすい。

Appleがかなり関心を示しているらしいUSB Type-C。Macbook Airが電源ケーブルもThunderboltも廃してUSB Type-Cを採用するという。 ThunderboltやLightningをやめてUSB Type-Cに移行する可能性すら指摘されている。

こうしたことをトータルで考えれば、望ましい進化なのかもしれない。 だが、やはり不安定な小さなプラグになるのは、好ましくないという気持ちは依然としてある。

SDカードで音質が変わる?

Sonyが「高音質SDカード」なる「オカルトアイテム」をリリースして話題となっている。

これが話題となっているのは、Sonyがオカルトの領域に踏み出したこと、データがあまりにも怪しげなことなどからで、極めて「批判的」もしくは「嘲笑的」な論調が大勢を占める。

私の意見だが、これはまずありえない。

なぜか。

通常、オーディオストリームなどと言いつつ、大抵の場合オーディオデータの再生はatomicである。

つまり、SDカードに楽曲データを保存しておく。そしてそれをプレイヤーソフトウェアで開く。

再生前にSDカードを抜く

そしてプレイヤーで再生すれば、普通に再生できる。 この場合、SDカードは一体どの部分に干渉しているというのだろう?

楽曲データはSDカードから再生されているわけではなく、メモリーから再生されている。 バッファ云々の話ではない。

もし、データを取り扱う段階でSDカードの有無が関係なくとも電気的に効果がある、という話であれば、それはもう、部品を取り付けるとか取り外すとか、あるいはD/A装置に何かを接触させて設置するとかそっちのほうが何百倍も影響が大きいだろう。

影響がある可能性は否定できないが、影響を及ぼしうる範囲が極端に小さく、意味がないのだ。

仮に部品構成の自由度が低いPDAPに限定した話にしたとしても、やはりPDAPをどこにいれて、何が接触しているかのほうがずっと大きいだろうし、もっと言えばヘッドフォンケーブルがどのように取り回されているか、何に触れているか(特にシールドでないイヤフォンの場合、それは本当に影響が大きい)のほうがはるかに重大で、やはり意味がない。

さらに言えば、湿気や気温のほうがはるかに影響しうるため、それよりも小さい影響しか及ぼせないものが「音質改善」になるだろうか。

ネットワークケーブルと同じような話で、もちろんプロトコル次第だが、普通は再生する前にメモリーに全部ストアするため、ネットワークケーブルの品質は全く関係ない

USB1.1ではリアルタイム再生なんて到底できないが、USB1.1で接続したコンピュータにデータを置いても(もちろん単純なUSB接続ではない)普通に再生できるのだから。

これと同じことで、SDカードをUSB1.1接続のカードリーダーで読んだとしても普通に再生できる。 データやりとりにおける部分というのは無意味だ。 かといって電気特性の話をするのであれば、もっと大きな影響を与える要素が多すぎて意味がない。

というわけで、意味がない、というのが結論だ。 もちろん、世の中理屈通りにいかないので、絶対とは言えないのだが。

DENON DRA-F102 / DCD-F102 / SC-F103SG

DENON Sound System with Recycle shop
DENON Sound System with Recycle shop

経緯

本当は私のシステムは未完成である。

これは、機材をごっそりと奪った親が、その補填として必要なものの費用を提供する、と約束したのだが、 実際には全くしていないためだ。

親がいなくなっているので、現状は仮にお袋のBOSE MM-1を組み込んでいる。 これをこのまま使おうかと思ったのだが、「私のものを奪っていったのだし、二度と帰らないと言って放棄したのだから」と残していったものを使うといつものように自分のことは棚にあげて言いがかりをつけてきそうな気がするため、 なにひとつもっていかないことにした。

となると足りないものがかなりある。

現在はVAIO MX2付属のスピーカーでモニターし、リスニングはMM-1を使っている。

MX2のスピーカーに関しては、FOSTEX AP05(パーソナルアンプ)を介して鳴らしている。これはパッシヴスピーカーであるためだ。 AP05はUS-366につながっており、純粋にモニターに使われている。

ちなみに、MX2、以前はもっと深みのあるサウンドだったような気がするのだが、 こうして聞いてみると随分味気ない。だからこそモニターにしているのだが、リスニングには物足りない。 音が劣化したのだろうか?

また、オーディオセレクターが不完全で2chしか機能しないため、これも不足している。 そのため、セレクターも調達しなければならない。

セレクターなんて単純なものなのに高いお金を…と思うのだが、音が劣化する要素しかないため、 「可能な限り劣化を抑えたい」というとそこそこしてしまう。 狙っていたのはラックスマンのもので7500円くらいが最安。6万円くらいするものもあるようだ。

一方、スピーカーはパワー重視でアクティブスピーカーM-AUDIO AV40をチョイスしていたが、 それが16000円くらいする。

さらに、今のところCDプレイヤー/FMラジオとしてしか機能していないMX2、 このままであればタイマーも使えず役たたずなので、 コンポにリプレイスする計画があった。 ただ、とりあえずWindowsの起動ができれば、ということで PS/2マウスは購入済みだ。

また、カセットデッキも場所も取るし調子悪いし、そろそろ変えたいなぁ、 ということも考えていた。

このシステムひとつでそのほぼすべてが解決する。 MDとカセットはシステムとしては存在するが、今回買ったものには含まれていない。 実はそれもあると完全にカバーできていた。

概要

中核になるのはプリメインアンプであるDRA-F102だ。

簡単に入出力仕様を紹介すると

  • RCA IN (pair) x5 (うちひとつはPHONO)
  • RCA OUT (pair) x2
  • Speaker OUT bi x2
  • line in stereo (3.5mm)
  • phone stereo (3.5mm)
  • FM Coax
  • AM wire(loop)

結構豪華。

入力はソースは選択式、出力はPhoneのみ排他で3系統のラインはすべて流す。

アンプにラジオ機能が統合されている。3.5mmの3極プラグによりシリーズでコントロールも共有できる。

DCD-F102はシンプルなCDプレイヤーだ。 リモコンでのコントロールは必ずコントロールを結線しなくてはならない。

SC-F103SGは一世代あとのスピーカー。 スピーカーケーブルで接続する。ユニットは2つ、ツイーター付きだ。

アンプの入力はそれぞれのコンポーネントに合わせたもので、 AUXとline-inがextraということになっている。

コンポーネント間では連携しての録音などが可能。 タイマー機能もアンプが持っている。

出力切り替えができないというのは結構痛い。恐らくルーティングとしては

  1. CDC-F102 -> DRA-F102(CD)
  2. Audio 4 DJ A -> DRA-F102(AUX)
  3. VAIO MX2 -> DRA-F102(MD)
  4. US-366 -> DRA-F102(Casette)
  5. DRA-F102(MD) -> Selector(single in)
  6. Selector(out2) -> SC-F103SG
  7. Selector(out3) -> VAIO MX2 Speaker
  8. Audio 4 DJ B -> Powered Speaker(M-AUDIO?)

Selectorのout1は正常に機能しないのでミュート扱い。 現在とは逆に出力切り替えに使用する。

将来的にモニターをパワードタイプに置き換える場合は、 US-366に直接接続となる。

機械

本体に高級感があり、まぁいかにも「高いオーディオ」といった感じ。 銀色の筐体が美しく、「所有感」などという言葉が出てきそうだ。

機能的には非常にシンプル。

同軸FMアンテナとAMループアンテナが付属ということだったのだが、それは欠品していた。 入手性が意外と悪く、ちょっと苦労しそうだ。FMアンテナはMX2のものが同軸だが。

かなりシンプルなリモコンは、アンプをメインとし、3.5mm3極プラグで接続した時のみ CDプレイヤーにも機能する。CDプレイヤーは基本的な早送り、巻き戻し、一時停止などがある程度。 アンプなしの構成で使用する場合はリモコンがないということになる。 その場合、CDプレイヤーではリピート機能が使えない。

録音機能はラジオ連動のタイマー、CDを1枚分自動での録音などの機能がある。 カセットをサポートするだけになんだか懐かしい機能を搭載している。

サウンド

見ての通り床に直置き、コードもぐっちゃぐっちゃの状態でやっているので厳密なお話ではない。

とはいえ、大体のキャラクタやおおまかな性能は分かる。 システムごっそりかえてそれで違いが分からないシステムなんてやめたほうがいい。

比較はVAIO MX2(VORTEX)+BOSE MM-1

テストCDはいつものごとくメロキュア。 これは、結構ノイズが多いウィスパーなヴォーカル、アコースティック多用+Eベース&ドラムの構成でミックスも全域きっちりなのできつい。 lossyなフォーマットにするとぐっしゃりだ。

曲はピアノが美しいSo far, So nearだ。

つけるとすぐ分かる。声が近い。 ヘッドフォンで聴くよりもずっと声が近い。ウィスパーヴォイスが耳朶を打つ、もう本当に耳元で囁かれるようだ。

これはヴォリュームを落としても同様。 昨夜かなり小さい音で(6まで落としていた)聴いた時もそうだった。

音の臨場感は素晴らしく、ヴォーカル、ベース、シンバルはとても美しい。 結構クリーンで聴きやすく疲れにくい音だ。玄人好みというか、派手さはないけれど、いい音。

が、一方でバスドラムが出ない。 SDBを入れると潰れるので、クラブミュージックを気持ちよく聴くようなコンポではない、という印象。 MM-1がクラブミュージック向きのゴリゴリなので、そこらへんだいぶ違う。

体をばっこんばっこん振動させて欲しい人にはあまり向かないと思う。どちらかというと上品な、高級な音だ。 あんまりカジュアルな音ではない。

ただ、臨場感があって気持ち良い音は音の海に溺れるにはちょうどいい。 最近はロックやハウスを聴くことが増えているので、ゴリゴリが欲しかった(MM-1の低域が気に入っていたし、だからAKAIなど低域パワーのあるものを探していた)けれど、どちらかというと主食はジャズの私にとってはちょうどいいとも言える。

ヴォリュームを上げた時の迫力はあまりない。 猛烈に上げれば別かもしれないが。 MM-1は少し出すだけで威圧感のある音になる。

音が出ていないのではなく、既に音は飽和しているので、 低音に圧力と鮮明さがない。 汚くなってもいいのならSDBをいれれば単なる迫力は出る。 ただし音は潰れる。

MM-1の代わりにはならない。 だが、MM-1よりははるかにいい音がする。 今はバンブー茂を聴いているが、このホロウなギターがたまらない音になっている。

D/Aは若干荒い。 AUDIO 4 DJから出して上げたほうがいい音になるだろう。 デッキの使いやすさはいまいち。アンプもそれほど機能はない。 そのことを考えると単純にPCから出力してアンプを通して再生するのが楽だし音もいい。

結論

大満足☆

このコンポーネント、

品番 価格
DRA-F102 49350
DCD-F102 37800
SC-F103SG(pair) 47000

ざっと13万円。 中古でそれぞれだいたい1.5-2.5万円で出ているようだ。

それがこのセットで24800円は安い。

もし新品で予定通りスピーカーとセレクターを買っていると、だいたい24000円くらい。 もしシステム置き換えをやっていたらそれも別途かかっていた。

実はAUDIO 4 DJやシンセサイザーを買ったのもこのお店。 ここの掘り出し物率は素晴らしい。

ウィルスバスターでサイトがブロックされる件の顛末

かの有名なtrendmicro社による誤認検知に巻き込まれてしばらくが経った。

発覚が遅かったが、恐らくtrendmicro社は最初にクレームがあった2014年4月から10ヶ月にわたってReasonSetをブロックしてきたのだろう。

他の方の事例

トレンドマイクロの誤検知、フリーソフトの開発を停止に追い込む

そしてそれが発覚し、申し入れをしたのが2月18日。 だが、何の連絡もない。一週間後の2月25日にもう一度申し入れ、それでも対応されないため3月5日にさらにもう一度申し入れをした。

そしてようやく3月5日に返信が来た。

トレンドマイクロ製品をご利用いただきありがとうございます。

弊社が提供するWebサイト評価について、評価内容変更のリクエストをお送りいただきありがとうございました。

対応が完了しましたので、結果をご連絡いたします。

修正されたが、それで済む話だろうか。

当然ながら、重大な営業妨害だ。

Aki SI&Eにコンタクトを約束したものの、その後連絡がない方はとても多い。 その中のすべてとは言わないまでも、サイトをみようとしたらウィルスバスターに阻まれ、 私、あるいはAki SI&Eを警戒して離れた方も多いはず。

さらに、発覚後はその対応のためにインフォメーションの印刷や、それをホッチキスでとめる作業など、かなりのコストが生じた。

業務に著しい支障がでているので直ちに対応してほしい、ということを再三申し入れたにもかかわらず、3週間以上何の返信もなく、 それでテンプレートで返すとは何事か。

他者に損害を与えているという自覚もないのだろうか。 なんだか殿様気分でいるようだ

損害賠償請求でもしたほうがいいのだろうか。

メインシステムをEncFS on BtrfsからBtrfs on dm-cryptに変更

概要

散々やるよといっていた構成変更だが、ついに実行した。

作業はかなり面倒で、1時間半ほどかかってしまった。

今までは次のようになっていた。

  • 4ディスクによるBtrfsを編成
  • Btrfsはサブボリュームを持つ
  • ひとつのサブボリュームを丸々EncFSとする
  • .zshrcでencfsコマンドを呼び、マウントする

この方法のメリットは次のようなものだ

  • 強力で柔軟な暗号化
  • ファイル単位でのバックアップが、暗号化したまま可能
  • 手軽
  • rootでもユーザーデータにアクセスできないので、かなり安全

一方デメリットは次のようなもの

  • rootでユーザーデータにアクセスできないとKVMが暗号化されたディスクにイメージを置けないなど結構不便
  • 特にバックアップで困る
  • ファイルアクセスは常にEncFSがトップ。どのプロセスがIO負荷になっているのかわからない

下準備

先日のrsoftmirrorとrsyncを使ってデータをすべてスレーブにバックアップ

dm-crypt

4kBのurandomデータをめちゃくちゃに暗号しまくって、その中から512Bを切り出す方法で鍵ファイルを作成。これを使う。

cryptsetup --hash=sha512 --key-size=512 --ciper="twofish-xts-plain" --offset=0 key-file=/etc/worldencmount/keyfile --type=plain open device name

単にopen。LUKSではluksFormatという専用のアクションがあるが、プレーンだとない。 ちなみに、twofish-xts-plain結構遅い

これをしただけだとBtrfsの存在はblkidでは残っているように見えてしまう。 そこでrebootするのだが、その前に/etc/fstabを編集してbtrfsをマウントしないようにしておかないと痛い目を見る。

Btrfs

リブートしたら暗号化を行うのと同じ手順でデバイスをオープンする。 Btrfsはそのオープンしたデバイスに対して行う。

# mkfs.btrfs -m raid1 -d raid1 -l WorldBtrfs /dev/mapper/world_enc_*

ちなみに、ストライプで高速化するのではなく、ミラーで分散してもらうことにした。 ミラーするかどうかは悩んだのだが、やはり安全をとってミラー。つまり、2ミラー、1バックアップになる。

サブボリュームを作ることを忘れていて若干ハマった。

# mount /dev/mapper/world_enc_1 /mnt/1
# cd /mnt/1
# btrfs subvolume create shared-world

設定ファイルにblkidでdm-cryptのPARTUUIDを送り込んでおく。 また、btrfsのUUIDを/etc/fstabに送り込んでおく。

# blkid | grep -F /dev/mapper/world_enc_* | tail -n 1 >> /etc/fstab

そしてvim

# vim /etc/fstab

コピペしてUUIDを書き換え、ゴミを消去し、コメントアウトを外し、noautoオプションを追加する。

修正

そういえばこの方法はdiskのパーティションを暗号化している。 これは推奨される方法だが、やはりできればwhole diskの暗号化をしたい。 LUKSも含め3TB以上のwhole diskの暗号化には対応している。

だが、そうするとかなり重大な問題が生じる。 PARTUUIDやPARTLABELが使えなくなるのだ。

これは結構困ったことで、どうしたものかと思ったが、/dev/disk/by-idを使うことにした。 これはWWIDと呼ばれる、システムに依存しないデバイスに対して永続的なIDであるという。 若干手間だが、確実だ。

ちなみにこの修正、同期がかなり進んだ段階でリセットする形で行った。 この修正に30分くらいかかってしまった。

セットアップスクリプト

#!/usr/bin/zsh

#read config file.
. /etc/worldencmount/worldrc || exit 1

#decryption
for disk in "${disks[@]}"
do
  cryptsetup --hash=sha512 --key-size=512 --cipher="twofish-xts-plain" --offset=0 --key-file=${keyfile:-/etc/worldencmount/seedfile} --type=plain open "$disk" dmcw_${disk:t}
done

.zshrc

#Check shared zshrc file.

if [[ -e $HOME/share/.zshrc ]]
then
  # Enable shared zshrc
  . $HOME/share/.zshrc
else
  # Disabled shared zshrc.
  
  print ~/share/.zshrc "is not exist." >&2
  print "Probably encrypted filesystem don't mount yet." >&2
  print "Let's mount it!" >&2
  print >&2
  
  ## Decryption ##
  if sudo btrfs filesystem show | grep -F -q HydrangeaMasterBtr
  then
    print "Btrfs filesystem already active." >&2
  else
    if sudo /usr/local/sbin/worldencmount
    then
      print "Okay, succeed to decrypt." >&2
    else
      print "Oh, failed to decrypt disks." >&2
      print "Aborting..." >&2
      exit 2
    fi
  fi
  
  ## Mount ##
  if sudo mount ~/share
  then
    print "Okay, succeed to mount the filesystem." >&2
    print "You can use the World." >&2
    exit 0
  else
    print "Gosh! failed to mount. I don't know why." >&2
    print "Please fix it." >&2
    exit 3
  fi
fi

いままでよりだいぶ複雑になった。 結局、自動マウントではなく.zshrcで処理するようにした。 このほうが合理的だ。

slave側の自動マウント

逆にslave側は常にマウントされているべきなので、systemdユニットを書く。

[Unit]
Description=Mount World filesystem.
After=network.service

[Service]
ExecStart=/usr/local/sbin/worldmount

[Install]
WantedBy=multi-user.target

そして自動起動

# systemctl enable worldmount

ものすごく手抜きで、実はまだテストしていないが、動くはずだ。 ちなみにCentOS7である。

同期

rsyncで新たに作られた~/shareに同期する。 これは復旧作業なので通常とは逆方向のsyncとなる。 結果的には約14時間かかった。gzipのためか時間はかかったが、容量は2.02TiBと約2/3に抑えられた。

鍵のバックアップ

鍵ファイルがなくなると困るのでバックアップ。 しかしそれだけでは暗号化している意味がないので、鍵ファイルも暗号化した上でCD-Rに焼く。 暗号化はopensslのencを使うのが手っ取り早く、確実。 復号化用のスクリプトも同梱した。

総論

今回の作業はそれなりにしんどかったが、それでも同期を別とすれば1時間半ほどで終了した。 (ただしそれは最初にしたようにパーティションベースで行った場合のみの話)

元々EncFSにしたのは暫定的な措置だったし、スレーブサーバー設置に伴ってこういった作業をすることは想定していた。