わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

Ubuntuも入れ直し

昨日の続き,というわけではないのですが,Subversionや各種実験用Webアプリケーションのサーバにしているマシンについて,仕事の合間に7.10から8.04にアップグレードしようとしたところ,エラーが出て,無理に再起動をすると「Kernel Panic」となりました.にっちもさっちもいかなくなったので,インストールをやり直しました.

パーティション

あらかじめ,/home, /opt, /var/spool を別のパーティションにしていたので,/ (ルート)のみをクリーンインストールしました.
インストール時に,パーティションは手動で設定・指示します./var/spool へのマウントはこの段階ではできませんでした.

バックアップとリストア

入れ直しの前に,/etc 全体と,Subversionリポジトリのバックアップをとりました.
まず,LivrCDで起動して,HDDのパーティションをマウントして,所在を確認します.
念のため別のHDDにコピーしましたが,/opt (にマウントされるパーティション)にディレクトリを作ってコピーすればよかったのでした.
上述の /var/spool へのマウントは,バックアップでとった /etc/fstab から, /var/spool を含む行を取り出し,新しい /etc/fstab に貼り付けるだけで,いけました.

メール受信

メールサーバは,postfixをインストールしますが,受信設定ができていないときに受信してもうれしくないので,すぐに /etc/init.d/postfix stop を実行します.
受信には,前と同じく,Cyrus IMAP serverを使います(cyrus-imapd-2.2).
http://hk-tech.homeip.net/pcserver/imap4.htmlを参考にしながら,せっていしたものの,

cyradm -user cyrus localhost

を実行しても,接続できず,すぐ終了します.

cyradm -user cyrus

としてプロンプトを出して,login としても,エラーです.
長いこと悩みましたが,これは,/var/spool/cyrus の所有者がおかしかったからでした.

chwon -R cyrus.mail /var/spool/cyrus

を実行して,念のため

/etc/init.d/cyrus2.2 restart

とすると,つながるようになりました.

メールボックス

しかし,まだメールボックスを見ることができず,今のCyrusが,それまでのディレクトリやメールファイルを認識できるようにしないといけません.
まずはrootで

find /var/spool/cyrus/mail/t/user/takehiko -type d

を実行して,メールボックスに相当するディレクトリを確認しておきます.
次に一般ユーザでもrootでもいいのですが,

cyradm -user cyrus localhost

として,プロンプトが出たら,以下のコマンドを投入していきます.

cm user.takehiko
reconstruct user.takehiko
cm user.takehiko.Sent
reconstruct user.takehiko.Sent
cm user.takehiko.Drafts
reconstruct user.takehiko.Drafts
cm user.takehiko.Trash
reconstruct user.takehiko.Trash
cm user.takehiko.Junk
reconstruct user.takehiko.Junk
(以下略)

Sent,Drafts,Trash,Junkは,Thunderbirdではそれぞれ,送信済み,下書き,ごみ箱,迷惑メールに対応します.
上のfindコマンドでは,「(cyrusのパス)/mail/(ユーザ名の頭文字)/user/(ユーザ名)」を起点として,サブディレクトリを求めています.各サブディレクトリ名について,

  • 「(cyrusのパス)/mail/(ユーザ名の頭文字)/」を削除して
  • 「/」をすべて「.」に置き換えた文字列

が,cyradmの中のメールボックス名になります.「user.(ユーザ名)」も忘れないように.