2015/05/19

Hyper-V 上の CentOS でコンソールサイズが過大になる

所用にて、Windows 8 で Hyper-V を実行、その上で CentOS 6 をインストールして使っていた。
CentOS は minimal でインストールしたため Xなしなのだが、カーネルがロードされ、 udev がメッセージを出しているあたりで唐突に画面サイズが非常に大きなものになってしまい、少々困っていた。

Hyper-V にて Linux を起動中、出だしはこのサイズなのだが...
起動途中にいきなりここまで大きくなってしまう
どうせ SSH でログインできればいいので、コンソールサイズなんて 800x600 程度でいいのだが、さてどうすれば直るやら...と調べたことのメモ。

結論から言うと、/etc/grub.confkernel= の行に 「video=hyperv_fb:800x600」と記載してリブート、が正解であった。CentOS 6 では統合サービス(IC)がカーネルに組み込み済みのため、適切なフレームバッファドライバとして hyperv_fb が使われる。そのパラメータとして 800x600 と書く、と言うことだ。
(なお、CentOSなど RHEL系では、/etc/grub.conf /boot/grub/menu.lst のシンボリックリンクだ)

検索してると見かけられる vga=771 などではコンソール解像度の拡大を防ぐことはできなかった。そこまで追いかけてはいないが、vga= というオプションを解釈するのはおそらく標準のコンソールドライバなのだろう。

video=hyperv_fb:800x600 を記載後、いったん電源を落として再起動
すると、800x600 サイズまでしか拡大しない
また、どこかで video=800x600 とすればいいような記載もあったが、これも今回は正しく動作しなかった。

5/20: 画像を取り直して追加