2011年12月27日火曜日

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は明示的に停止してないけど、実害なさそうだから放っておいていいかなぁとか、 問題の先送りをまたしてしまうのでした。

2011年10月3日月曜日

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

ちょっと試してみたくって、ディスクレスなGentooマシンを構築してみました。
が、1ヶ月以上もハマってしまいました(汗

思惑としては、なんちゃってストレージエリアネットワークを作って、ディスクの
一元管理と省電力化になればなと。

iSCSIブートな環境構築の詳細は、後日まとめようと思いますが、やることを大雑把にまとめると
  1. カーネルオプションの指定
  2. genkernel にiscsiオプションつけて実行
  3. 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="open-iscsi-${ISCSI_VER}"
で、emerge -s open-iscsiすると
* sys-block/open-iscsi
Latest version available: 2.0.871.3
とか返ってきます。グヘェっ!!

/etc/portage/package.keywordsに
=sys-block/open-iscsi-2.0.872 ~amd64
を追加して
# emerge -u open-iscsi
すると、genkernelでinitrdに組み込まれるのと同じバージョンがインストールされます。
インストール後iscsid起動すると、何事もなかったように起動しました♪

自動起動するように、rc-updateしときます。
# rc-update add iscsid default
それいらいダンマリをキメることなく安定しています。
Gentooステキ

2011年6月17日金曜日

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-(

2011年5月19日木曜日

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

とりあえず[2]のdesktopを指定しときます。
# eselect profile set 2

# eselect profile list
プロファイルが変更されているのを確認。

次にmake.confにVIDEO_CARDSとINPUT_DEVICESを指定します。
VIDEO_CARDS="intel"
INPUT_DEVICES="evdev"

で、マージ。
emerge -av xorg-server twm xterm

芋づる式にたくさんのライブラリがビルドされるので、しばらく放っておきます。













で、無事にビルドが終わったらおもむろに
$ startx
だ!
キタ!Xキタ!
何も設定しないで表示も、キーボードもトラックポイントもバッチリです。
いやはや楽な時代になったものです。感謝感謝。

gnomeなデスクトップ環境を用意する
ノスタルジックなtwmもいいんですが、ボケーっとしながら使えるデスクトップ環境もステキです。ということで、さっさとgnomeな環境を用意します。


gnomeの対抗馬的な存在にKDE SCがありますが、4.xになってどうも使い勝手がダルイ感じになってしまったので、最近はgnomeで決まりです。

まずはgnomeデスクトップ用のプロファイルに切り替えます。
eselect profile set 3
eselect profile list
で、マージ。
emerge -av gnome
先ほどとは比べ物にならないくらい膨大なパッケージがマージされていきます。
放っといて別のことをやるのが吉です。

無事にマージし終わったら、プロファイルで指定されているUSEフラグがたくさんあるので、影響のあるパッケージを再マージしておきます。
emerge -avND world

あとは/etc/conf.d/xdmを編集してディスプレイマネージャにgdmを指定します。
nano -w /etc/conf.d/xdm

ひと通り終わったら、自動起動する設定をして再起動
rc-update add alsasound boot
rc-update add dbus default
rc-update add xdm default
reboot

再起動後、gdmのログイン画面が表示されて、ログインしてgnomeが立ち上がればOK。
ビルドにちょっと時間がかかるけど、やることはとても簡単ですね。

2011年5月11日水曜日

Google I/O 2011

Google I/O 2011が今日と明日、開催されています。

ひとまずAndroidの次のバージョンはicecream sandwichで確定みたいです。

あと気になったのはAndroid Open Accessory Development Kit

AndroidはiPhoneに比べてアクセサリが少ないから、ADKの登場でAndroid用のアクセサリが
色々出てくると、また楽しくなりそうですね

今日の基調講演の内容は
googleさんのblog
にまとまってました。

2011年5月9日月曜日

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で繋がらなくなって焦った。
慣れてきても初心を忘れずにちゃんと確認しましょうね

2011年5月7日土曜日

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 size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2b848245

Device Boot Start End Blocks Id System
/dev/sda1 2048 206847 102400 83 Linux
/dev/sda2 206848 16984063 8388608 82 Linux swap / Solaris
/dev/sda3 16984064 250069679 116542808 83 Linux


パーティション切ったらファイルシステムを作ります。
mkfs.ext3 /dev/sda1
mkfs.btrfs /dev/sda3
mkswap /dev/sda2

btrfsのサブボリュームを使ってみます。
mkdir /mnt/btrfs
mount /dev/sda3 /mnt/btrfs
btrfs subvolume create /mnt/btrfs/system
btrfs subvolume create /mnt/btrfs/home
btrfs subvolume create /mnt/btrfs/portage


インストール用にマウント
mount -o subvol=system,compress=lzo /dev/sda3 /mnt/gentoo
mkdir -p /mnt/gentoo/boot /mnt/gentoo/home /mnt/gentoo/usr/portage
mount /dev/sda1 /mnt/gentoo/boot
mount -o subvol=home,compress=lzo /dev/sda3 /mnt/gentoo/home
mount -o subvol=portage,compress=lzo /dev/sda3 /mnt/gentoo/usr/portage


amd64のstage3をダウンロードします。
cd /mnt/gentoo
wget http://ftp.jaist.ac.jp/pub/Linux/Gentoo/releases/amd64/current-stage3/stage3-amd64-20110428.tar.bz2


あとはマニュアル通りに粛々と

あ、あとなんかマズいバグがあるっぽいんで、カーネルを2.6.38にしておく。
現時点ではstableに降りてきていないので
mkdir /etc/portage
echo "sys-kernel/gentoo-sources ~amd64" > /etc/portage/package.keywords
emerge -av gentoo-sources

こんな感じで。

fstabやgrubの設定はこんな感じになっています。

■fstab
/dev/sda1 /boot ext3 noauto,noatime 1 2
/dev/sda3 / btrfs subvol=system,compress=lzo,noatime 0 1
/dev/sda3 /home btrfs subvol=home,compress=lzo,noatime 0 1
/dev/sda3 /usr/portage btrfs subvol=portage,compress=lzo,noatime 0 1
/dev/sda3 /mnt/btrfs btrfs noatime 0 1
/dev/sda2 none swap sw 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
shm /dev/shm tmpfs nodev,nosuid 0 0


■menu.lst
default 0
timeout 10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux
root (hd0,0)
kernel /boot/kernel-2.6.38-gentoo-r4 root=/dev/sda3 rootflags=subvol=system,compress=lzo vga=868


とりあえず最小限の状態で起動できることを確認。
これからチマチマと環境整えていきます。

でもその前に、Gentooのサイトでbaselayout2への移行がアナウンスされているので、これを先にやっつけないといけないです。

いやしかし、LinuxConってどんなイベントかよく知らないで申し込んだんだけど、日本で開催だけど公用語が英語とかって後から知って、かなり怖気付いていたりします (-_-;)

2011年4月22日金曜日

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とかでは出力されないみたいです。

という訳で、しばらくはシリアルコンソールでの作業が続きそうです。

2011年2月21日月曜日

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やってました。

2011年2月15日火曜日

サーバの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-updates main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

で、1発目のアップグレード。
# apt-get upgrade

4.4.5の記載に則って、カーネルとudevを手動でアップグレードします。
# apt-get install linux-image-amd64
# apt-get install udev


あとはdist-upgradeで畳み掛けます!
# apt-get dist-upgrade

dist-upgradeも特に問題なく完了しましたが、
insserv: warning: script 'K19libvirt-suspendonreboot' missing LSB tags and overrides
って怒られちゃいました。このスクリプトは、サーバのシャットダウン時に起動中のKVM仮想マシンをサスペンドさせる
ために作ったやつで、LSBタグがないよっていわれています。

リリースノートにも書かれているようにsqueezeではinsservによる依存関係ベースの起動シーケンスに変更されているとのことなので対応しておく。
ひとまずLSBタグに以下を設定。
### BEGIN INIT INFO
# Provides: libvirtd-suspendonreboot
# Required-Start: libvirtd
# Required-Stop: $remote_fs $syslog libvirtd
# Should-Start: hal avahi
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: libvirt suspend on reboot
### END INIT INFO
依存関係はかなり適当にしているから、これで大丈夫かは・・・。
依存関係ベースの起動に移行させる為に
dpkg-reconfigure sysv-rc
を実行します。

とりあえず怒られないようになりました。

ここで緊張の再起動。
# reboot

grub1からチェインロードでgrub2が起動して、無事squeezeが起動しました。
grub2から起動できることが確認できたので、とっととgrub2に移行しちゃいます。
# upgrade-from-grub-legacy

で、またまた再起動!
grub2からちゃんと起動することができました。

これでひとまずsqueezeへのアップグレードは大丈夫かな。

2011年1月17日月曜日

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

めでたしめでたし