続・まんべくんのツイッターが中止になった件について

長万部の公式キャラクターであるまんべくんのツイッターが中止されたという話をこの間書いた
でまあ、そのときは割とまあ同情する部分もあった。
まあツイッターの中止は仕方ないとは思ったし、それが適切だとも思ったけど。
んだけど、その後の様子を見ているとどうも同情の余地が無いというか、なめ腐ってるというか。
状況を書いておくことにした。

続きを読む 続・まんべくんのツイッターが中止になった件について

ext3からext4への変換の仕方

てっきり書いてたものかと思ったけど書いてなかったから書いておく。
ネタもとはkernel.orgのExt4 Howto

まず、ext2からext3へはこう。

# tune2fs -j /dev/DEV

ext3からext4はこう。

# tune2fs -O extents,uninit_bg,dir_index /dev/DEV

この時点でext3でのマウントはできなくなる。
ext4のフィーチャーを有効にしたら、fsckを走らせること。

# e2fsck -fDC0 /dev/DEV

まあ要するに、ext3はext2にジャーナルがついたようなもんで、ext4はext3に特定のフィーチャーがついたようなもんだと。

カーネルのバージョンによっては拡張オプションを指定しないといけない。

# tune2fs -E test_fs /dev/DEV

マウントするときのファイルシステムの形式はext4dev。
ext4ファイルシステムが開発途中だったころのカーネルバージョンでのことなので、最近はまあ平気だろうけど。

ちなみにtune2fs -lやdumpe2fsでそのパーティションについているフィーチャーを確認できる。

まんべくんのツイッターが中止になった件について

まんべくんってなに?って簡単に説明すると長万部の公式キャラクターでツイッターで毒吐くゆるキャラとして人気だったやつ。
自分もフォローしてて、実際に会いに行ったこともある

が、そのまんべくんのツイッターでの活動が中止された。
簡単に言えば日本の戦争は侵略戦争だったっていってクレームが殺到した。
詳しくはこっち
Togetterもあった

続きを読む まんべくんのツイッターが中止になった件について

論理ボリュームを別物理ボリュームへ移す方法

LVMで実データの配置は基本的に自動で行われる。
そこで特定のLVを別のPVへ移動させたい場合に使える方法。
つまりLV単位でのPEの移動方法。
ミラーリングの再構築について調べているときに気づいた。
ちなみに特定のPV上の全PEをほかのPVに移動させたい場合(ディスクを交換したい時なんか)はpvmoveを使う。

で、手順。

  1. ミラーリング機能を利用してLVのコピーとしてのミラーイメージを移したいPVに作る
  2. コピー元のミラーイメージを削除

とまあ単純な方法。
lvmoveってないからたぶんこういう方法をとらないといけないんだと思う。
で、PV /dev/sda1と/dev/sdb1で構成されるVG vol上のLV logを、sda1からsdb1へ移動させるケースを例としてあげる。

# lvconvert -m1 –alloc anywhere /dev/vol/log /dev/sdb1
# lvconvert -m0 /dev/vol/log /dev/sda1

とまあこんな感じ。
やり方に気づいただけで実際には試していないけど。

LVMでのミラーリング再構築

LVMでのミラーリング状況を確認してみたらおかしなことが起きていることに気づいた。

# lvs -a -o +devices
  LV                VG     Attr   LSize   Origin Snap%  Move Log         Copy%  Convert Devices
  debian            ms09   mwi-ao 512.00g                    debian_mlog 100.00         debian_mimage_0(0),debian_mimage_1(0)
  [debian_mimage_0] ms09   iwi-ao 512.00g                                               /dev/sda2(8704)
  [debian_mimage_1] ms09   iwi-ao 512.00g                                               /dev/sda2(148992)
  [debian_mlog]     ms09   lwa-ao   4.00m                                               /dev/sdb2(1)
  ms09              ms09   mwi-ao  32.00g                                100.00         ms09_mimage_0(0),ms09_mimage_1(0)
  [ms09_mimage_0]   ms09   iwi-ao  32.00g                                               /dev/sda2(0)
  [ms09_mimage_1]   ms09   iwi-ao  32.00g                                               /dev/sda2(140800)

ミラーイメージが両方sda2で同一物理ディスクに存在する。
どう考えても意味がありません本当にありがとうございます。

とりあえず、ミラーリングを解除するのは lvconvert で -m0 すればいいだけなようだ。

# lvconvert -m0 –alloc anywhere /dev/ms09/ms09
# lvconvert -m0 –alloc anywhere /dev/ms09/debian

これでミラーリングは解除できた。
たぶん –alloc anywhere はいらない。
んで。
とりあえず、もっかいミラーリングしてみようかということで、試しにミラーリングしてみる。

