VirtualBox + Ubuntu Server 16.04 で、X (GUI) を使わない CUI 状態での解像度を変更する方法を調べたので備忘録。
各種ソフトのバージョンなど
- VirtualBox 5.1.28
- Ubuntu Server 16.04.3
手順
まず起動時に表示される GRUB のブートメニューで c
を押してコンソールを表示させる。そこで videoinfo
コマンドを実行し、その仮想マシンで使用可能な画面解像度を調べてメモしておく。
解像度は「横幅x高さx色ビット数」の形式で表示されており、上の画面例でいうと1024x768x24 などが使用可能と分かる。使いたい画面解像度は、本当に使えるかどうかテストしておくと良い。テストするには、同じく GRUB のコンソールで videotest 1024x768x24
などと実行する。
解像度が切り替わって表示されたなら、その解像度は確かに使用可能。なおこのテスト画面から元のブートメニューに戻る方法は無い(のかな?)ので、仮想マシンをリセットしてしまう。
続いて、OS にログインして解像度の設定を行う。具体的には、まず /etc/default/grub
にて以下の設定行を追加する(解像度指定の部分は読み替えてください)。
GRUB_GFXMODE=1024x768x24 GRUB_CMDLINE_LINUX_DEFAULT="nomodeset" GRUB_GFXPAYLOAD_LINUX=keep
上記の設定後、update-grub
コマンドで GRUB を再設定して OS を再起動する。
sudo update-grub && sudo shutdown -r now
以上で画面解像度が期待通りに変更された。
参考情報
GRUB_GFXMODE
だけを設定したところ、GRUB のブートメニュー画面の解像度が変わった。しかし OS を起動すると解像度がリセットされてしまった。続いて GRUB_GFXPAYLOAD_LINUX
を設定したところ、OS 起動直後のリセットは発生しなくなったものの、起動途中(フォントが切り替わるあたり)でリセットされてしまった。最後に、GRUB_CMDLINE_LINUX_DEFAULT
を設定したところ、ログイン画面まで解像度がリセットされなくかった。
どの設定が必要なのか、また上記だけで十分なのかは、ハードウェアやビデオドライバーなどに関わると思われ、各種フォーラムなどでも必要とされる設定は環境ごとに異なっているもよう。したがって上記の設定は、「あくまで一例」と思われる。