QEMUで.vmdkファイルを使用して仮想マシンを作成

とあるOSでコピー貼り付けができないので不便です。というわけでqemuでこれを実現します。

QEMU(Quick EMUlator)は、オープンソースの仮想化ソフトウェアです。以下に、QEMUの主要な機能と特徴を簡単に説明します。

QEMUの概要

  1. 仮想化とエミュレーション:
    • QEMUは、ホストマシンのハードウェアをエミュレートし、仮想マシン(VM)を作成します。これにより、異なるアーキテクチャのOSやソフトウェアをホストマシン上で実行できます。
    • 例えば、x86アーキテクチャのマシン上でARMアーキテクチャのOSを実行することが可能です。
  2. パフォーマンス:
    • QEMUは、カーネルベースの仮想マシン(KVM)やXenなどの仮想化技術と組み合わせることで、ネイティブに近いパフォーマンスを実現します。KVMと組み合わせると、ホストのハードウェア支援を受けることができ、高速な仮想化が可能です。
  3. 柔軟性:
    • QEMUは多種多様なCPUアーキテクチャ(x86、ARM、PowerPC、SPARCなど)をサポートしており、様々なOSやソフトウェアのテスト環境として利用できます。
  4. ディスクイメージ:
    • QEMUは、複数のディスクイメージフォーマット(qcow2、raw、vmdkなど)をサポートしており、仮想マシンのストレージを柔軟に管理できます。
  5. ネットワーク仮想化:
    • QEMUは、仮想ネットワークデバイスをサポートしており、仮想マシン同士やホストマシンとのネットワーク接続を構築できます。

QEMUの利用例

  • 開発とテスト:
    • 異なるアーキテクチャ向けのソフトウェア開発やテストに利用されます。
  • セキュリティリサーチ:
    • 仮想環境を使って、安全にマルウェアの分析やセキュリティテストを行うことができます。
  • 教育:
    • 異なるOSやアーキテクチャの学習・実験環境として利用されます。

視覚的概念図(例)

  1. QEMUの基本構造図:
    • ホストOS: 実行中のメインOS (例: Windows, Linux)
    • QEMU: 仮想化ソフトウェア
    • ゲストOS: QEMU上で動作する仮想マシン内のOS (例: Linux, Windows)
+-----------------------+
| ホストOS |
| (Windows/Linux) |
+-----------------------+
|
v
+-----------------------+
| QEMU |
+-----------------------+
|
v
+-----------------------+
| ゲストOS |
| (Linux/Windows) |
+-----------------------+
  1. 上記フロー図を実現する例:
    • ステップ1: ホストOSにQEMUのインストール
    • ステップ2: ゲストOSのISOイメージをダウンロード
    • ステップ3: 新しい仮想ディスクを作成
    • ステップ4: ゲストOSをQEMUにインストール
    • ステップ5: ゲストOSの起動と使用

実践
Proxmox VEに作成した仮想マシン(ubuntu24.04)にqemuをインストールします。VirtualBoxやVMware、WSLでもいいかもしれません。WindowsやMacの場合は、公式サイトからバイナリをダウンロードしてインストールします。

sudo apt-get install qemu qemu-kvm

しかし、エラーが発生しました。

パッケージリストを読み込んでいます… 完了
依存関係ツリーを作成しています… 完了
状態情報を読み取っています… 完了
注意、’qemu-kvm’ の代わりに ‘qemu-system-x86’ を選択します
パッケージ qemu は使用できませんが、別のパッケージから参照されます。
これは、パッケージが欠落しているか、廃止されたか、または別のソース
からのみ利用可能であることを意味します。

E: パッケージ ‘qemu’ にはインストール候補がありません

というわけで、指示に従いコマンドを変更します。

sudo apt-get install qemu-system-x86

次にVMwareで使用される.vmdkファイルを用意します。.vmdkファイルは特定のフォルダに存在するはずです。例えば、/path/to/your/vmdk/file.vmdkのようなパスに存在します。今回は、windowsのVMwareで仮想マシンを作成していましたので、.vmdkファイルを仮想マシン(ubuntu24.04)に送信しておきます。ちなみにTeraTermのSSH SCPで転送しておきました。

