このブログを検索

2012-02-27

ポップンミュージックをエミュレーターで遊ぶ

ポップンミュージックをやりたいがポップンミュージックはPS3で出ていない
しかしPS2を自宅のディスプレイに表示させるにはケーブルが足りないし
普段使わないPS2を出してくるのは面倒・・・
というわけでPCでPS2ポップンミュージックを遊ぶことを検討してみました。

エミューレーターはpcsx2-5100-windows-x86を使用。
BIOSやPS2ディスクの読み出しは終わったものとします。

まずはポップンミュージックの専コン(しょぼい方)をPCにつなげます。
今回は

を購入してみました。
WindowsVistaまでしか対応していませんが、VistaドライバにてWindows7の64bitマシンで使えています。


まずはドライバCDでドライバをインストール。
次に本体をUSBに挿し、認識したら専コンをつなげる。

Windows7なのでコントロールパネル→デバイストプリンター→ELECOM JC-PS2202U seriesを選択
右クリック→ゲームコントローラーの設定→プロパティ
でドライバの設定画面にいけます。

このままでは右黄ボタンが反応しないため
Remap→UseDirectionButtonasを"Button"に変更します。

こうすることで右黄ボタンが反応するようになります。
うちでは
左白:1、左黄:2・・・とした場合に

PS2専コン:PC認識No
1:1
2:2
3:8
4:3
5:7
6:4
7:6
8:13
9:5
select:10
start:11
となりました。

次にpcsx2の設定→コントローラー→プラグイン設定→Pad1
色々やりかたあるとは思うけど
PS2専コン:pcsx2アサイン
1:L2
2:L1
3:×
4:↑
5:◯
6:→
7:□
8:R1
9:R2
としました。

一部キーが足りてないので追加でキーボードにもアサインを
キー:pcsx2アサイン
←:←
↓:↓




最後にポップンミュージック内でのアサインを
pcsx2アサイン:色アサイン
L2:A
L1:B
△:C
×:C
↑:D
↓:D
←:E
◯:E
→:F
□:G
R1:H
R2:I
としました。


これでPCでポップンミュージック専コンを使ってポップンミュージックが楽しめるようになりました。
ちなみにラグはレベル20程度ではほぼ発生しないようです。


2012-01-26

tsをmp4に変換する(pt2編)

以前、ts->mp4をwindowsで変換する方法を紹介しましたが、
今回はそれをUbuntuで、しかもpt2で録画したあとそのまま変換する方法です。

例によってpt2絡みはシミュレーションにつき、間違いがあったらすみません。
ffmpegの使い方は大丈夫だと思いますが。


変換の流れはこうです。

1. do-record.sh(epgrec)によってpt2が録画を行う
2. do-record.shがそのままffmpegで録画ファイルを変換する

1.で一旦tsファイルが作成されるので、リアルタイムにmp4に変換できるわけではありません。
今回は圧縮率をあまり考慮せず、とにかくそのままmp4へ変換することを主眼においたのですが、ウチの環境で30分番組が変換に2時間以上ってところでしょうか。

録画と変換が同時に走るとあまりよくないかなと思い、時間はあまりかけない方針です。
高性能なマシンであればもっと画質を上げ、圧縮率もあげられると思います。

参考:

ffmpegをインストール
mp4変換にはffmpegを使います。
これについてはmediatombで書いた記事を参照
http://xelalko.blogspot.com/2011/08/ubuntudlna3.html

