KVMが不安定

Slackware 14.2 (AMD64)ベースのサブWSですが,どうも最近KVMで動かしているdebianが不安定です.以前,再起動できないまで壊れてしまいましたが,そこまでひどいトラブルはないものの,よく固まります.仮想マシンなので,強制リセットすれば再起動しますが,ちょっと安心して使えない頻度で固まります.

原因は,KVM環境のライブラリーなどをupdateしないまま,Kernalだけ最新のものにupdateしているせいだと思います.あるいは,Linuxにありがちですが,新しいKernelにバグが含まれているのかも知れません.

たいていのソフトは,Kernelを更新しても影響はないのですが,KVM(Kernel-based Virtual Machines)は,その名の通りKernelに直結して動くので,影響が少なからずあるのでしょう.知らんけど😓

しかし,現実問題としてSlackwareで,自分でインストールしたKVM環境全てをup to dateにするのは,もはや気力がありません😓

そこで考えたのは,サブWSのメインOSをdebianにしてしまおうということです.debianにKVMをインストールすれば,ライブラリーなど関係のパッケージも最新に保たれるはずです.

仮想マシンのディスクイメージは独立したパーティションに置いているので,移行もそんなにめんどうではないと思います.

長年愛用してきたSlackwareをLinuxのメインWS(全体としてはサブWSだけど😓)のサブOSにしてしまうのは,ちょっと悲しい気もします.そして,debianの実マシンでdebianの仮想マシンを動かす意味があるのか😓 いや,そもそも,たまにしか電源を入れないサブWSで仮想マシンを動かす意義は?

まあ,考えてみれば,動かすことができる環境を維持していることのみが意義です.

そう考えると,時間をかけてもSlackwareのKVM環境を手作業でup to dateにするべきなのかもしれません.

「手作業」といっても,sbopkgに頼る部分がかなりあります.

Kernelを更新したらすぐにリブートせよ

自分宛のメモです.

新しいKernelをbuildして,インストールしたらリブートが鉄則ですが,筆者の使う主なアプリは,KonsoleとFirefoxくらいで,これらはリブートしなくても動きますので,時間の無駄と思ってたいていリブートしないまま作業を続けてしまいます.

しかし,KVMの仮想マシンにとってはこれが具合が悪いようで,仮想マシンがフリーズしてしまいます.そして,仮想マシンだけ再起動しても起動してくれません.

ここは,セオリー通りホストの再起動をしなければなりません.

今回はさいわい仮想マシンは壊れず,再起動したホストの元で起動して,KDEにloginできました.

仮想マシンの使い道

そう言えば,現在個人で管理している公開サーバーはRaspberry Pi 4 Model Bで動いていますが,Raspberry Pi (以下 “RPi”)にする前はIntel Core i7のデスクトップ機で動かしていました.

切り替えるときに旧サーバーのハードディスクをイメージ化して残しておきました(qcow2型式).当初このイメージからブートできるように設定していたと思います.

まあ,他の人のなんの役に立つわけではありませんが,自分で昔に書いた文章がときどき自分で必要になることがあります.たいていは,MacのSpotlightや,RPiのサーバーでlocateコマンドを実行することで,ワークステーション内やサーバー内に探し出せることが多いですが,今回のは見つからず,The Wayback Machineを久しぶりにアクセスしてみました.

その文章に該当する記事の目次のページはあったんですが,The Wayback Machineが,PukiWikiのサイトのクロールをちゃんとできていなくて,残念ながら記事本文はサルベージできませんでした.

それで思いついたのは,Core i7のサーバーに残っている可能性です.仮想マシンを起動してみましたが,起動はしませんでした.ここで気がついたのは,仮想マシンを起動しなくても,ディスクイメージをマウントすれば,データにアクセスできるということです.

たぶん,旧サーバーのディスクイメージを仮想マシン用にとっておいたのも,仮想マシンとして動かすよりも,データのサルベージ用だったんじゃないかと,自分の過去の思いを推測しています😓

さいわいなことに,qcow2をマウントしたら,目的の文章があっさり見つかりました.

EFI+GRUBで悩む

久しぶりにEFI+GRUB関係で悩みました.

今,メインサーバーはSlackware ARMで動いてます.Raspberry Pi に切り替える前まで,メインサーバーだった,Core i7のデスクトップ機は,無任所workstation (WS)として存在していますが,とにかく使用目的がないので動かすのがまれで,そこそこのマシンパワーを持っているのに,持ち腐れ状態です.

最近,無線関係の機器を作りたい気持ちが高まってきていますが,まずは,GNU Radioでソフト的に遊んでみることにしました.Mac miniとMacBookには,Mac PortsでGNU Radioがインストールできましたが,そもそも非力だし,動作に怪しいところがあるので,そこで,このWSを使おうと思いつきました.

このWSはサーバー時代のままSlackware64が入っています.以前はSlackwareで,GNU Radioを手でbuildしたものですが,今はどうもそんな気力がありません.となると,UbuntuとかDebianです.Ubuntuはどうにもあかん(当社調べによる)ので,それならDebianにすることにしました.

Debianは既にそのWSの仮想マシンとしてインストールしてありますが,実時間性が必要となる信号処理で仮想マシンはたいていうまく動いてくれません.そこで,比較的余裕のあるルートディスクにパーティションを切って,Debianをクリーンインストールしてdual bootにしてしまおう,というところまでが,まえがきです.

EFI+GRUBはかつて,かなり苦労してそのWSに導入しました.GRUBは良く出来すぎていて,一度イントールしたら,kernelをupdateしても,ちょこっとしたおまじないでconfigファイルを書き直すだけでいいので,ほとんどいじることがないので,もともとよく理解しないままインストールした上に,すっかり忘れてしまいました.

そんなわけで,ただ元のルートディスクの中身を他のディスクに書き出して,その他の方からブートして,元のルートディスクに書き戻す,というだけの作業で苦労してしまいました.コピー自体は,rsyncを使う自作スクリプトで簡単なんですが,コピー先からのブートで難儀しました.

いろんな罠にハマりましたが,特に残念なのがGoogle検索です.GRUBのコマンドラインについて調べると,GRUB1についての解説が上位に出てきます.GRUB1と2ではコマンドの基本的な文法に大きな違いがあって,参考になるどころか害悪をもたらされ,時間を空費しました.

それでもなんとか,EFI+GRUBで,もとのSlackware64にてブートできるようになりました.最終的な手がかりは,自分の非公開Wikiに書いてあるメモでした😓 少しわかりにくい部分があったので,いつあるか解らない次回のために加筆修正しておきました.

このあと,あけたパーティションにDebian AMD64版をインストールして,GNU Radioもインストールしてみます.

だいたい何でもできます

Raspberry Pi 3にSlackware ARM 14.2をインストールして,サーバーに仕立てて,今までx86, AMD64版Slackwareで動かしていたサービスを「復元」していますが,ほとんどなんでも動きますね.

しかし,(サーバー・デーモンじゃないけど)FirefoxとThunderbirdは動きません.同じRaspberry PiでもRaspbianにはFirefoxとThunderbirdが用意されていますが,Slackware ARMでは自分でBuildするしかないでしょう.

手も足も出ないのはKVMです.