ホームページ > 記事 > システムチュートリアル > KVM for Ubuntu での Windows オペレーティング システムの構成とインストールに関するガイド
KVM 仮想マシンをわざわざ使用する理由
最近、会社の都合で書く時間があまり取れていないので、技術的な記事で補っていきたいと思います。
これは次のようなものです。当社には、Android や iOS プラットフォームに属さない、組み込みシステムに基づいて開発された小さなものがあります。さて、これはどういう意味でしょうか?これは、この小さなものを開発するための言語は、Java、Objective-C、または Swift ではなく、C 言語であることを意味します。したがって、このコードをコンパイルするには、クロスコンパイラ (クロスコンパイル環境とも呼ばれる) が必要です。
実際、Xcode によってコンパイルされた iOS アプリもクロスコンパイルのカテゴリに属します。
ただし、このクロスコンパイル環境は Windows プラットフォームのみに対応しています。実際、GCC を除けば、最も便利なクロスコンパイル環境は Windows 環境のようです。組み込みシステムを扱う多くの学生は、Keil および IAR シリーズが現在業界で一般的に使用されていることを知っているはずです。残念ながら、どちらも Windows 固有であり、macOS または Linux バージョンはありません。
なぜ Windows は私をこれほど不幸にするのでしょうか?なぜなら、通常、作業効率を向上させるために、使用しなければならない業界アプリケーション ソフトウェアを Windows で実行する必要がある場合を除き、Windows ではなく Mac のみを使用しているからです。つまり、私たちには基本的に、暇で裕福な Windows ホストは存在しません。 「基本的にダメ」なんてことは全くありません。
サーバー側については、Windows Server についてさえ私に話さないでください。 macOS と Ubuntu の熱狂的なユーザーである私にとって、ベアメタル上で Windows Server を実行することは不可能です。私たちはサーバー上で Linux を実行するだけで、他のものには興味がありません。
それでは、問題は、アトラシアンのファミリー バケット (Bitbucket、Bamboo、JIRA、Confluence など) を使用した、CI システム (継続的インテグレーション) とも呼ばれる自動コンパイル システムがあり、すべて Docker 仮想化上で実行されているということです。 Linux プラットフォーム上のコンテナ。
今回は、リリースの人員をより適切に確保し、将来的に各リリースのコンテンツの追跡と管理を容易にするために、この小さなことのコンパイラを自動化したいと考えています。解決すべき最初の問題は、Windows サーバーがないことです。
仮想化は現在非常に人気があるので、既存の Ubuntu サーバーを使用して Windows を仮想化しましょう。
KVMとは
KVM の正式名は「カーネルベースの仮想マシン」で、簡単に言うと、Linux カーネルをベースにした仮想化管理システムです。
この機能は、Linux カーネル バージョン 2.6.20 以降に統合されました。 Docker はアプリケーション層での仮想化であるのに対し、KVM はシステム層での仮想化であることを理解してください。
違いは、Docker 仮想化のコンテンツはカーネルをホストと共有する必要があるということです。つまり、Linux タイプのシステムのみを実行できます。
KVM はホスト全体を仮想化するため、Linux 自体に限定されず、さまざまなオペレーティング システムをインストールできます。後で気が向いたら、Ubuntu で macOS を仮想化できるかどうかを確認してみます。この方法では、iOS アプリを自動的にコンパイルするために別の Mac ホストを入手する必要はありません。
KVM のインストール
今回はUbuntu 16.04 LTS版を使用していますが、長期使用と安定性を考慮して基本的にはLTS版のみを選択していますが、他のバージョンでも大きな違いはありませんので参考程度にしてください。
最初のステップは、KVM 関連のパッケージ ファイルをインストールすることです。私のサーバーはすべてコマンド ラインであり、X デスクトップがインストールされていないため、--no-install-recommends パラメーターを追加しました。それ以外の場合は、virt-viewer などのパッケージがインストールされます。これらのパッケージには、依存関係に X11 や多くのグラフィック ライブラリが含まれていますが、どれも必要ありません。ただし、デスクトップ システムを有効にする場合は、このパラメータを追加する必要はありません。
$ sudo apt-get install --no-install-recommends qemu-kvm qemu-utils libvirt-bin virtinst cpu-checker
すべてが正常かどうかを確認してみましょう
$ kvm-ok
情報: /dev/kvm が存在します
KVMアクセラレーションを使用できます
非常に良いです。すべてうまくいきました。別のブリッジ ネットワークを取得しましょう。実際、これは必須ではありません。使用シナリオによって異なります。
KVM はそれ自体で virbr0 ブリッジ ネットワークを作成しますが、これは NAT ネットワークであり、LAN 内の他のホストと通信する方法がないため、怠け者にならずに自分でブリッジ ネットワークを構築してください。
参考構成は次のとおりです:
$ 猫 /etc/network/interfaces
# このファイルには、システムで利用可能なネットワーク インターフェイスが記述されています
# とそれらをアクティブにする方法 詳細については、interfaces(5).
を参照してください。ソース/etc/network/interfaces.d/*
# ループバック ネットワーク インターフェイス
オートロー
iface lo inet ループバック
# ブリッジ ネットワーク インターフェイス
自動br0
iface br0 inet 静的
アドレス1.2.3.4
ネットマスク 255.255.255.0
ゲートウェイ 1.2.3.1
dns-nameservers 1.2.3.1
ブリッジポート enp9s0
橋で降りる
ブリッジ_FD 0
bridge_maxwait 0
ネットワークを再起動し、ブリッジのステータスを確認します:
$ sudo systemctl ネットワークの再起動
$ sudo brctl show
ブリッジ名ブリッジID STP対応インターフェイス
br0 8000.f079593874d9 no enp9s0
virbr0 8000.525400087ef2 はい virbr0-nic
OK、すべて正常です。仮想ホストの作成を開始できます。
仮想ホストの作成
KVM は最初のステップを完了しただけです。続行する前に仮想ホストを作成する必要があります。
始める前に、いくつかのことを準備する必要があります:
1.Windows インストール イメージ
2.Virtio ISO とフロッピー ディスク イメージ
3.VNC クライアント (macOS に付属)
ここでは Virtio 0.1.126-2 バージョンを使用しています。オペレーティング システムのバージョンは、Ubuntu 16.04.1 LTS です。
すべての準備が完了しました。virt-install コマンドを使用して仮想マシンを作成します。
virt-install \
--名前 win10 \
--メモリ 2048 \
--vcpus ソケット = 1、コア = 1、スレッド = 2 \
--cdrom=/path/to/windows_10.iso \
--os-variant=win8.1 \
--ディスク /path/to/win10/win10.qcow2,bus=virtio,size=40 \
--disk /path/to/virtio/virtio-win-0.1.126_amd64.vfd,device=floppy \
--ネットワーク ブリッジ=br0、モデル=virtio \
--グラフィック vnc、パスワード=Passw0rd、ポート=5910 \
--hvm \
--virt-type kvm
基本的に構成情報は上記のとおりですが、仮想情報マシンの構成は次のとおりです。
2Gメモリ
1 CPU、1 コア、2 スレッド
1 CDROM (Windows インストール ディスク)
40G ハードディスク (システムディスク)
1 フロッピー ドライブ (Virtio ドライバー)
ポート 5910 で VNC リモート デスクトップを開きます
コマンドを正しく入力すると、次のようなフィードバック メッセージが表示されるはずです。
インストールを開始しています...ドメインを作成中...
ドメインのインストールがまだ進行中です。インストールが完了するのを待っています。
簡単に言えば、仮想マシンは作成されましたが、グラフィカル インターフェイスがないため、次に進む方法がありません。 VNC に接続したら、続行できます。このプロンプトは 1 回のみ表示され、システムのインストール後はこの起動待ち状態は発生しません。
Windows 10をインストールする
ただし、仮想マシンの作成時に、VNC リモート デスクトップを提供するためにポート 5910 の使用を指定しました。ただし、このポートはデフォルトで 127.0.0.1 にバインドされているため、直接アクセスすることはできません。つまり、ローカルでのみアクセスできます。まず、リモートのローカル ポートをローカル ポートにマップする必要があります。ssh -L 5910:127.0.0.1:5910 サーバー
次に、macOS で、⌘ スペースキーで Spotlight を呼び出し、次のように入力します:
vnc://127.0.0.1:5910
ポップアップ ウィンドウにパスワードを入力します: Passw0rd
これで、Windows システムを問題なくインストールできます。ハードディスクが認識されない場合は、ドライバーを手動でロードし、ドライブ A と対応する Windows ディレクトリを選択する必要があります。同様に、ネットワーク カードにドライバーがない場合も、同じ方法が適用されます。
インストール完了のスクリーンショットを添付します:
以上がKVM for Ubuntu での Windows オペレーティング システムの構成とインストールに関するガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。