QEMUで.vmdkファイルを使用して仮想マシンを起動します。

qemu-system-x86_64 -hda /path/to/your/vmdk/file.vmdk

しかし、またエラーが発生。

mamu@vm102:~/vmdk$ qemu-system-x86_64 -hda /home/mamu/vmdk/FreeDOS1.3.vmdk
gtk initialization failed

gtk initialization failed エラーは、QEMUがGUIモードで起動しようとしている際に、GUI環境が適切に初期化できなかったことを示しています。このエラーを回避するために、いくつかの方法を試すことができます。

方法1: QEMUをヘッドレスモードで起動する

QEMUをヘッドレスモードで起動し、グラフィカルユーザーインターフェースを使用しないようにします。この場合、仮想マシンのコンソールにアクセスするためにVNCやSSHを使用します。上にエラーはこちらのコマンドで解決できました。

qemu-system-x86_64 -hda /home/mamu/vmdk/FreeDOS1.3.vmdk -nographic

方法2: SDLやVNCを使用して起動する

QEMUのフロントエンドを変更することで、GTKの初期化エラーを回避できます。例えば、SDLやVNCを使用してQEMUを起動します。

SDLを使用する場合:

qemu-system-x86_64 -hda /home/mamu/vmdk/FreeDOS1.3.vmdk -display sdl

VNCを使用する場合:

qemu-system-x86_64 -hda /home/mamu/vmdk/FreeDOS1.3.vmdk -vnc :1

これにより、QEMUはVNCサーバーとして起動し、VNCクライアント(例えば、vncviewer)を使用して仮想マシンに接続できます。

方法3: GTKの依存関係をインストールする

GTKの初期化エラーが発生する場合、GTKの依存関係が不足している可能性があります。以下のコマンドを使用して、必要なパッケージをインストールします。

sudo apt-get install gtk3.0

FreeDOSが起動したログ

SeaBIOS (version 1.16.3-debian-1.16.3-2)

JemmEx v5.79 [02/02/20]
JemmEx loaded
Kernel: allocated 46 Diskbuffers = 24472 Bytes in HMA

FreeCom version 0.85a – WATCOMC – XMS_Swap [Jul 10 2021 19:28:06]

Error: DIGN8002 The BLASTER environment settings are invalid.

Performing action: APMDOS
If APMDOS slows down any app, use ADV:REG instead.
Going resident.

CuteMouse v2.1 beta4 [FreeDOS]
Installed at PS/2 port

CD-ROM initialization.
attempting to use the UDVD2 CD driver, success
attempting to load SHSUCDX CD extenstions, success
successfully started the CD driver and extenstions for drive D: (FDCDX001)

Modules using memory below 1 MB:

Name Total Conventional Upper Memory
——– —————- —————- —————-
SYSTEM 17,072 (17K) 10,768 (11K) 6,304 (6K)
JKEYB 6,000 (6K) 6,000 (6K) 0 (0K)
COMMAND 3,376 (3K) 0 (0K) 3,376 (3K)
FDAPM 928 (1K) 0 (0K) 928 (1K)
CTMOUSE 3,104 (3K) 0 (0K) 3,104 (3K)
UDVD2 1,984 (2K) 0 (0K) 1,984 (2K)
SHSUCDX 6,160 (6K) 0 (0K) 6,160 (6K)
Free 717,104 (700K) 637,056 (622K) 80,048 (78K)

QEMU network detected.

Physical hardware networking is not supported at this time.

CD-ROM configured as D: drive (FDCDX001)

Done processing startup files C:\FDCONFIG.SYS and C:\FDAUTO.BAT

Type HELP to get support on commands and navigation.

Welcome to the FreeDOS 1.3 operating system (http://www.freedos.org)

起動はしてコピペができるようになったのですが、音楽プレイヤーが起動しないなど不具合だらけでした。

タイトルとURLをコピーしました