OD3。

昨夜、ヨメと待ち合わせて踊る大捜査線3を観てきた。面白かったんだが、何か物足りない。普通の映画よりも確かに面白いんだが、なんだろう、この食い足りない感じは。ヨメとの間では期待値が高すぎなんだろうねぇ、ということで落ち着いた。

grub2 1.98+20100617-1のバグを踏む。

どうしても外出中に元に戻す必要があったので、結果的には/var/cache/apt/archivesに残っていた古いdebパッケージで戻したのだが、MacBookだと色々めんどい上、MacBook5,2はさらにめんどいのでメモ。

MacBookではrEFIt経由でブートさせているので、grub自体は、MBRにインストールしているのではなく、/bootファイルシステムを割り当てている/dev/sda3にインストールしている。ここにインストールしているとgrub-setupに失敗する。

Next bootのときにGRUB2のプロンプトが表示される前の、

grub

というGRUBの1st stageの起動でこけてしまい、何もできず、という状況になる。

ワークアラウンドとして、grub-common, grub-pcを1.98+20100617-1から1.98+20100614-2にダウングレードした。MacBook 5,2の場合は、この手順がちと面倒。

  1. netinstのISOイメージをダウンロードし、CD-RWに焼く。

  2. まずMac OS Xを立ち上げ、焼いたCD-RWを抜き差しし、再起動。 1

  3. rEFItでCD-RWを選択し、インストールメニューが表示されたら、Rescue modeでtabキーを押し、”maxcpus=1”を付加して起動。 2

  4. 起動したら、/dev/sda4をルートファイルシステムとしてマウントし、/dev/sda3を/boot, /dev/sda6を/homeにマウントする。 3

  5. /var/cache/apt/archivesディレクトリに移動し、dpkg -i –dry-runでgrub-{pc,common}-1.98+20100614-2を試し、問題なければ、–dry-runを外して実行する。

  6. 次に、initramfsを再作成。update-initramfs -u -k 2.6.34を実行する。 4

  7. /home, /bootをアンマウントし、再起動。再起動と言ってもちゃんと停止しないので最後は電源ボタンで強制OFF。

  8. このまま起動しても、途中で失敗するので、Mac OS Xを立ち上げ、起動に失敗したら電源OFFし、バッテリーを一度外し、再度、OS Xを起動。起動できることを確認したら、再起動。

と、ここまでやれば今度はちゃんとGRUBからDebianがブートできる。今んとこ、新しくアップデートされていない模様なので、apt-get upgradeは実行せずに、アップグレード候補を個別にインストールしているのだが、grub-common, grub-pcを保留してしまえば良いのかな。

1

この儀式やらないと、rEFItでCD-RWが認識されない。

2

これをしないと、MacBook 5,2特有のバグでcoreを2つ使えないので、ブラックアウトして止まってしまう。

3

/homeは個人的にスクリプトを置いているため。

4

要らんかも。念のため。

wodemコマンドの仕様は変わっていなかった件。

今までは

$ cdrecord -dev=1,0,0 -blank=fast

で初期化したCD-RWを

$ wodim -v dev='/dev/scd0' speed=10 $ISOIMAGE

で焼いていたのに、いつの間にやら気がついたら

$ wodim -overburn -v dev='/dev/scd0' speed=10 $ISOIMAGE

と-overburnオプションをつけないと書き込みできなくなっていた。

訂正

仕様が変わったんじゃなくて、650MBのCD-Rに700MBのISOイメージを焼こうとしていたからだった。恥ずかしい。

こまめが初めて吐いた件。

昨夜のウンチが下痢していて、しおれた猫草食ったわりに消化されずに緑のまんま塊になっていたので、アレ?と思って古いほうの猫草を見てみたら白いカビががっつり生えてた!一昨日初めて吐いて、その日の前日の晩から吐いた後まで元気が無かったのも、多分これが原因だろう。そうだとすれば、逆にちゃんと吐いたのは良かったのかもしれない。

食欲ももう戻って、元気に走りまわっているが、念のため明日の朝、掛かりつけの動物病院の先生に電話して聞いてみるか。

↓いつもの猫草。水を注せば2、3日で生えて来て1週間強くらい持つので便利なのだが、この時期は湿気が多いからカビには気をつけた方が良さげですな。

ミーちゃん生野菜(猫草) 2パック ×10個セット

既存のKVMゲストイメージをlibvirtで簡単に管理する方法。

前提

確認したのはDebian GNU/Linux Squeeze/Sidのvirt-managerのみ。バージョンは0.8.4。例えば、たまたま確認したFedora 12だとVMの新規作成画面のステップ1/5で、”import existing disk image”の項目自体が無いのでできない 1

対象読者

qemu-imgコマンドで作成し、kvmコマンド 2 で使用していたKVMのゲストイメージをlibvirtで管理したいけど、/etc/libvirt/qemu/vmname.xmlを自分で作成するのは大変だよ、ママン、という向きにはうってつけの方法かと。シェルスクリプトで直接kvmコマンドで直接管理するから関係ないぜ、という人はスルーで。

事前準備

kvmコマンドしか使っていないとlibvirt関連のパッケージをインストールしていない可能性もあると思われるので、次のパッケージを導入しておくこと。 3

  • libvirt0

  • libvirt-bin

  • virt-manager

  • virt-viewer

  • virtinst

$ sudo apt-get install libvirt0 libvirt-bin virt-manager virt-viewr virtinst

libvirt関連のツール(virt-install, virt-manager, virsh)を実行するユーザは、libvirtグループに突っ込んでおくべし。

$ sudo adduser user libvirt

インポート手順

まず、管理させたいゲストイメージを、/var/lib/libvirt/imagesディレクトリに移動させる。

$ sudo mv ~/vmimg/guest1.img /var/lib/libvirt/images/

kvmコマンドを実行する場合は、kvmグループに所属していれば一般ユーザでも実行できる 4 ので、ゲストイメージのオーナー、グループ、パーミッションも実行するユーザのものにしている人もいるかと思うが、virt-managerでボリュームイメージを作成すると、root:root, 600で作成されるので合わせておいたが変更しなくても、インポート時にオーナー、グループは自動的にroot:rootに変更される。パーミッションは変更されないので、600に変更しておくとよい。

次に、virt-managerを起動する。もし、イメージファイルを移動させたときに既にvirt-managerが起動中なら再起動させる必要がある。

$ virt-manager

起動したら、”New”から新しいVMの作成を始める。VMのドメイン名にはイメージファイル名とは別にしておく。上記の用にguest1.imgというファイル名なら、ドメイン名にはguest1としないで、vm-guest1などのように別名にしておくのが良いだろう。

で、ステップ通りに設定すれば、無事起動できますよ、と。

../../../_images/20100605140557.png ../../../_images/20100605140559.png ../../../_images/20100605140556.png ../../../_images/20100605140555.png ../../../_images/20100605140554.png ../../../_images/20100605140553.png

さっきのは別に大した話では無いんだが。

先ほどの、ファイル名とは別のドメイン名にしておいた方が無難、と書いたが、単にインポートするファイル名と同じだけど、未定義の名前だからこれ使うか?というだけなので、パスの指定の後に次のダイアログが出たら”Yes”としておけば良いだけの話。

../../../_images/20100605140558.png
1

Fedora 13がどうかは知らない。普段使わないので。

2

ほかのディストロだとqemu-kvmコマンドだろう。

3

今回関係ないパッケージもあるが、きっと使うでしょ、という意味で。

4

というか、2010年6月5日現在、kvmグループに所属していないユーザでも普通にkvmコマンド実行できてしまうみたいなんだが。