スキップしてメイン コンテンツに移動

投稿

2011の投稿を表示しています

ブラウザ別のQTって何者?

久しぶりにブログ書いてみたついでに、統計情報みてみたらブラウザ別のページビュー、Qtが1位になってた! ブラウザのQtってなんだろ?

rootをiSCSI上に置いてディスクレスにしたときのシャットダウン時のエラー

前々から気がついていたんだけど、rootをiSCSIのディスクに置いてディスクレスにしていると、リブートやシャットダウンの途中でエラーがおきて、ちゃんとアンマウントできないという問題があったりしてました。 ちょっとマズイなーと思いつつ、物理マシンの再起動なんて滅多にしないので、まあいいかと放っていたのですが、正月休みに入る前に、色々とアップデートあてて、カーネルの入れ替え=再起動もしようと思ったので、エラーの件も対応しようと思います。 エラーが起きるのは、 シャットダウンの途中でiscsidが停止 iSCSIのディスクが見えなくなる ディスクアクセスできないよーっと泣きが入る といった感じです。 なので、/etc/init.d/iscsid stop 的なのが呼ばれなければいいだけかなと。 で、インターネットをグルグルしてみたんだけど、イマイチいい方法がでてきません。 仕方が無いので自分で試してみることに。 まずはinitスクリプト(/etc/init.d/iscsid) の dependをいじってうまくいかないかなぁとか調べてみる。 need localmount とか足せば、上手く行きそうな気もするけど、起動時にも副作業がありそうでちょっと怖い感じ。 ふと、他にいい方法がないかなぁーと/etcのファイルを漁っていたら、/etc/rc.confに rc_nostopなんてイケそうな変数を発見♪ rc_nostop="iscsid" として試しにrebootするとエラーもなく無事に再起動しました♪ iscsidは明示的に停止してないけど、実害なさそうだから放っておいていいかなぁとか、 問題の先送りをまたしてしまうのでした。

GentooでiSCSIブートしようとしている人はバージョンに注意してね