ffmpegの設定ファイルを作成
ts->m4の変換に使う設定ファイルを作成します。
もともといくつか用意されてあり、それらが
/usr/share/ffmpeg/* に格納されています。
今回は「時間優先」「サイズは30分1G未満であればとりあえず」ということで
一番画質が悪くて速そうなlibx264-fastfirstpass.ffpresetを使います。
※ libx264-lossless_fast.ffpreset も速そうな感じだからまた試そう

高画質なものならhqや下記サイトを参考
http://d.hatena.ne.jp/munepi/20091227/1261941397


カスタマイズする場合は下記サイトなど、色々検索しないと情報見つからない・・・
http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7ffmpeg%2F%A5%D3%A5%C7%A5%AA%A5%AA%A5%D7%A5%B7%A5%E7%A5%F3
http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7ffmpeg%2F%B9%E2%C5%D9%A4%CA%A5%AA%A5%D7%A5%B7%A5%E7%A5%F3

ts->mp4スクリプトを作成
ffmpegを呼び出して変換を行うスクリプトを作成します。
変換には引数が多いのでほぼ必須。
$ sudo touch /usr/local/bin/ts2mp4.sh
$ sudo vim /usr/local/bin/ts2mp4.sh
$ sudo chmod 755 /usr/local/bin/ts2mp4.sh
中身は次のとおりにする
#!/bin/bash

TS=$1 
FFPRESET=/usr/share/ffmpeg/libx264-fastfirstpass.ffpreset
#FFPRESET=/usr/share/ffmpeg/libx264-hq.ffpreset
#FFPRESET=/usr/share/ffmpeg/libx264-hq-ts.ffpreset
#FFPRESET=/usr/share/ffmpeg/libx264-lossless_fast.ffpreset

#RESIZE=1440x1080
#RESIZE=960x540
#RESIZE=720x480
RESIZE=512x288
ASPECT=16:9
#ASPECT=3:2

FILEDIR=${TS%/*}
FILENAME=${TS##*/}
FILENAMEBODY=${FILENAME%.*}
FILENAMEEXTENTION=${FILENAME##*.}

#BASE=$(basename ${TS} .ts)
#[ "${FILENAMEBODY}.ts" = "${FILENAME}" ] || exit 1

#CPU_CORES=0
CPU_CORES=$(/usr/bin/getconf _NPROCESSORS_ONLN)

X264_HIGH_HDTV="-f mp4 -vcodec libx264 \
    -vpre ${FFPRESET} -flags +ilme+ildct -top -1 \
    -r 30000/1001 -aspect ${ASPECT} -s ${RESIZE} -bufsize 20000k -maxrate 25000k \
    -acodec libfaac -ac 2 -ar 48000 -ab 128k -threads ${CPU_CORES} \
    -cqp 25 -vsync 1"

ffmpeg -y -i $TS ${X264_HIGH_HDTV} ${FILEDIR}/${FILENAMEBODY}.mp4

exit
あんまりよくわかってないのですが、とりあえずこれで使えています。
bashスクリプトのチェック
$ /bin/bash -n ts2mp4.sh
場合によってはUTF8にしたらエラーがなくなったケースもあります

試しに変換してみる
$ ts4mp4.sh ~/test.ts
これで~/test.mp4ができているはず。ちゃんと再生できるかも要チェック。

ffmpeg引数の-sと-aspectについては
http://aquaspread.g.ribbon.to/index.phpの映像サイズ(アスペクト比)という欄の数値を入れればよさそう?
とりあえずKindle Fireでうまく表示できる設定で示します。
Kindle FIreとGOM Playerが同じみたい。
VLCは違うっぽい?VLCの時だけ手動でアスペクト比を調整して下さい。


do-record.shを複数録画モード対応にする
do-record.shをカスタマイズし、通常のTS録画以外に圧縮録画モードを追加します。
今回は更に圧縮&録画フォルダ変更モードも追加します。
※録画一覧からの録画ファイル削除には恐らく対応しません

$ sudo vim /var/www/epgrec/do-record.sh
中身を次のようにする

#!/bin/bash
# $ OUTPUT=test.ts CHANNEL=22 DURATION=30 TUNER=0 MODE=0 TYPE=GR /var/www/epgrec/do-record.sh
# define tools
RECORDER=/usr/local/bin/recpt1
B25=/usr/local/bin/b25
TS2MP4=/usr/local/bin/ts2mp4.sh
# echo arguments
echo "CHANNEL : $CHANNEL"
echo "DURATION: $DURATION"
echo "OUTPUT  : $OUTPUT"
echo "TUNER : $TUNER"
echo "TYPE : $TYPE"
echo "MODE : $MODE"
# check path
RECDIR=${OUTPUT%/*}
RECNAME=${OUTPUT##*/}
RECNAMEB=${RECNAME%.*}
RECNAMEE=${RECNAME##*.}
# fix directory
if [ "${RECDIR}" = "${RECNAME}" ]; then
    RECDIR=`pwd`
    OUTPUT=${RECDIR}/${RECNAME}
fi
# set recording directory of each mode
OUTPUTDIR0=${RECDIR}
OUTPUTDIR1=${RECDIR}
OUTPUTDIR2=/var/www/epgrec/video/mode2
#    case ${TYPE} in
#        BS)
#        ;;
#        GR)
#        ;;
#    esac
## do-record [output]
do-record ()
{
    local output=$1
    $RECORDER --b25 --strip $CHANNEL $DURATION --sid hd "${output}" >/dev/null 2>&1
    return 0
}
## move-file [beforepath] [afterpath]
move-file ()
{
    local beforepath=$1
    local afterpath=$2
    mv "${beforepath}" "${afterpath}"
    echo "${afterpath}"
    return 0
}
## conv-mp4 [ts2path]
conv-mp4(){
    local ts2=$1
    local ts2path=${ts2%/*}
    local ts2name=${ts2##*/}
    local ts2nameb=${ts2name%.*}
    local mp4="${ts2path}/${ts2nameb}.mp4"
    "${TS2MP4}" "${ts2}" >/dev/null 2>&1
#    if [ -s "${mp4}" ]; then
#        rm "${ts2}"
#    else
#        # failed to convert mp4
#    fi
    echo "${mp4}"
    return 0
}
## main
case ${MODE} in
    0)
        $RECORDER --b25 --strip $CHANNEL $DURATION "${OUTPUT}" >/dev/null 2>&1
    ;;
    1)
        do-record "${OUTPUT}"
    ;;
    2)
        do-record "${OUTPUT}"
