Ubuntu画面フリーズ脱出!chvtで仮想コンソール(TTY)を自在に切替

はじめに:GUIフリーズ時における仮想コンソール制御の重要性

Ubuntuデスクトップの操作中に画面が完全に固まってしまったり、CUI環境へ即座に退避してバックグラウンドの異常プロセスを調査したい場面では、chvt コマンドが非常に強力な武器となります。本記事では、現行セッションの識別手順から、目的の仮想コンソール(TTY)へ瞬時に画面フォーカスを切り替える実務テクニックまでを詳しく解説します。電源ボタンの長押しによる強制終了を回避し、安全にシステムを救出するための運用ノウハウを押さえておきましょう。

セッション状態の調査とkbdパッケージの導入

仮想端末の制御ユーティリティを確実に機能させる下準備として、apt-get update -qq && apt-get install -y kbd を実行して kbd パッケージをシステムに組み込みます。

kbdパッケージのインストール確認

続いて tty コマンドを実行し、標準入力に割り当てられている端末デバイスノードを問い合わせます。
もし実行結果に not a tty と返ってきた場合、該当シェルが物理仮想コンソールや仮想疑似端末(pts)と直接紐づいていない実行環境であることを表します。

ttyコマンドによるデバイス接続の検証

さらに who コマンドを用いて、現在システムにログオンしているユーザー一覧とセッション情報を取得します。
出力が完全に空の行である場合、現在対話型の有効なログインセッションが存在していない状況を示唆しています。

whoコマンドによるログイン中セッションの確認

fgconsoleコマンドによる現在のアクティブVT番号の特定

fgconsole --help を実行することで、フォアグラウンド仮想端末照会ツールのヘルプ構文や引数仕様を確認できます。

fgconsoleのオプションとヘルプ表示

実際に fgconsole を呼び出し、ディスプレイ前面に現在描画されている仮想コンソール(TTY)の番号を取得します。
画面に 7 という数値が出力された場合、Linuxデスクトップ環境(XorgやWayland)が標準的に常駐する第7仮想ターミナルがアクティブ状態であることを意味します。

fgconsoleによる前面仮想端末番号の取得

chvtコマンドを活用したターゲットTTYへの画面切り替え

chvt --help を入力し、仮想端末切り替えユーティリティの利用方法とパラメータオプションをチェックします。

chvtコマンドのヘルプ確認

chvt(Change Virtual Terminal)は、指定したインデックスの仮想コンソール(TTY)へディスプレイのフォーカスを即座に変更するコマンドです。
端末デバイスの表示権限を低レイヤーで操作するためには管理者権限が必要となるため、sudo を付与して呼び出します。
ここでは sudo chvt 1 を実行し、現在表示中のGUI環境からテキストベースのTTY1画面へと切り替えを行います。

sudo chvt 1でTTY1へ画面をスイッチ

GUIフリーズに備えるレスキュー検証スクリプトの作成と実践

緊急トラブル時に現在の端末環境を即座に判定できるよう、検証用シェルスクリプトを作成します。echo -e '#!/bin/bash\necho "현재 터미널: $(tty)"\necho "콘솔 복구 준비 완료"' > /tmp/check_tty.sh を実行してファイルを配置します。

緊急復旧用スクリプトの生成

作成したファイルにパーミッションを設定し、chmod +x /tmp/check_tty.sh && /tmp/check_tty.sh を実行して動作テストを行います。
接続端末の認識状態が出力され、システムトラブル時のリカバリ作業へスムーズに着手できる環境が整っていることを確認します。

スクリプトへの実行権限付与とテスト動作

以上、Ubuntuのデスクトップ画面が停止した際に chvt を活用して安全に仮想コンソールへ脱出し、トラブルに対処する一連の手法を解説しました。
不意のフリーズに直面しても即座にハードウェアリセットへ頼るのではなく、TTYを活用したスマートな復旧手順をぜひ役立ててください。