ちょっと試してみたくって、ディスクレスなGentooマシンを構築してみました。 が、1ヶ月以上もハマってしまいました(汗 思惑としては、なんちゃってストレージエリアネットワークを作って、ディスクの 一元管理と省電力化になればなと。 iSCSIブートな環境構築の詳細は、後日まとめようと思いますが、やることを大雑把にまとめると カーネルオプションの指定 genkernel にiscsiオプションつけて実行 grubにパラメータ追加して起動 ってだけで、まあブートまでは簡単にできます。 ただ、この状態だと起動時にiscsistartコマンドが実行され、iSCSIが 使える状態にはなっているんですが、エラー発生時に再接続などは やってくれません。 ディスクレスなので、ルートがiSCSIのボリュームになっているので、 エラーが発生するとダンマリを決め込む困ったちゃんになってしまいます。 最初、これに気がつかず、iSCSIブートできたぁ♪と喜んでいたら、起動して 数日経って、なんか知らんがマシンが固まるといった現象に遭遇していました。 そこでiscsidを起動して、エラー発生時に再接続を行うようにします。 しようとするんですが、できません・・・ とりあえず # emerge open-iscsi とかして # iscsid -f -d 8 とか実行してみると、起動時にiscsistartで接続できていたセッションが 切断されてダンマリをキメてきます・・・ えぇ!!ナニコレ!!と、訳もわからず色々試してみるものの、状況は変わらず ダンマリをキメてきます。血迷って、emerge -e worldなんてのも、してみましたとも。 ええ。 と、そんなある日、気がついちゃったんですよ。 Gentooの恐ろしさを。 genkernelでinitrdに組み込まれるiscsistartのopen-iscsiのバージョンと、 起動後のopen-iscsiのバージョンが違うじゃない!! genkernelで使用されるバージョンは /etc/genkernel.conf に指定されていて こんな指定になってます。 ISCSI_VER="2.0-872" ISCSI_DIR="

btrfsの上にはスワップファイル作れないみたい

btrfsを実践投入してみているのですが、スワップファイルが作れないという問題にぶち当たりました。 こんな感じで、なんか怒られちゃいます。 $ sudo swapon -v swapfile swapon on swapfile swapon: /swapfile: found swap signature: version 1, page-size 4, same byte order swapon: /swapfile: pagesize=4096, swapsize=4096000000, devsize=4096000000 swapon: swapfile: swapon failed: Invalid argument で、dmesg確認してみると swapon: swapfile has holes なんて出力が・・・・・・・・・・・・ で、グルグルしてみると AFAIK swapfiles are not supported, at least for now." ですって X-(

compiz-fusionで最強デスクトップ

MAC OS XやWindows 7とかではデスクトップの描画に3Dアクセラレータを使って、イイ感じの演出や処理の効率化なんかもしています。 gnome3からは、gnome自体に3Dな機能が含まれるようになっていて、なかなかいい感じでしたが、ちょっと試したところ不安定なところもあって、もうしばらくは2.xを使うことになるかなと思います。 gnome2.x自体には3Dで描画する機能はないのですが、compiz-fusionを併せて使うことで実現できます。 ちょっと演出が派手すぎる向きもありますが、そのへんは自由に設定できるので3Dアクセラレータに描画だけさせたい場合でも有効です。 compiz-fusionはstableに降りてきていないので、package.keywordsの指定をします。 でも依存しているパッケージが複数あって、色々指定するのメンドクサイですね。 ということで、autounmaskの登場です。 emerge -av autounmask こんな感じで使います。 autounmask -p x11-wm/compiz-fusion-0.8.6 とかって-pをつけてやると、package.keywordsなどへの変更内容が確認できます。 ヤバそうな内容はなさそうなので、 -p を外して実行します。 autounmask x11-wm/compiz-fusion-0.8.6 でマージします。 emerge -av compiz-fusion と、実際にはXでAIGLXが使えないといけなかったりとかして、カーネルのコンフィグも関係していたりするんで、ハマるときはハマっちゃいます。 そんなときはgentoo-wikiにトラブったときの情報などまとまっているので何かと助かりますん。 http://en.gentoo-wiki.com/wiki/Compiz-Fusion

X200sにデスクトップ環境

ドキュメントが充実しているGentooさんですが、デスクトップ環境についても色々ドキュメントがまとまっています。 http://www.gentoo.org/doc/ja/xorg-config.xml http://www.gentoo.org/doc/ja/gnome-config.xml ただ、日本語訳はちょっと古いので英語版も軽く見ておいたほうがいいかもです。 とりあえず、セットアップしたときのメモ。 Xな環境を整える まずは動作確認や緊急時の対応用に最小限の環境を用意します。 最初にデスクトップ用のプロファイルに変更しておきます。 # eselect profile listAvailable profile symlink targets:   [1]   default/linux/amd64/10.0 *   [2]   default/linux/amd64/10.0/desktop   [3]   default/linux/amd64/10.0/desktop/gnome   [4]   default/linux/amd64/10.0/desktop/kde   [5]   default/linux/amd64/10.0/developer   [6]   default/linux/amd64/10.0/no-multilib   [7]   default/linux/amd64/10.0/server   [8]   hardened/linux/amd64   [9]   hardened/linux/amd64/no-multilib   [10]  selinux/2007.0/amd64   [11]  selinux/2007.0/amd64/hardened   [12]  selinux/v2refpolicy/amd64   [13]  selinux/v2refpolicy/amd64/desktop   [14]  selinux/v2refpolicy/amd64/developer   [15]  selinux/v2refpolicy/amd64/hardened   [16]  selinux/v2refpolicy/amd64/server とりあえず

Google I/O 2011

Google I/O 2011が今日と明日、開催されています。 ひとまずAndroidの次のバージョンはicecream sandwichで確定みたいです。 あと気になったのは Android Open Accessory Development Kit AndroidはiPhoneに比べてアクセサリが少ないから、ADKの登場でAndroid用のアクセサリが 色々出てくると、また楽しくなりそうですね 今日の基調講演の内容は googleさんのblog にまとまってました。

baselayout-2とOpenRCに移行する

随分前からtestingにあがっていたbaselayout-2とOpenRCが2011/5/8に、いよいよstableに降りてきました。 インストールほやほやのGentooさんをbaselayout-2に移行します。 まあ、移行ガイドの通りにやるだけです。 http://www.gentoo.org/doc/en/openrc-migration.xml http://www.gentoo.org/doc/ja/openrc-migration.xml とりあえず混乱を避けるためにbaselayoutのアップデートと、OpenRCのインストールだけやります。 emerge -avu baselayout dispatch-confを実行して、設定ファイル群を更新します。 hostsとかhostnameとかhwclock以外は新しいファイルをそのまま使って、こいつらだけチョチョっと手を入れた。 設定ファイルの移行がひと通り終わったら、 rm /etc/conf.d/rc して削除。 カーネルモジュールは今のところ特に指定していないんでスルー。 bootランレベルも特に問題なし。 mdraidもlvmも使ってないから問題なし。 udevはちゃんとsysinitに設定されていて問題なし。 net.eth0も消されてなくて問題なし。 Clockの設定も問題なし。 Xとかはまだインストールすらしていないので関係なし。 ということでリブート! で、何事も無く移行完了しました。 メデタシメデタシ♪ 心なし起動が早くなったかも。 その後 開発用のサーバや、sakuraのVPSなGentooの移行もやっつけました。 sakuraのVPSでは/etc/init.d/net.eth0が削除されていたので ln -s /etc/init.d/net.lo /etc/init.d/net.eth0 しました。 ちゃんと確認しないで再起動して、sshで繋がらなくなって焦った。 慣れてきても初心を忘れずにちゃんと確認しましょうね

Thinkpad X200sに生Gentoo仕込む

えーっと、唐突ですが2011/6/1〜3で LinuxCon Japan 2011 ってイベントが横浜で開催されます。 早期申し込みで50% offってのに釣られて2月に申込みをしちゃってるので、仕事でトラブルとか起きなければ5月末から横浜に乗り込む所存でございます。 で、LinuxConにお出かけするにあたって、重たいMacBookProを持っていくのもアレだなと思い、ThinkpadさんにGentoo仕込んで持って行こうかなと思い立った次第であります。 近頃はSSDの環境に慣れきってしまって、HDDなThinkpadさんだとストレス溜まって老化が促進されそうなので、健康のためにSSD用意しときました。 メディアの管理とか、プロプラなやけに容量の大きいアプリとか入れないので64GBでも十分足りるかと思ったけど、いざ容量が足りなくなると後悔するので奮発して128GBのm4 SSDでキメちゃいました。 前段が長くなってしまいましたが、早速仕込みに入ります。 インストールのメモ 大方の手順は クイックインストールマニュアル で。 実際には64bit環境にするので適宜対応しながら進めます。 パーティショニングとファイルシステム 第1のお悩みポイント、パーティショニングとファイルシステム。 メインのファイルシステムは明るい未来が待っているbtrfsで行こうと思います。 トラブらないように/bootは別パーティションでext3、あと、ノートPCなのでハイバネーションが遣りやすいように、スワップも別パーティションで切っておきます。(suspend to diskのfile writerでbtrfsに対応できるかちゃんと確認してないけど、なんとなく危なそうですよね?) なのでパーティション構成はこんな感じ。 % fdisk -l /dev/sda Disk /dev/sda: 128.0 GB, 128035676160 bytes 255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O

PandaboardにGentooを仕込むよ

2ヶ月ほど前にパンダボードという開発ボードを入手していたのですが、しばらく塩漬けにしていたのを掘り起こして、Gentoo Linuxを仕込んでいるところです。 最終的にはAndroid on Gentoo on Pandaboardの構成にしようと企んでいます。 とりあえず材料を整理しておきます。 PandaBoard:今回の主役。DigiKeyで購入 5V ACアダプタ : 秋月で購入 USB シリアルアダプタ : 組込み系やるのには必須っぽい SDHC 16GB : ちょっと大きめのを用意してみました 母艦 : 最初にビルドするのにLinux環境が必要。Gentoo on Parallels on MacBook Proで済ませました 液晶モニタ : 最初のうちは要らない。DIV-DかHDMI入力がないとダメです USBキーボード、マウス : 最初のうちは要らない HDMI -> DVI変換ケーブル : 最初のうちは要らない。画面に出力する用 こんな感じ。で、最初のセットアップ方法は Gentoo on the Pandabord にまとまっています。 いや、マジGentooスゲー。惚れ直した♡ Formatting the SD cardの部分では bc コマンドがなかったり、パーティション切った時のパスが違ったりしてうまくいかなかったので、人間インタプリタで処理しました。 bc コマンドって初めて知りました。いつもはexprコマンド使ってます。 他、Setting the default root passwordのところで openssl passwd -1 で生成されるのが、どうも形式が違うっぽいんで、母艦の/etc/shadowの中身をコピーしました。 で、SDカードをパンダに刺してHDMI -> DVI変換ケーブルでモニタに繋げて起動! チカチカ チカチカ チカチカ と、LEDが点滅するんですが、いくら待ってもモニタに信号は流れてきません。 シリアルケーブル繋げて、minicom立ち上げると、 あ、ログインプロンプトが表示されてました。 コンソール部分はHDMIとかでは出力されないみたいです。 という訳で、しばらくはシリアルコンソールでの作業が続きそうです。

DebianをSqueezeに上げたらKVMの仮想マシンが起動しなくなった

先日、無事にサーバのDebianをSqueezeにアップグレードした訳ですが、KVMの仮想マシンが起動しなくなっていたのをメモしとくの忘れていました。 実際のところ、KVMの仮想マシンが起動しなくなるという訳ではなくて、libvirtを使っていて、且つ、仮想HDDをrawフォーマット以外(qcow2とか)を使っている場合に Starting SeaBIOS (version 0.5.1-20101112_103537-polaris) Booting from Hard Disk... Boot failed: not a bootable disk No bootable device. なんて可愛らしメッセージが表示されちゃいます。 あまりの可愛らしさに胸がズキューンってなっちゃいますね。 これはlibvirtのバージョンが上がって、XMLのフォーマットに変更が入っているのが原因みたいです。新しいXMLのフォーマットではdiskにdriver要素が指定できるようになっているんですが、指定されていない場合はrawフォーマットとして扱われてるみたいです。 XMLフォーマットの詳細は こちら なのでdriver要素を指定して上げれば問題なく起動します。でもdriver要素チマチマ追加するの面倒だなぁと思っていたら、virshから編集すると、自動的にdriver要素追加してくれてました(rawになってるけど) $ sudo virsh edit ドメイン名 で、rawになっている部分を、実際に使用しているフォーマットに変更して上げればOK。 というかvirshのeditって今回初めて使ったんですが、defineしなくていいので楽チンですね。 今まではXMLファイルを編集して、その後 virsh defineやってました。

サーバのDebianをSqueezeに上げるのだ

2月6日にめでたくDebian 6.0、コードネームsqueezeがリリースされましたね。 特に大きな不具合の話も聞かないので、VPSじゃない方のサーバのアップグレードをしちゃいましょう。 VPSな方はdtiのserverman@vpsでDebianを運用しているんですが、dtiのvpsは完全仮想化じゃないから ちょっと気持ち悪いので、しばらくはlennyのまま放っておく事にします。 ということで、早速アップデートを始めますが、まずはリリースノートにしっかりと目を通しておきます。 http://www.debian.org/releases/squeeze/releasenotes 4章、5章あたりがアップグレードをするのにとても重要ですね。 このサーバでは新しめのKVMを使いたかったので、backportsからKVMをインストールしていました。 KVMとかvirt-managerに依存しているパッケージだけなので、ここが壊れてもインストールし直せばいいだけなので 安心ですね。 ということで4章を読みながらアップグレード! まずはソースリストを編集します。 # vi /etc/apt/sources.list コードネームで指定しているので、lennyな所をsqueezeに書き換えます。 あと、これまでnon-freeなパッケージは使っていないのでaptラインにも含めていなかったのですが、squeezeからは ファームウェアがnon-freeに入るようになるらしいので、aptラインにnon-freeも追加しておきます。 最終的な/etc/apt/sources.listはこんな感じになりました。 deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.jp.debian.org/debian/ squeeze main contrib non-free deb http://ftp.jp.debian.org/debian/ squeeze-updates main contrib non-free deb-src http://ftp.jp.debian.org/debian/ squeeze-

MacのX11からvirt-manager開いたらコンソールから抜けられなかった!

突然ですが、運用中のサーバにはKVMを使った仮想化環境を動かしています。 普段の運用管理はsshでログインしているんですが、サーバ環境の整理などの為、久しぶりにてvirt-managerを 使ってみました。 MacはX11な環境が整っているので、WindowsでCygwin入れて云々する必要がなくってラクチン。ホストにsshでログインする時に、オプション -X を指定するとX11.appが自動的に起動してくれます。 $ ssh -X ホスト名 で、ログイン後 virt-manager を起動して、難なく画面が転送されてきていい感じだったんですが、仮想コンソールから抜けようとAlt+Ctrlを押しても抜けられませぬ!! どうもキーマップがおかしいっぽい。ひとまずSpacesのショートカットが生きてて、デスクトップ切り替えるとマウス操作ができるようになったのでググってみた。 ら、やっぱりキーマップがおかしいみたい。こちらのサイトを参考にして、キーマップの設定をしておきましたとさ。 necessary and sufficientinternet is so computer | Apple’s X11 Keymap and virt-manager とりあえず抜粋しておくと、ホームディレクトリの.Xmodmapファイルにこんな感じの設定をしておけとのこと。 clear Mod1 keycode 66 = Alt_L keycode 69 = Alt_R add Mod1 = Alt_L add Mod1 = Alt_R めでたしめでたし