以下の内容はhttps://daisuke20240310.hatenablog.com/entry/ubuntu2204より取得しました。


Ubuntu22.04(VirtualBox 7.0)の設定とソフトウェアインストール

前回、VirtualBox 7.0 で、ゲストOSに Ubuntu 22.04.4 LTS をインストールしました。

今回は、その続きで、設定と、ソフトウェアのインストールについて説明していきたいと思います。

それではやっていきます!

はじめに

前回の記事はこちらです。

daisuke20240310.hatenablog.com

エンジニアグループのランキングに参加中です。

気楽にポチッとよろしくお願いいたします🙇

VirtualBox 7.0 の設定

VirtualBox 7.0 の設定では、ネットワークと共有フォルダの設定を行います。

ネットワークと共有フォルダの設定
ネットワークと共有フォルダの設定

ネットワークの設定

まず、ネットワークの設定です。「ネットワーク」をクリックします。

現在は、NATだけが有効になっています。これは、Ubuntu からインターネットへのアクセスが行える状態です。

ホストOSのWindows10からUbuntuへのアクセスを簡単に行うため、ホストオンリーアダプタを有効にします。

「アダプター 2」をクリックして、「ネットワークアダプターを有効化」にチェックを入れて、「ホストオンリーアダプタ」を割り当てます。その後、「OK」をクリックします。

ホストオンリーアダプタを追加する
ホストオンリーアダプタを追加する

あとで、teratermからSSHで接続するときに使います。

下図のように、「ホストオンリーアダプタ」を有効にすると、ゲストOSの起動で失敗してしまう環境がありました(その環境では100%起動に失敗する)。エラーは、「Failed to open/create the internal network 'Hsost Interface Networking -VirtualBox Host- Host-Only Ethernet Adapter' (VERR_INTNET_FLT_IF_NOT_FOUND).」という内容でした。

ホストオンリーアダプタを有効にするとエラーで起動しなくなる
ホストオンリーアダプタを有効にするとエラーで起動しなくなる

Webで検索すると、解決策が見つかりました。ホストオンリーアダプタが、IPv6が有効になってると、この現象が発生するようです。無効にすると改善するそうです。

ネットワークとインターネットの設定を開く
ネットワークとインターネットの設定を開く

その後、「イーサネット」をクリックして、「アダプターのオプションを変更する」をクリックして、ホストオンリーアダプタになってるネットワークを右クリックして、プロパティを開き、IPv6のチェックを外す。

ホストオンリーアダプタのIPv6を無効にする
ホストオンリーアダプタのIPv6を無効にする

この方法で、私の環境も、問題は発生しなくなりました。助かりました。

共有フォルダの設定

次は、共有フォルダの設定をしていきます。「共有フォルダ」をクリックします。

右端のフォルダに+マークが付いたアイコンをクリックします。

「フォルダーのパス」には、Windows側の共有するフォルダを指定します。「フォルダ名」は、Ubuntu側から見たフォルダ名で、任意の名前を指定します。マウントポイントは、特に指定しなくても、「/media/sf_[フォルダ名]」でアクセスできます。

自動でマウントするために、「自動マウント」にチェックを入れておきます。

共有フォルダの設定
共有フォルダの設定

アクセス権の設定が必要です。ゲストOS(Ubuntu)で、次のようにアクセス権を設定します(xxxはユーザ名)。

$ sudo gpasswd -a xxx vboxsf

ゲストOS(Ubuntu)を再起動します。

試しに、「/media/sf_[フォルダ名]」にファイルを作成してみます。

$ touch /media/sf_[フォルダ名]/a
$ ls /media/sf_[フォルダ名]

ファイルが作成されていれば成功です。

クリップボードの共有

VirtualBox側のメニューのデバイス→クリップボードの共有→双方向をクリックします。

クリップボードの共有の設定
クリップボードの共有の設定

これでホストOSとゲストOS間でクリップボードを共有できます。

キーボードの自動キャプチャーをオフ

ゲストOSをシャットダウンして、VirtualBoxのファイル→環境設定→入力をクリックして、キーボードの自動キャプチャーのチェックを外します。

キーボードの自動キャプチャーをオフにする
キーボードの自動キャプチャーをオフにする

