Linux 講座 / 仮想マシンで Linux 実習環境を作る

仮想マシン(VM)は、現在使用しているコンピュータの中に別のLinuxコンピュータを作る方法です。新しい仮想ディスクにインストールし、コンソールやスナップショットの復元を準備すれば、元のOSのディスクを変更せずに、講座のファイル・サービス・ネットワークの実習を行うことができます。

ホスト・ゲストと講座の基準環境

仮想化プログラムを実行するコンピュータがホストで、その中にインストールしたLinuxがゲストです。この講座の共通基準は、Ubuntu 26.04 LTS または Rocky Linux 9 系列、Bash、systemd を使用する一般的なVMです。両方のディストリビューションをインストールする必要はありません。最初は Ubuntu 1台で始め、APT と DNF・サービス名の違いを比較するときに Rocky VM を追加すればよいです。

この記事の作成メニューは VirtualBox 7.2 を基準に説明します。Oracle の VM 作成ガイドで、現在インストールしているバージョンとサポートされているゲストを確認してください。以下の資源は実習用割り当ての例であり、公式の最小仕様ではありません。ホストはこれらの資源を提供しつつ、正常に動作する余裕が必要です。

用途 CPU・メモリ・ディスクの割り当て例 選択基準
Ubuntu Desktop 26.04 仮想CPU 2個、RAM 8GB、動的ディスク 40GB グラフィック画面とターミナルを併用
Ubuntu Server または Rocky 最小インストール 仮想CPU 2個、RAM 4GB、動的ディスク 30GB コマンドライン中心の実習、インストールするサービスに応じて増設

Ubuntu 26.04 リリースノートは、デスクトップを快適に使用するために RAM 6GB と余裕のあるストレージ 25GB などを案内しています。VM のディスクファイルとスナップショットはホストのストレージも使用します。動的ディスクが最大容量を最初からすべて使用しなくても、将来的に増加する分のスペースを別途確保してください。

CPU アーキテクチャとインストールイメージを確認する

Windowsでは、設定 → システム → 情報のシステムの種類、macOSでは「このMacについて」でプロセッサを確認します。Intel・AMD 64ビットホストは一般的に amd64 または x86_64 イメージ、ARM64 ホストは arm64 または aarch64 イメージとそのホストをサポートする仮想化プログラムを選択します。amd64という名前は Intel 64ビットコンピュータも含みます。イメージの名前だけを変えて他のCPU用イメージを実行することはできません。

Ubuntuは公式26.04イメージ一覧から Desktop または live-server ISO を入手します。Rockyを選択した場合は、Rocky Linux公式ダウンロードで9系列とCPUアーキテクチャを確認してください。最新メジャーバージョンを自動で選ばず、チュートリアルで定めた基準とインストールファイル名が一致しているか確認します。

ダウンロードした ISO の SHA-256 を公式配布経路のチェックサムと比較します。Windows PowerShell では、下記コマンドのファイルパスを実際のダウンロードパスに置き換えてください。ファイルハッシュ比較は破損の有無を確認するためであり、チェックサム自体の真正性は公式 HTTPS 経路と配布版の署名検証手順で確認する必要があります。

Get-FileHash -Algorithm SHA256 "C:\Downloads\YOUR-LINUX-IMAGE.iso"

新しい仮想マシンと仮想ディスクを作成

  1. ホストOS用のVirtualBoxを公式配布経路からインストールして起動します。管理者画面のHome → Newを選択します。バージョンによってツールの場所は異なる場合があります。
  2. 名前をlinux-course-ubuntuのように設定し、VMフォルダーとISOイメージを選択します。インストール内容を自分で習得するためにInstall OS Using Unattended Installationのチェックを外します。前の画面ではSkip Unattended Installationを選択する形になる場合があります。
  3. 仮想CPU・メモリをホストの余裕に合わせて割り当て、新しい動的仮想ディスクを作成します。既存の物理ディスク接続や生ディスク機能は使用しません。
  4. 作成後、VMのSettings → Networkで最初のアダプタをNATに設定し、接続状態を確認します。共有フォルダー・双方向クリップボード・ドラッグ&ドロップは最初はオフにしておきます。
  5. 概要で新しい仮想ディスク・ISO・メモリを再確認し、Startで起動します。ハードウェア仮想化エラーが出た場合は、ホストCPUと仮想化プログラムのサポート条件を確認してください。他のセキュリティ・仮想化機能は理由なしにオフにしません。

ゲストOSのインストールと初回ログイン