#        OUTPUT=`move-file "${OUTPUT}" "${OUTPUTDIR1}/${RECNAME}"`
        OUTPUT="${OUTPUTDIR1}/${RECNAME}"
        OUTPUT=`conv-mp4 "${OUTPUT}"`
        ;;
    3)
        do-record "${OUTPUT}"
        OUTPUT=`move-file "${OUTPUT}" "${OUTPUTDIR2}/${RECNAME}"`
        OUTPUT=`conv-mp4 "${OUTPUT}"`
        ;;
esac

MODE=0は今まで通りTS録画(epgrecとして必須)、MODE=1はHDのみ録画、MODE=2はmp4録画、MODE=3はディレクトリ移動した上でmp4録画。
mp4録画モードは変換後にtsを消してもいいけど、今回は残してある。
※ffmpegは本当に毎回変換できるのか心配・・・

試しに動作させてみる

$ mkdir /var/www/epgrec/video/mode2
※パーミッションはvideoと同じにする
$ OUTPUT=test_0.ts CHANNEL=22 DURATION=5 TUNER=0 MODE=0 TYPE=GR /var/www/epgrec/do-record.sh
$ OUTPUT=test_1.ts CHANNEL=22 DURATION=5 TUNER=0 MODE=1 TYPE=GR /var/www/epgrec/do-record.sh
$ OUTPUT=test_2.ts CHANNEL=22 DURATION=5 TUNER=0 MODE=2 TYPE=GR /var/www/epgrec/do-record.sh
$ OUTPUT=test_2.ts CHANNEL=22 DURATION=5 TUNER=0 MODE=3 TYPE=GR /var/www/epgrec/do-record.sh

これで3つのtsと2つのmp4が作成されるはず。


