PC新調にあたって、VirtualBoxの再インストールとUbuntu22.04を入れなおしたところ、Ubuntuインストール直後にターミナルが起動しない問題が発生した。
いろいろと調べて試して起動できるようになったので、同じ問題に悩んでいる方もいるかと思いますので、その対処についてシェアしたいと思います。
VirtualBox 7.0にUbuntu 22.04LTSをインストールし、起動後ターミナルを起動しようとすると、アプリが立ち上がるようなそぶりを見せるものの、横のサークルがくるくる回るだけで、しばらくすると終了してしまいます。
Linux環境で、ターミナルが使えないのは死活問題でほぼ何もできない環境が出来上がります。。。そこで今回はこの問題を解決する方法を説明します。
まずは仮想コンソールモードに入ります。キーボードで Ctrl+Alt+F3 を入力してください。以下のようなコンソールが全画面モードで表示されます。
環境のログインがうながされますので、ユーザー名とパスワードを順に入力してログインします。
ログインできると以下のようになります。
まずは、スーパーユーザーになるために以下コマンドを入力し、パスワードの入力がうながされるので入力します。
su
以下のように、root@ユーザー名となりコンソールの雰囲気が変わればOKです。
続いて以下のように入力し、ファイルを開きます。
これは、nanoというエディタで”/etc/default/locale”というファイルを編集しようとしています。
sudo nano /etc/default/locale
表示されたどこかの行に、”LANG=”en_US.UTF-8″”を追記します。
※今回は同じLANGという要素がある↓に追加しました。
左が修正前 右が修正後です。
Ctrl + x キーで保存を要求し、保存するか聞かれるのでXで確定します。
ここまでいったら、以下コマンドで一度再起動させます。
reboot
ここまでするとおそらくターミナルが起動するようになりますが、今のままだと”sudo”コマンドが使えない状態となっていますので、使えるように設定します。
もう一度、 Ctrl+Alt+F3を入力して、仮想コンソールにはいって、ログインします。
そして、su コマンドで再度root権限を取得します。
su
ルート権限に入れたら、以下コマンドを入力し、ユーザーにsudoの権限を設定します。
usermod -G sudo XXXXX
※XXXXXは権限を与えたいユーザー名を入力する。
ここまできたら、以下コマンドもう一度再起動します。
reboot
最後は、実施しなくても立ち上がる環境もあるようですが、おまじないとして実施しておきます。
では、まず、毎度ですが、Ctrl+Alt+F3を入力して、仮想コンソールにはいって、ログインします。
※Step2でルート権限がとれているので、suは不要です。
まずは、Pytyon3環境のバージョンを確認します。
python3 --version
↑の通り入力すると、↓のようにバージョンが出力されます。
今回の場合は、3.10.6がPython3のバージョンとなります。
続いて、以下コマンドを入力してエディタで gnome-terminalファイルを開きます。
sudo nano /usr/bin/gnome-terminal
↑のように表示されるはずですので、先頭行を以下のように修正します。
#!/usr/bin/pythome3
↓
#!/usr/bin/pythome3.10
※確認したPythonのバージョンを設定する。(記載は、マイナーバージョンまででOK)
これで完了です!!
Linuxの環境に慣れていない人にはこれを行うのは結構大変な作業になるかと思いますが、こういった作業をしながら作業に慣れていってください。これが最初の一歩です。こういった作業を続けることで、夢のLinux環境が使用可能な状態となりますので、ぜひ頑張ってやってみてください。
インストールしたUbuntuの環境によっても違いますが、キーボードのレイアウトが英語キーボードになっていることもよくあるので、もし英語キーボードを直したい方はこれ以降の設定を実施してみてください。
画面右上の電源マークがあるところをクリックし、表示される画面の”Settings”をクリックし設定を起動する。
Keyboardを選択
”Input Sources”のところの+をクリック
”Japanese”を選択
もう一度”Japanese”を選択し、Addをクリック
↓のようになるので、”English(US)”の縦点三つのところをクリック
↓のようにメニューが出てくるので、Removeをクリック
↓のように”Input Sources”が、Japaneseだけになっていれば完了です。