Ubuntu Desktopでは、インストール画面で言語・キーボード・ネットワークを確認し、対話型インストールを進めます。Ubuntu公式インストール手順を参照しつつ、ディスクの選択は必ず先ほど作成したVM内の仮想ディスクかどうか、容量とデバイス一覧で確認してください。新しいVMに仮想ディスクが1つだけ接続されていれば、そのディスクを使用する自動インストールを選ぶことができます。ホスト上で同名のディスク初期化作業は実行しません。

ユーザー名・コンピュータ名・タイムゾーン・パスワードを設定します。講座用の一般アカウントを作成し、管理者作業はsudoで行います。Rockyのインストール要約では、インストール対象とソフトウェア選択を確認し、一般ユーザー作成時に管理者権限を与えるかどうか選択します。インストール後、一般ユーザーでログインした際にsudoが許可されるかも確認する必要があります。サーバーインストールを選択した場合、グラフィック画面なしでログインプロンプトが表示されるのが正常です。

インストールが完了したらゲストを再起動します。インストールイメージの削除案内が表示されたり、再びインストール画面に戻った場合は、VMの仮想光学ドライブからISOを取り外し、仮想ディスクから起動します。Desktopではアプリ一覧のターミナルを開き、Serverではコンソールにログインします。

インストール結果とネットワークを記録する

cat /etc/os-release
uname -m
uname -r
bash --version
ps -p 1 -o comm=
ip -brief address
ip route

/etc/os-releaseの配布版・VERSION_ID、CPUアーキテクチャ、カーネル・Bashバージョンを記録します。psでPID 1がsystemdかどうかも確認します。この出力が基準環境と異なる場合は、インストールイメージを再確認してください。IPアドレスとデフォルトルートはVMごとに異なるため、特定のアドレスが出るべきだと覚える必要はありません。コマンド形式はターミナルと基本コマンド講座で引き続き学ぶことができます。

NATはゲストの外部接続には便利ですが、ホストからゲストのプライベートアドレスに直接アクセスできることを保証するものではありません。SSHの実習ではNATポート転送を別途設定するか、目的に応じた別のネットワークを構成します。ブリッジはゲストを実際のLANに露出させることができるため、ファイアウォール・アドレス衝突・会社のネットワークポリシーを確認した上で選択します。最初からインターネットにVMポートを公開する必要はありません。

スナップショットを作成して実際に復旧を確認する

基本インストールが正常に動作する場合、ゲスト内でシャットダウンしてVMをPowered Off状態にします。VirtualBoxマネージャーで該当VMのSnapshots → Takeを選択し、clean-installのように意味のある名前を付けます。メニューの位置や復元操作については、VirtualBox 7.2ユーザーガイドのSnapshots章を参照してください。

スナップショットを作成した後、VMを起動して以下のファイルを作成します。このファイルはスナップショット復元で消えても問題ない確認用データです。

mkdir -p "$HOME/linux-course-recovery"
printf 'created after snapshot\n' > "$HOME/linux-course-recovery/after-snapshot.txt"
cat "$HOME/linux-course-recovery/after-snapshot.txt"
  1. VMを正常に終了します。スナップショット後に必要なファイルがある場合は、まずVMの外で別途保管します。
  2. Snapshotsでclean-installを選択し、Restoreを実行します。現在の状態を追加スナップショットとして保存するか尋ねられた場合は、選択結果を確認します。
  3. 再度起動してログイン後、以下のコマンドで確認用ファイルが消えているか確認します。スナップショット前の状態にファイルがなかった場合、snapshot restoredが予想通りの結果です。
if test ! -e "$HOME/linux-course-recovery/after-snapshot.txt"; then
  printf "snapshot restored\n"
else
  printf "file still present; check selected snapshot\n"
fi

スナップショットは、同じストレージ上のVMの状態を戻す機能であり、独立したバックアップではありません。ホストディスクの故障やVMフォルダの破損に備えるには、停止したVMの別コピー・エクスポートと重要データのバックアップが必要です。共有フォルダ・外部サービス・VM外に送信したデータは、ゲストスナップショットの復元では元に戻りません。

実習を始める前に確認すること

ゲストログイン、ターミナル起動、sudo権限、NAT接続、仮想コンソール再接続、スナップショット復元まで確認すれば準備完了です。パッケージ・SSH・ファイアウォール・マウントのようなシステムを変更する実習はこのVMで行い、変更前のスナップショットと変更内容を残してください。SSHが切断されても仮想コンソールでログインできなければ、元の設定を復元することはできません。