このチェックが入ったままだと、Windowsで、Alt+TabでウィンドウをゲストOSのウィンドウに切り替えて、ゲストOS(Ubuntu)のウィンドウがアクティブになると、そのあとAlt+Tabを押すと、ゲストOS(Ubuntu)のウィンドウが切り替わってしまい、Windowsに戻れなくなってしまいます(次で説明するホストキーの組み合わせを押せばホストOSとゲストOSで制御を切り替えることができます)。なので、オフにしておきます。

ホストキーの組み合わせの変更

キーボードとマウスの制御を、ホストOSとゲストOSで切り替えるキーは、デフォルトは右のCtrlキーになっています。私のキーボードは、右のCtrlがないので、別のキー(右のShiftキー)を割り当てておきます。

ホストキーの組み合わせの設定
ホストキーの組み合わせの設定

仮想ハードディスクの容量を増やす

仮想マシンはシャットダウンした状態で、VirtualBox マネージャーを起動して、ツール→仮想メディアマネージャをクリックします。

仮想メディアマネージャを起動する
仮想メディアマネージャを起動する

対象の仮想マシンを選択した状態で、プロパティアイコンをクリックします。すると、現状の容量が確認できると思うので、新しく設定する容量を入力、もしくは、スライダーで決めます。それで良ければ適用をクリックします。

容量を設定する
容量を設定する

この状態は、枠としては広がりましたが、Ubuntuは、まだ広がった容量を認識できていません。

そこで、次に、Ubuntuを起動します。

左下のアプリケーションを表示するアイコンをクリックして、ユーティリティをクリックして、ディスクをクリックします。

ユーティリティ→ディスクをクリックします
ユーティリティ→ディスクをクリックします

下図のような画面が起動するので、対象のディスクをクリックして、対象のパーティションを選択して、設定アイコンをクリックして、サイズ変更をクリックします。

設定アイコンをクリックしてサイズ変更をクリック
設定アイコンをクリックしてサイズ変更をクリック

すると、下図のような画面になるので、白い〇をドラッグして、最大までサイズを変更して、サイズを変更をクリックします。

拡張してサイズを変更をクリック
拡張してサイズを変更をクリック

以上で、容量の拡張は完了です。

容量の拡張が完了した
容量の拡張が完了した

ユーティリティのディスク(gnome-disk-utility)でサイズ変更が反映されない場合

ほとんどのケースは上で書いたように、ユーティリティのディスクで、サイズ変更の反映が可能です。

まれに?サイズ変更が反映されないケースがありました。

対処方法を書いておきます。

結論から言うと、Gparted という、ユーティリティのディスクと同様のパーティション操作ツールを使うと、サイズ変更が反映されるようになりました。

Gparted をインストールします。

$ sudo apt install gparted

私の場合、サイズ変更が反映されないので、仕方ないので、Gparted を使って反映させようとしました。

Gparted を起動すると、GPT(MBRのようなパーティションの方式)の何かを修正しますか?みたいなダイアログが出ました(スクショ撮れてません)。それで、「Fix」を選択したところ、何か修正されたようでした。以下のようなメッセージがコンソールに出力されてました。

$ sudo gparted 

GParted 1.3.1

configuration --enable-libparted-dmraid --enable-online-resize

libparted 3.4

Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 41943040 blocks) or continue with the current setting? 

Gparted は終了させて、再度、ユーティリティのディスクでサイズ変更を行ったところ、変更が反映されました。

つまり、何か、パーティション情報で、修正が必要な状況にあったので、ユーティリティのディスクでサイズ変更が反映されなかったということだったようです。

追記です。下の「スナップショットの作成と復元」で書きましたが、VirtualBox で、スナップショットを作成している状態だと、Ubuntu が拡張したサイズを認識できないことがあります。その場合は、スナップショットを削除してから、Gparted を起動してみてください。

Ubuntu22.04で画面が乱れる場合

Ubuntu 22.04 に限らない話かもしれませんが、画面が乱れる症状が出ました。ひどいときは、使う気にならないぐらい画面が乱れます。うまくキャプチャが撮れました。

VirtualBoxのUbuntu22.04の画面の乱れ
VirtualBoxのUbuntu22.04の画面の乱れ

いろいろグラフィック系の設定を変更してみました。結果的には、下図のように、「3Dアクセラレーションを有効化」にチェックを入れることで画面の乱れは収まりました。

