サーバーの入れ替えに伴って旧ーサーバーのメールのバックアップに使っていた外付けHDDを,新サーバーでも使おうとするときの手順にはまったのでメモです。
バックアップ用のHDDはここに書いたような手順でzfsでフォーマットしてusb経由でマウントしていました。このディスクを新サーバーでマウントしようとするためにはzpoolをimportしなくてはなりません。
usbでHDDを接続してgpart show da0とすると,
=> 34 312499933 da0 GPT (149G)
34 312499933 1 freebsd-zfs (149G)
と表示されてちゃんとディスクが生きていることがわかります。
しかし,zpool statusとしてもda0上に作成しているzpoolであるzmailは表示されません。
zpool importとすると,
pool: zmail
id: 891880598061354309
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
config:
zmail ONLINE
gpt/usb0 ONLINE
と表示されてzmailがちゃんと存在することがわかりますが,別のシステムで使われていたよ,とご丁寧にも教えてくれます。そこでzpool import zmailとすると
cannot import 'zmail': pool was previously in use from another system.
Last accessed by braque.str.jp (hostid=fe4ac89c) at Sun May 28 03:17:38 2023
The pool can be imported, use 'zpool import -f' to import the pool.
と言われてインポートできません。言われた通り,-fオプションをつけて
zpool import -f zmail
とやると黙ってインポートしてくれます。zpool statusと改めて叩くと
pool: zmail
state: ONLINE
status: Some supported and requested features are not enabled on the pool.
The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(7) for details.
scan: scrub repaired 0B in 00:08:44 with 0 errors on Sun Nov 5 23:38:50 2017
config:
NAME STATE READ WRITE CKSUM
zmail ONLINE 0 0 0
gpt/usb0 ONLINE 0 0 0
errors: No known data errors
と表示されて使うことはできるけど一部の機能は使えないよ,と言ってきます。バックアップを取るだけなのであまり気にすることはないと考えて次へ進みます。/etc/fstabに
zmail/bumail /bumail zfs rw,noauto 0 0
を追記して,
mkdir /bumail
mount /bumail
とやればちゃんとマウントされます。dfを叩くと
zmail/bumail 151381238 51958121 99423116 34% /bumail
というのが表示されてちゃんとマウントされていることが確認できます。あとはcrontabでrsyncを定期的に起動してバックアップをとればOKです。
どうってことはないのですが,ちゃんとハマりました。
emacs 28.2でwnn7を使う
もう太古の昔から日本語変換にはWnn7を使ってemacs上であらゆることをやってきました。サーバー側はまだ古いFreeBSD (9.1R)が動いているのでjserverも問題なくインストールできて動いています。しかし,クライアント側のemacsのバージョンがあがると「ななたまご」が動かなくなって日本語変換ができなくなってしまいました。これでは死活問題なので,なんとかせねば,ということで色々調べたのですが,このご時世にWnn7をFreeBSD上で使い続けているなんていう変人はそうはいません。
と思ったら,いました。Wnn7ではなくWnn8を使っておられるようですが,そこに書かれているとおりにやることでなんとか曲がりなりにも動くようになりました。こちらに重要情報が書かれています。パッチファイルもあげていただいているのでとても助かります。本当にありがたいことです。
これまでは,日本語変換のときも(フェンスモードでも)数字を半角で入力する,という設定にしていましたがなぜか,これは通用しなくなりました。しかし,Wnn7が使えなくなるよりはましなので,もはや贅沢はいえません。ありがたくパッチを使わせていただいてます。
と思ったら,いました。Wnn7ではなくWnn8を使っておられるようですが,そこに書かれているとおりにやることでなんとか曲がりなりにも動くようになりました。こちらに重要情報が書かれています。パッチファイルもあげていただいているのでとても助かります。本当にありがたいことです。
これまでは,日本語変換のときも(フェンスモードでも)数字を半角で入力する,という設定にしていましたがなぜか,これは通用しなくなりました。しかし,Wnn7が使えなくなるよりはましなので,もはや贅沢はいえません。ありがたくパッチを使わせていただいてます。
mhcのインストール
これまで,emacs + mew + mhcでメールと日程の管理をやってきました。FreeBSD 10.3Rで使っていたemacs 25.3.1では特に問題もなく,mew 6.xと20年以上前のバージョンのmhcが動いていました。しかし,FreeBSD 10.3Rのサーバーがいよいよ挙動不審になってきたので新しいサーバーを作って乗り換えざるをえなくなりました。
以前と同じようにアプリケーションをインストールしたのですが,rubyのバージョンが2.3から3.0に上がっていて正しく動作しなくなってしまいました。やむを得ずここに置かれている新しいmhcをもらってきてインストールしたのですが,install and setupに書かれている手順ではまったく太刀打ちできませんでした。これもrubyとemacsのバージョンが新しすぎることが原因のようで,なにをどのようにやったらよいのかまったくわからん,ということになってしまいました。
あれこれやっているうちに動いたのですが,本当にちゃんと動いているのかわかりません。とりあえず,現状での使い方だけメモしておきます。
mhcはこれまではemacsを起動すると常駐するように設定ができましたが,mewとの連携はなくなってしまって,単なるemacs上で動くアプリになってしまいました。そのため,emacs上でmhcを起動するためには,
M-x mhc
とせねばなりません。mhcの画面でのキー操作は昔のバージョンと同じなので困ることはありません。しかし,C-. P sで1ヶ月分の予定をpsファイルに出力するようなコマンドはなくなりました。mhcの画面上で上部のメニューにあるmhcをクリックしてでてくるメニューの一番下のpostscriptからsaveを選ぶとホームディレクトリにpsファイルが出力されます。 マウスを使わない方法は,
M-x mhc-ps-save
とやればよいようです。
mhcの設定ファイルは~/.config/mhc/config.ymlに置かれます。
さらに,スケジュールのファイルフォーマットが大幅に変わりました。古いバージョンはmewといっしょに使うことが前提だったので,~/Mail/schedule/の下に年/月/のディレクトリが作られてそこに予定が保存されていましたが,新しいバージョンでは~/mhc/spool/以下にフラットに全ての予定が保存されます。ファイル名にuuidが使われるため非常に長くて見にくくなりました。古いデータを新しいバージョンに変換するためのスクリプトが提供されています。このスクリプトを適当な場所にコピーして,
./update-uuid.sh ~/Mail/schedule ~/mhc
とすることでファイルを変換してくれます。その後,日本語対応のために,
find . -name '*.mhc' | xargs -n 10 nkf --overwrite
とするように書かれていますが,これをやると文字化けするので何もしないのが私の場合は正解です。
とにかく,結果として膨大なファイルが~/mhc/spool/以下に作成されます。~/mhc/update-uuid.shXXXXXX.logというファイルができるので変換されたかどうか確認できますが,私の場合,1万件以上あるのでもう目をつぶって信じるしかありません。
以前と同じようにアプリケーションをインストールしたのですが,rubyのバージョンが2.3から3.0に上がっていて正しく動作しなくなってしまいました。やむを得ずここに置かれている新しいmhcをもらってきてインストールしたのですが,install and setupに書かれている手順ではまったく太刀打ちできませんでした。これもrubyとemacsのバージョンが新しすぎることが原因のようで,なにをどのようにやったらよいのかまったくわからん,ということになってしまいました。
あれこれやっているうちに動いたのですが,本当にちゃんと動いているのかわかりません。とりあえず,現状での使い方だけメモしておきます。
mhcはこれまではemacsを起動すると常駐するように設定ができましたが,mewとの連携はなくなってしまって,単なるemacs上で動くアプリになってしまいました。そのため,emacs上でmhcを起動するためには,
M-x mhc
とせねばなりません。mhcの画面でのキー操作は昔のバージョンと同じなので困ることはありません。しかし,C-. P sで1ヶ月分の予定をpsファイルに出力するようなコマンドはなくなりました。mhcの画面上で上部のメニューにあるmhcをクリックしてでてくるメニューの一番下のpostscriptからsaveを選ぶとホームディレクトリにpsファイルが出力されます。 マウスを使わない方法は,
M-x mhc-ps-save
とやればよいようです。
mhcの設定ファイルは~/.config/mhc/config.ymlに置かれます。
さらに,スケジュールのファイルフォーマットが大幅に変わりました。古いバージョンはmewといっしょに使うことが前提だったので,~/Mail/schedule/の下に年/月/のディレクトリが作られてそこに予定が保存されていましたが,新しいバージョンでは~/mhc/spool/以下にフラットに全ての予定が保存されます。ファイル名にuuidが使われるため非常に長くて見にくくなりました。古いデータを新しいバージョンに変換するためのスクリプトが提供されています。このスクリプトを適当な場所にコピーして,
./update-uuid.sh ~/Mail/schedule ~/mhc
とすることでファイルを変換してくれます。その後,日本語対応のために,
find . -name '*.mhc' | xargs -n 10 nkf --overwrite
とするように書かれていますが,これをやると文字化けするので何もしないのが私の場合は正解です。
とにかく,結果として膨大なファイルが~/mhc/spool/以下に作成されます。~/mhc/update-uuid.shXXXXXX.logというファイルができるので変換されたかどうか確認できますが,私の場合,1万件以上あるのでもう目をつぶって信じるしかありません。