# lvconvert -m1 –alloc anywhere /dev/ms09/ms09
# lvs -a -o +devices
  LV              VG     Attr   LSize   Origin Snap%  Move Log       Copy%  Convert Devices
  ms09            ms09   mwi-ao  32.00g                    ms09_mlog 100.00         ms09_mimage_0(0),ms09_mimage_1(0)
  [ms09_mimage_0] ms09   iwi-ao  32.00g                                             /dev/sda2(0)
  [ms09_mimage_1] ms09   iwi-ao  32.00g                                             /dev/sda2(311296)
  [ms09_mlog]     ms09   lwa-ao   4.00m                                             /dev/sda2(140800)

なめっく。
ミラーイメージがなんで両方ともsda2にあるんだ。
ミラーする先のディスクの指定方法はないのかということで調べてみる。
あった。
ということでまたミラー解除してミラーしなおすことに。

# lvconvert -m0 --alloc anywhere /dev/ms09/ms09
# lvs -a -o +devices
  LV         VG     Attr   LSize   Origin Snap%  Move Log Copy%  Convert Devices
  ms09       ms09   -wi-ao  32.00g                                       /dev/sda2(0)

VG ms09はPV /dev/sda2と/dev/sdb2で構成されているので、ミラーイメージはsda2とsdb2の両方に置きたい。
元々がsda2にあるので、新規ミラーイメージの作成先を指定。
指定って言っても最後にPVを指定するだけだった。

# lvconvert -m1 --alloc anywhere /dev/ms09/ms09 /dev/sdb2
# lvs -a -o +devices
  LV              VG     Attr   LSize   Origin Snap%  Move Log       Copy%  Convert Devices
  ms09            ms09   mwi-ao  32.00g                    ms09_mlog 100.00         ms09_mimage_0(0),ms09_mimage_1(0)
  [ms09_mimage_0] ms09   iwi-ao  32.00g                                             /dev/sda2(0)
  [ms09_mimage_1] ms09   iwi-ao  32.00g                                             /dev/sdb2(0)
  [ms09_mlog]     ms09   lwa-ao   4.00m                                             /dev/sdb2(8192)

ようやく意図通り別の物理ディスクにミラーイメージを作成することができた。
同じ要領でミラーリングしておきたいパーティションをミラーリングして、と。

にしても未だにミラーログが何のための存在なのかわかってない。

HDDがまた壊れた

WD15EADS。
またウェスタンデジタル。
もう死ね。
氏ねじゃなくて死ね。

とりあえずLVM構築してるけど論理ボリュームがいつの間にか死んでる。
LV Status NOT Available。

# lvchange -ay fileserver
/dev/dm-7: read failed after 0 of 4096 at 0: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4288528973824: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4288529031168: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4096: 入力/出力エラーです
Refusing activation of partial LV fssystem. Use –partial to override.

あからさまにI/Oエラー吐いてる上に論理ボリュームがアクティブにならない。
なんか–partialつかえっていうから使ってみる。

# lvchange -ay fileserver –partial
Partial mode. Incomplete volume groups will be activated read-only.
/dev/dm-7: read failed after 0 of 4096 at 0: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4288528973824: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4288529031168: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4096: 入力/出力エラーです
# lvdisplay
/dev/dm-7: read failed after 0 of 4096 at 0: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4288528973824: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4288529031168: 入力/出力エラーです
/dev/dm-7: read failed after 0 of 4096 at 4096: 入力/出力エラーです

— Logical volume —
LV Name                /dev/fileserver/fssystem
VG Name                fileserver
LV UUID                17g2cv-fsNf-dEoL-jAgQ-d3SV-eBOV-2hiUX2
LV Write Access        read/write
LV Status              available
# open                 0
LV Size                100.00 GiB
Current LE             25600
Segments               1
Allocation             inherit
Read ahead sectors     auto
– currently set to     256
Block device           254:20

–partialがなんなのかよくわからんし調べてないけど、とりあえず復活したっぽい。
とりあえずsmartをみるとLVを構成しているディスクの一本に不良セクタが見られるし、なんかみるからにI/Oエラー発生しているし、どう考えてもとっととバックアップとってディスクを引っこ抜いた方が幸せになれそう。
ということでバックアップ先の論理ボリュームをlvcreateしてmke2fsしてmountして。
なんか奇跡的(?)に復活させられたバックアップ元のパーティションをmountしてcp。

とりあえずxenでバックアップしたのをディスクに指定して起動できたので、たぶん大丈夫だろう。
ってか駄目だったならもうどうしようもないしー。

ということでもう数年間はWDのHDDは買わない。

ブログの更新をツイッターで自動通知する方法