3Dアクセラレーションを有効化にチェックを入れる
3Dアクセラレーションを有効化にチェックを入れる

直って良かったです。

スナップショットの作成と復元

仮想マシンに、何か重要な変更をするとき(例えば、仮想マシンの HDD の容量を増やす、など)は、スナップショットを作成しておくと、何か起きた時に、スナップショットを作成した時点に戻すことが出来ます。

やり方は簡単です。

下図のように、スナップショットを作成したい仮想マシンを選択した状態で、設定アイコン?を左クリックします。すると、スナップショットを選択できるので、クリックします。

スナップショットの作成
スナップショットの作成

次に、下図のような画面になったと思うので、作成をクリックします。

作成をクリック
作成をクリック

すると、以下のダイアログが表示されるので、スナップショットの名前を入力し、OK をクリックします。

スナップショットの名前を入力する
スナップショットの名前を入力する

これで、スナップショットの作成は以上です。

次は、作成したスナップショットで復元を行う方法です。

スナップショットを作成したときのように、対象の仮想マシンを選択して、設定アイコンを左クリックして、スナップショットをクリックして、下図の画面までいきます。

次に、復元したいポイント(この場合は、2025-08-20)を選択して、復元をクリックすると、指定した復元ポイントの状態に仮想マシンを戻せます。

今回は、現在の状態と、スナップショットの状態が同じだったので、即座に復元されました(何も変化してない)が、状態が異なると、スナップショットを作成するか?と聞かれるようです。そのときは、念のため、スナップショットを作成しておいた方がいいと思います。

スナップショットを使って復元する
スナップショットを使って復元する

今回、私自身が、仮想マシンの HDD の容量を増やすので、スナップショットを作成しました。しかし、思わぬトラップがありました。上で書いた「仮想ハードディスクの容量を増やす」で書いた通り、VirtualBox の容量拡張は簡単です。その後、Ubuntu に、拡張した容量を認識させる必要があるのですが、今回は、Gparted を使っても、全く認識しませんでした。

仕方ないので、Web で情報を探していると、どうやら、スナップショットを作成している状態だと、Ubuntu が拡張した容量を認識できない問題があるそうで、スナップショットを削除すると、認識できるとありました。実際に、スナップショットを削除して、Ubuntu で、Gparted を起動すると、拡張した容量を認識できました。とんでもないトラップでした。

Ubuntu 22.04.4 LTS の設定

最低限の設定をやっていきます。まず、設定を開きます。

設定を開く
設定を開く

画面オフの無効化

毎回パスワードを聞かれると面倒ですし、仮想マシンなので、画面オフは必要ありません。

「電源管理」をクリックして、「画面のブランク」を「しない」に設定します。

電源管理の画面のブランクを「しない」に設定
電源管理の画面のブランクを「しない」に設定

ホームディレクトリの各ディレクトリ名を英語に変換する

デフォルトは、「ダウンロード」など、日本語のフォルダ名になっていますが、アクセスしにくいので英語のフォルダ名に変換しておきます。

$ LANG=C xdg-user-dirs-gtk-update

ホームディレクトリの各ディレクトリ名の変更
ホームディレクトリの各ディレクトリ名の変更

visudoで、sudoのときにパスワードを聞かれないようにする

sudoで実行するときに、毎回パスワードを聞かれるのは面倒なので、パスワードを聞かれないように設定しておきます。

$ sudo visudo

/etc/sudoers.tmp というファイルを開くので、末尾の方に、xxx ALL=(ALL) NOPASSWD:ALL(xxxはユーザ名)を追記します。

タブ補完で大文字小文字を区別しない

ホームディレクトリに .inputrc というファイルを作り、以下の内容を書きます。

$ nano ~/.inputrc
set completion-ignore-case on

エイリアスの設定

個人的な設定です。treeコマンドは後述でインストールします。

$ nano ~/.bashrc
alias his='history | tail -n 40'
alias tree='tree --charset=C'

rootのパスワード設定

初期設定では、rootはパスワードが設定されていません。

しかし、パスワードを設定していなくても、下記のようにすることで、rootにスイッチできます。

$ sudo su
root #

1人で使う場合は、特に困らないのですが、セキュリティとしてこのスイッチを無効にした場合などでは、rootのパスワード設定が必要になることがあります。やり方は以下で、ユーザのパスワード変更と同じです。