epgrecのモードを増やす
$ sudo vim /var/www/epgrec/config.php
$RECORD_MODE = array(
というところを次のようにする

$RECORD_MODE = array(
        // ※ 0は必須で、変更不可です。
0 => array(
        'name' => 'Full TS',
        'suffix' => '.ts',
),
1 => array(
        'name' => 'hd only',
        'suffix' => '.ts',
),
2 => array(
        'name' => 'mode 2',
        'suffix' => '.ts',
),
3 => array(
        'name' => 'mode 3',
        'suffix' => '.ts',
),
);

念の為apache再起動
$ sudo /etc/init.d/apache2 restart

以上で設定完了。
epgrecで選択できるモードが増え、mp4変換ができるようになっているはず。
うまくいかない場合はパーミッションの問題が多いかも。
shの最初を
#!/bin/bash -x
にしてデバッグモードにしてみたり、 >>を使ってログを吐いたりしてみて確認しましょう。


ちなみにいくつかのffpresetをtsファイルを用意して試してみました。
hq-tsは先に紹介したサイトのffpresetです。

元データ 約30分のアニメ.ts 2.72G

解像度720x480
fastpass 変換時間2:30 変換後455M
hq 変換時間4:00 変換後364M
hq-ts 変換時間3:40 変換後282M


解像度512x288
fastpass 変換時間2:10 変換後261M
hq 変換時間2:40 変換後215M
hq-ts 変換時間2:30 変換後165M


画質についてははっきり言って誤差の範囲でした。
サイズでいうと時間15%増しで40%くらい下がるみたいだから場合によってはいいかも。
とりあえずはfastpassでhq-tsも視野にってかんじで。

問題は、mp4変換中に他番組の録画が来たら負荷がすごそうだということ。場合によっては3,4番組のmp4変換が重なるかも。他の人だと順に処理するような仕組み作ってる人もいるので、後日取り入れてみるかな・・・。

(2012/1/29追記)
do-record.shやconfig.phpについて、mode=0でsidフラグを指定してはいけないらしいので修正。
番組情報が取得できなくなっていた。。。

2012-01-22

Downloadhelper をひまわり動画に対応させる

FirefoxのAddinである Downloadhelper ですが、
今まで「ひまわり動画」というサイトでスマートネーミング機能が働いていたのに、
Firefoxを1から再インストールしたら動作しなくなってしまいました。
なんとか復旧できたのでメモしておきます。

ちなみに現在のDownloadhelperのバージョンは4.9.8です。

下記設定ファイルをテキストエディタで開きます。
C:\Users\music\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\dh-smart-names.rdf
※バックアップしておいたほうがいいでしょう

まずはhimado.inに関する情報を探します。
全部で4箇所ありました。 場所は都度変わっている気配なので行数はメモしていません。

1
    <RDF:li RDF:resource="http://downloadhelper.net/1.0#himado.in/name"/>

2
    <RDF:li RDF:resource="http://downloadhelper.net/1.0#himado.in/descr"/>

3
  <RDF:Seq RDF:about="http://downloadhelper.net/1.0#himado.in/name">
  </RDF:Seq>
  <RDF:Description RDF:about="http://downloadhelper.net/1.0#himado.in/name"
                   NS1:domain="himado.in"
                   NS1:mode="name"
                   NS1:xpath="/html[1]/body[1]/div[1]/div[2]/div[1]/h2[1]/text()[1]"
                   NS1:regexp=".*" />

4
   <RDF:Seq RDF:about="http://downloadhelper.net/1.0#himado.in/descr">
  </RDF:Seq>
  <RDF:Description RDF:about="http://downloadhelper.net/1.0#himado.in/descr"
                   NS1:domain="himado.in"
                   NS1:mode="descr"
                   NS1:xpath="/html[1]/body[1]/div[1]/div[2]/div[1]/h2[1]/text()[1]"
                   NS1:regexp=".*" />

このうち3番を下記と入れ替えます。
  <RDF:Seq RDF:about="http://downloadhelper.net/1.0#himado.in/name">
  </RDF:Seq>
  <RDF:Description RDF:about="http://downloadhelper.net/1.0#himado.in/name"
                   NS1:domain="himado.in"
                   NS1:mode="name"
                   NS1:regexp=".*"
                   NS1:xpath="/html/head/title"
                   NS1:local="1"
                   NS1:stat-nkeep="0"
                   NS1:stat-keep="1"
                   NS1:stat-xpfound="7" />
これで念のためFirefoxを再起動してひまわり動画で動画を表示すると自動ファイル名機能が働いていました。良かった。
profileのバックアップから情報を拾ってきただけなので、意味とかはわかっていませんので自己責任でお願いします。

2012-01-21

Western Digital WD20EARSRのInteliPart問題対応


最近知ったけど、今使っているWestern Digital WD20EARSRには
InteliPartという独自機能があって、これは8秒間ディスクアクセスがなかったときに
ヘッダを自動退避させる省電力機能らしい。
実態はよくわかっていないが、一般に省電力機能はHDDにダメージがある。

参考:


まずは現状を把握してみる
$ sudo apt-get update
$ sudo apt-get install smartmontools
$ sudo smartctl -a /dev/sda | grep Load_Cycle_Count

193 Load_Cycle_Count        0x0032   001   001   000    Old_age   Always       -       1031338
この一番右の数値がヘッダの退避回数らしい
このマシンを組んだのがだいたい2010/8/29くらいで、今が2012/1/21。
だいたい1.5年だとして365*1.5=548日、1031338/548で、一日1882回くらいヘッダ退避していることに・・・w

このInteliParkの設定を変更できるツールがWestern Digitalで公開されている。
wdidle3.exeをダウンロードする。
※自己責任で、しかも動作が不安定らしいので要注意

メーカーではもう公開されていないという情報もあり
一応別会社の公開ページも載せておく
※非メーカーサイトなのでより自己責任で

現在WDで公開中が1.05で、後者が1.03だった。

wdidle3は接続されているHDD全てに設定を施すらしい。
設定しないHDDがUbuntu側にあれば外しておいた方がいいかも。
※対応したHDD以外は適用外だったと思うので多分大丈夫だが

次にこのwdidle3.exeをUbuntuに載せているマシンで実行するため
FreeDOSをダウンロードする。
で、このFreeDOSをUSBメモリに入れるためにUNetbootinをWindows上でダウンロードする。
→今回の手順だとUSBメモリが必要

UNetbootin
※Linux用もある

UNetbootinを起動する
ディストリビューションを選択する: FreeDOS 1.0
タイプ: USBドライブ
ドライブ:※USBドライブのドライブ
そしてOK→終了 ※再起動はダメ

このUSBにwdidle3.exeを入れ、Ubuntuマシンに挿してUbuntu再起動
$ sudo shutdown -r now
※USB起動するようにBIOSメニューやブートメニューで調整すること

UNetbooinメニューが表示されるのでDefaultを選択。
次にFreeDOSメニューが表示されるので3. FreeDOS Live CD with HIMEM + EMM386 を選択。
A:/>と表示されたらFreeDOS起動。

USBメモリに入れたwdidle3.exeはBドライブに入っているので
> B:
※英語キーボードになっていた、この場合はshift+;で:になる

まずは現状確認
> wdidle3.exe /r
※フォルダ移動などでチルダが必要な場合はshift+半角
今回は2台のHDDが接続してあり
Model: WDC WD20EARS-00MVWB0
Serial: WD-WMA・・・
Idle3 Time is enabled and set to 8.000 seconds.
という表記が2台分ありました。

次にInteliParkを解除する
> wdidle3.exe /d
Model:・・・
Serial:・・・
Idle3 Time is disabled.
という表記が2台分表示された。

最後に現状確認
> wdidle3.exe /r
Model:・・・
Serial:・・・
Idle3 Time is disabled.
という表記が2台分表示された。
これで良さそう。
USBドライブを抜いて電源ボタンで強制終了→再起動。
※再起動コマンドがわからなかった

Ubuntuに戻り、先ほどのsmartctlコマンドを実行し退避回数を確認。
しばらくしてから再実行して増えないことを確認する。

pt2ドライバのバージョンアップ

(20120808追記)
最新版インストール方法を更新しました
こちら→12.04でpt2再インストール(httpサーバー版に変更)

以前pt2を紹介した時、どうやらかなり古いドライバをインストールする手順だったようです。
バージョンアップする場合の手順をまとめてみました。

参考:
http://baalzephon.dyndns.org/tech/index.php?Linux%2F%E3%83%86%E3%83%AC%E3%83%93%E9%96%A2%E9%80%A3%2FPT2
http://d.hatena.ne.jp/sona-zip/20110201/p1
http://linux900.blog.fc2.com/blog-entry-32.html

pt2ドライバはもともと改造版(pt1.oyama)というものがあったようですが、
たぶん今は正式側に統合されている・・・?
更に、以前はOoops問題やKernel2.6.36対応がパッチとして公開されていたようですが、
それも統合されている・・・?
というわけで、今回も正式版をターゲットに手順を。

※あくまで想定手順でうまくいかないかもしれないので注意

すでにインストール済みのものを削除
$ rmmod /lib/modules/`uname -r`/kernel/drivers/video/pt1_drv.ko

Ubuntu10.10以降へ上げている場合は(?)
そのままだとchardev版ではなくdvb版のドライバがロードされてしまうらしい
$ sudo vim /etc/modprobe.d/blacklist.conf
最後の行に
blacklist earth-pt1
を追記すればDVB版ドライバはロードされなくなるらしい


最新版ダウンロード
pt1とrecpt1のソースをダウンロードしてくる
$ cd
$ hg clone http://hg.honeyplanet.jp/pt1/ PT2

pt1の導入
$ cd ~/PT2/driver
$ make
$ sudo make install

ドライバロード
$ sudo modprobe pt1_drv

※もしかしたら再起動した方がいいかも?

recpt1の導入
$ cd ~/PT2/recpt1
$ sh autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install

動作確認
$ recpt1 --b25 --strip --device /dev/pt1video2 25 30 ~/pt2/ch25.ts

さらに、メインの放送だけを録画する新機能の確認
$ recpt1 --b25 --strip --device /dev/pt1video2 --sid hd 25 30 ~/pt2/ch25.ts

※これでワンセグデータ等を除去できるらしい

あとは/epgrec/do-record.shでrecpt1の呼び出し部分に --sid hd を記入すれば、
普段の録画でも新機能が使えるはず。






2重シールド5C同軸ケーブル S5CFB(C)BK
2重シールド5C同軸ケーブル S5CFB(C)BK
価格:105円(税込、送料別)

2012-01-08

Amazon Kindle For Androidの辞書を英辞郎にする

CM7化したKFではAndroid用Kindleを使っているのですが
ルックアップ辞書に英辞郎が入れられなくて困っていました。
非公式な方法で入れられたので紹介します。

概要としては英辞郎(eijiro131k.mobi)にパッチを当てたものを標準辞書と入れ替えます。

参考:
http://mocobeta.tumblr.com/page/2

1. 英辞郎(eijiro131k.mobi)を購入する
2. http://www22.atwiki.jp/how2kindle/pages/13.htmlの"Ver.131用 eijiro131k2us.exe のダウンロード"からパッチをダウンロードする
3. (2)でダウンロードしたパッチを(1)でダウンロードしたファイルに上書き適用する。わかりやすいようeijiro131k2us.mobiとでもRenameする
4. (念の為)Kindle for Androidで洋書を開き、単語を長タップしてルックアップし、Downloadボタンで辞書をダウンロードする。
5. (念の為)KFをUSBで繋ぎ、"Android/data/com.amazon.kindle/files"を開き、"B003ODIZL6_EBOK.prc"と"B003ODIZL6_EBOK.mbp"を削除する。(念の為.oldつきでRenameにとどめた)
6.  eijiro131k2us.mobiを"Android/data/com.amazon.kindle/files"に入れる
7. (念の為)Kindle for Androidが起動しているなら終了する
8. Kindle for Androidで洋単語を長タップする


以上で日本語辞書が使えるようになりました。
KTと違い熟語辞書が使えないようですが、まぁないよりは全然マシということで。

UbuntuファイルサーバーのRAIDにエラーが・・・

ある日メールがきました

タイトル
Fail event on /dev/md0:XXXX

本文

This is an automatically generated mail message from mdadm
running on XXXX

A Fail event had been detected on md device /dev/md0.

It could be related to component device /dev/sdb4.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb4[2](F) sda4[0]
      1926248384 blocks [2/1] [U_]
      
unused devices: <none>
どういうことだってばよ・・・
状況を確認してみました 
$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90
  Creation Time : Sat Aug 28 15:36:43 2010
     Raid Level : raid1
     Array Size : 1926248384 (1837.01 GiB 1972.48 GB)
  Used Dev Size : 1926248384 (1837.01 GiB 1972.48 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Sun Jan  8 20:51:23 2012
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           UUID : ce836218:f86924b6:5c2ef4e7:4e679ae8 (local to host XXXX)
         Events : 0.13614

    Number   Major   Minor   RaidDevice State
       0       8        4        0      active sync   /dev/sda4
       1       0        0        1      removed

       2       8       20        -      faulty spare   /dev/sdb4

どうやらsbd4の方がダメなようです。
次の休みに調べてみるかなぁ。
どうすればいいんだろう。raidを解除してフォーマットしてみる・・・?

(20120117追記)
マシン再起動したら直ったようで・・・
$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90
  Creation Time : Sat Aug 28 15:36:43 2010
     Raid Level : raid1
     Array Size : 1926248384 (1837.01 GiB 1972.48 GB)
  Used Dev Size : 1926248384 (1837.01 GiB 1972.48 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Tue Jan 17 17:14:15 2012
          State : clean, degraded, recovering
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1

 Rebuild Status : 7% complete

           UUID : ce836218:f86924b6:5c2ef4e7:4e679ae8 (local to host XXXX)
         Events : 0.36952

    Number   Major   Minor   RaidDevice State
       0       8        4        0      active sync   /dev/sda4
       2       8       20        1      spare rebuilding   /dev/sdb4