なんかないかなーって思って調べてみたらいくつかある。

まず最初に試してみたのは twitterfeed。
次にfriendfeed。
そしてtwitbackr。

twitterfeedとfriendfeedは定期的にRSSチェックしにいって更新されていればツイートするというもの。
ツイートする内容は基本的にタイトルとURLなんだけども、twitterfeedの方はプレフィクスやポストフィクス、内容の表示なんかも設定できる。
ただし、RSS巡回型なのでブログを更新してもすぐにツイートされることはあまりなく、数時間ずれることも多々。
自分の場合はツイートさえされなくなったのでやめた。

twitbackrはブログ側から更新pingを送信するので、ツイートされるまでの間隔は短い。
ただし、タイトルとURLだけがツイートされる形式なので、記事のタイトルによってはブログの更新なのかわかりづらい。

そこで辿り着いたのがWordPressのプラグインのtweetable。
もちろんこれはWordPressのプラグインなので、WordPressユーザじゃなければ使えない。
で、これはツイッターとアプリケーション連携しているので、記事の投稿からツイートまでの間隔が短い。
ポストフィクスの設定や内容の表示なんかはできないけど、プレフィクスの設定はできる。
ブログのサイドバー用の、ツイート表示ウィジェットもついている。
ただし、初期設定はやや煩雑。
こちらのサイトを参考にしてもらえればわかると思う。
機能的にはこのくらいできればいいな、と思い、試してみる。

が、初期設定のstep4でつまづいた。
ツイッターへのサインインを促すようにでるはずが、出てこない。
Apacheのログを調べたら以下のようなエラー出力。

[Tue Aug 09 17:00:43 2011] [error] [client 192.168.1.10] PHP Fatal error:  Call to undefined function curl_init() in /xxxxx/plugins/tweetable/mh_twitter_class.php on line 325, referer: http://yyyyy/options-general.php
[Tue Aug 09 17:00:43 2011] [error] [client 192.168.1.10] PHP Fatal error:  Call to undefined function curl_init() in /xxxxx/plugins/tweetable/OAuth/twitterOAuth.php on line 126, referer: http://yyyyy/options-general.php

どうもcurlというライブラリを使おうとしてるんだけども、見つからなくてこけているようだった。
ということで

# aptitude install php5-curl

してapacheを再起動。
いけた。
後は設定しておしまい。
当分これでいければいいなー。

追記
短縮URLをbit.lyにしたんだけど、自動ツイートに投稿へのURLが含まれなかった。
tweetableでbit.lyを使うにはbit.lyにアカウントを作成して、そのアカウントIDとAPIキーを設定する必要がある。
その辺の設定もしていたんだけど、コピペをみすっていたのか失敗していた模様。
APIキーをリセットして再設定したらうまくいった。

firefoxで2chに書き込めない

長らくfirefoxで2ch書き込めないで居た。
てっきり規制かと思ってた。
というのも、自分は今dion軍。
しょっちゅう規制に引っかかる。

にしても、書き込めた試しがないくらい書き込めない。
そんな中、あるスレでdion軍が書き込んでいるのを見た。
そこで、今なら書けるんじゃないか、と思って書き込もうとした。
が、エラー。
ブラウザはfirefox 5.0、アドオンのchaikaを使って書き込もうとしていた。
エラー内容は

現在、荒らし対策でクッキーを設定していないと書きこみできないようにしています。
(cookieを設定するとこの画面はでなくなります。)

といった感じ。
クッキーは受け入れる設定になってるんだけどなー、とおもい、一回クッキーを削除してみるもうまく行かない。
オプションのプライバシー→履歴のところを「記憶させる履歴を詳細設定する」にして、「自動的にプライベートブラウジングモードで firefox を起動する」にチェックを入れてみて試したものの、やはりうまくいかない。
そこで、一回firefoxを再起動して試してみたら、前回までのセッションがぶっ飛んでた。
で、履歴の設定のところを見てみたら、「履歴を一切記憶させない」になってた。
え?みすった?とか思って設定し直すも、やっぱり記憶させない設定になる。
どうもバグらしい。
firefox自体のバグなのかなんかのアドオンの関係なのかはよくわからない。

でまあ、セッションがぶっ飛んだのは仕方ないとあきらめて、履歴を記憶させるように設定し直した。
これはうまくいった。
で、2chにいって書き込みテストスレで書き込んでみた。
書けた。

つまり、流れとしては以下の通り。

オプション→プライバシー→履歴で、「履歴を一切記憶させない」に設定
firefox再起動
オプション→プライバシー→履歴で、「履歴を記憶させる」に設定

これで自分と同じ原因だったら書き込みができるようになる。かもしれない。