$ sudo passwd root

別のユーザを作成

これも1人で使う場合は必要ないかもしれませんが、よく使うので書いておきます。

ユーザの作成には adduser コマンドを使います。似たようなコマンドで、useradd というのがありますが、こちらはホームディレクトリは作成されませんし、パスワード設定も別途行う必要があり、私が知る限り、メリットがありません。

以下は、ユーザ daisuke を追加した例です。

$ sudo adduser daisuke
ユーザー `daisuke' を追加しています...
新しいグループ `daisuke' (1001) を追加しています...
新しいユーザー `daisuke' (1001) をグループ `daisuke' に追加しています...
ホームディレクトリ `/home/daisuke' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しい パスワード: 
新しい パスワードを再入力してください: 
passwd: パスワードは正しく更新されました
daisuke のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
   フルネーム []: 
   部屋番号 []: 
   職場電話番号 []: 
   自宅電話番号 []: 
   その他 []: 
以上で正しいですか? [Y/n] 

作成したユーザをsudoグループに参加させる

上で作成したユーザは、デフォルトで sudoグループに参加していないため、sudoコマンドが使えません。

以下は、ユーザ daisuke を sudoグループに参加させる例です。

$ sudo gpasswd -a daisuke sudo

ホスト名の変更

現在のホスト名を表示します。

$ hostname
xxx-VirtualBox

ホスト名を変更します。

$ sudo hostnamectl set-hostname daisuke-VirtualBox

変更できたことを確認します。

$ hostname
daisuke-VirtualBox

nanoエディタのキーバインドを戻す

nanoエディタは、v8.0以降は、新しいキーバインドが採用されています。

以下は、nanoエディタの公式サイトです。

www.nano-editor.org

キーバインドが変更されたことは、オンラインマニュアル の最初のイントロダクションや、ニュース の「2024 May 1 - GNU nano 8.0 "Grus grus"」のところに書かれています。

今後は、新しいキーバインドに変わったバージョンの nanoエディタが普及していくことになるんだと思います。

私は、以前のキーバインドの方が使いやすかったので、元の設定に戻したいところです。その方法は、過去のキーバインドに戻すための設定が sample.nanorc に書いてあり、それを有効にしてやればいいということのようです。

nanoエディタの v8.4 の場合、/usr/share/doc/nano/examples/sample.nanorc に、過去のキーバインドに戻す設定が書かれています。このファイルをホームディレクトリに .nanorc とリネームして配置します。そして、以下のように変更します。これで、元のキーバインドに戻すことができました。

$ diff -urp ~/sample.nanorc ~/.nanorc
--- /home/ubuntu/sample.nanorc  2025-12-27 22:10:37.506221767 +0900
+++ /home/ubuntu/.nanorc        2025-12-27 22:18:59.652526121 +0900
@@ -9,10 +9,10 @@
 ## double quote on the line will be seen as the closing quote.

 ## If you want ^F, ^B, M-F and M-B to do what they did before version 8.0:
-# bind ^F forward main
-# bind ^B back main
-# bind M-F formatter main
-# bind M-B linter main
+bind ^F forward main
+bind ^B back main
+bind M-F formatter main
+bind M-B linter main

 ## Make 'nextword' (Ctrl+Right) and 'chopwordright' (Ctrl+Delete)
 ## stop at word ends instead of at beginnings.

ソフトウェア(パッケージ)のインストール

Python3はデフォルトで入っていました。

$ python3 -V
Python 3.10.12

最低限必要なパッケージをインストールしていきます。

OpenSSHサーバのインストール

WindowsからSSHで接続するために、OpenSSHサーバをインストールします。

$ sudo apt install openssh-server

インストールが完了したら、IPアドレスを確認します。

$ ip addr

ホストオンリーアダプタを有効にしていると、192.168.56.xxx(xxxは環境によって変化します) が見つかると思います。

TeraTermを起動して、見つかったIPアドレスでアクセスします。

TeraTermでSSHアクセス
TeraTermでSSHアクセス

「既存の鍵を、新しい鍵で上書きする」にチェックを入れて、「続行」をクリックします。

既存の鍵を、新しい鍵で上書きするにチェックを入れて続行をクリック
既存の鍵を、新しい鍵で上書きするにチェックを入れて続行をクリック

ゲストOS(Ubuntu)の「ユーザ名」と「パスフレーズ」(パスワード)を入力してOKをクリックします。

ゲストOS(Ubuntu)のユーザ名とパスフレーズを入力してOKをクリック
ゲストOS(Ubuntu)のユーザ名とパスフレーズを入力してOKをクリック

ログインできました。

ログインできた
ログインできた

OpenSSHサーバのインストールは完了です!

Samba

ホストOS(Windows)からゲストOS(Ubuntu)のファイルシステムにアクセスするために Samba をインストールします。

$ sudo apt install samba

インストールが完了したら、設定ファイルを編集します。

$ sudo nano /etc/samba/smb.conf

グローバルセクション([global])に文字コードを設定します。

[global]
   dos charset = CP932
   unix charset = UTF-8

ホストOS(Windows)とゲストOS(Ubuntu)のユーザ名が同じなら、ホームセクションを有効にするだけでいいです。ホームセクション([homes])はデフォルトで無効になっているので、有効にします。

コメントアウト(;)を外します。

[homes]
   comment = Home Directories
   browseable = no

コメントアウト(;)を外して、yesをnoに変更します。

   read only = no

コメントアウト(;)を外します。

   valid users = %S

プリンタセクション([printers])をプリンタ可能を無効にします(yesをnoに変更します)。

[printers]
   printable = no

もし、ホストOS(Windows)とゲストOS(Ubuntu)のユーザ名が異なるなら、共有ディレクトリの設定を行います。末尾に以下を追記します。

自分だけしか使わないような状況なら、ルート以下すべてをアクセスできる設定にしておきます。そうでないなら、公開するディレクトリを一部にしてください。

[share]
   comment = share
   writable = yes
   path = /
   public = yes

設定は以上なので、設定ファイルを保存して終了します(Ctrl+xでyを押す)。

次に、Sambaでアクセスできるユーザ(xxxとします)を追加します。

$ sudo pdbedit -a xxx

新しく設定するパスワードを聞かれるので、ホストOSからアクセスするときに使うパスワードを設定してください。2回入力すると、ユーザの追加が完了します。

最後に、Sambaをリスタートします。

$ sudo service smbd restart

ホストOS(Windows)のエクスプローラーからアクセスしてみます。

ホストOS(Windows)のエクスプローラーからアクセスできた
ホストOS(Windows)のエクスプローラーからアクセスできた

新規にファイルが追加できたら成功です!

Java(JDK)

現在の状態を確認します。

$ java -version
コマンド 'java' が見つかりません。次の方法でインストールできます:

インストールされていないようです。では、OpenJDKをインストールします。

新しすぎると、他のアプリで動かないなどがあるので、安定したバージョンを入れるといいと思います。パッケージでインストールできる最新は「21」のようですが、「17」をインストールします。

$ sudo apt install openjdk-17-jdk

インストールが完了したら、バージョンを確認します。

$ java -version
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-122.04.1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-122.04.1, mixed mode, sharing)

treeコマンド

ディレクトリの階層構造を表示するコマンドです。

$ sudo apt install tree

試してみます。

treeコマンドのデフォルトの出力は文字化けする場合があるので、簡易的な表示にしています。

$ tree --charset=C
.
|-- Main.java
`-- src
    `-- com
        `-- example
            `-- Sub.java

3 directories, 2 files

よく使う他のオプションをメモしておきます。

  • -d:ディレクトリのみ表示する
  • -a:全てのファイル(. から始まるファイルなど)を表示する
  • -f:フルパスで表示する
  • -L x:トップから x 層を表示する(表示する階層を制限することができる)
  • -P pattern:ディレクトリは常に表示されて、patternにマッチしたファイルのみが表示される
  • -I pattern:ディレクトリは常に表示されて、patternにマッチしたファイルは表示されない

エイリアスも設定しておきます。

# .bashrc
alias tree='tree --charset=C'

これぐらいにしておいて、必要になったら、都度インストールすることにします。

おわりに

やっと普通に使えるところまでセットアップできました。

次回からは、Java(IntelliJ)、QEMU などをやっていく予定です。

今回は以上です!

最後までお読みいただき、ありがとうございました。




以上の内容はhttps://daisuke20240310.hatenablog.com/entry/ubuntu2204より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14