Ichmy's Qemu

あなたは
2 4 0 0 5 3 0
人目のお客様です。 (本日163人目、昨日776人) (from 2007-09-30)

Qemuで遊ぼうのこーなー

0.目次

1.このこーなーの概要

2.Qemuとは

3.Qemuの遊び方

4.Qemuを加速する(アクセラレータ付きで遊ぶ)

5.ネットワーク接続について

6.Windows 7 のインストールについて

7.Windows XP のインストールについて

8.Windows 2K のインストールについて

9.Windows 98 のインストールについて


1.このこーなーの概要

このこーなーではQemu上でいろいろなOSを立ち上げるための Tipsを紹介する予定ですが工事中。

いまのところ筆者のQemuでの各種OSの動作状況は

OS Addin 状況
Windows7 無し 問題なし
WindowsXP(pro-32bit) 問題なし
Windows2000 起動に失敗
Windows98SE Netは要Tips
Windows95
Windows3.1
日本語MSDOS6.2V
Ubuntu Groovy Gorilla 重くてつかえないが動作は問題なし
Debian buster 10.7
Fedora 33
CentOS 8.3-2011 インストールが途中で固まる
open SUSE Leap 15.2
Oracle Solaris 11.4 インストーラー起動に失敗
FreeBSD 12.2R Xorgは失敗、CUI動作は問題なし
NetBSD 9.1 起動に失敗
Windows10(評価版) 重くてつかえないが動作は問題なし

2.Qemuとは

このqemuはオープンソースのエミュレターで、 パフォーマンスはメーカー製のエミュレターと比べ

劣悪です。 しかし、

  (1) ARMやPowerPC、H8など、いろいろなCPUをエミュレート出来る

  (2) 本サイトの目的である古いOSを使う分には多少遅くとも問題ない

など利点があり、突破口になるかと期待しています。 公式サイトは、こちら

qemu は基本的に Unix 上で走りますが、Windows用の最新のバイナリーについては こちらから入手ください。 本サイトでは、この Windows 版の Qemu について以下解説しています


3.Qemuの遊び方

(1) 概要

Qemu (Win版) の遊び方について、以前は詳しく解説されていたサイトがあった のですが閉鎖され

たので、 以下、遊ぶための最低限の設定を紹介します


(2) インストール

まず、QEMU Binaries for Windows and QEMU Documentationからインストーラをダウンロード

します。 母艦OSが64bit用のかたはw64のディレクトリから、32bitの方はw32から、 日付の新しいインストーラをダウンロードしてください

筆者 が起動に成功している最新版は、https://qemu.weilnetz.de/w64/qemu-w64-setup-20201124.exeです。 (Qemu5.2.0-rc3)

以後の説明ではこれを展開インストールして C:¥Program Files¥qemuに置き、ワーク用フォルダをD:¥qemuに作成したものとして説明します。


(2) 仮想ハードディスクの作成

初期設定の第1歩として仮想HDイメージを作ります。他のエミュレータなら新規仮想マシン作成時に勝手に

作ってくれるのですが、qemu ではコマンドプロンプトから作ります。

たとえば32GBの仮想HDイメージを作る場合、

 C:\Users\ichmy> d:
 D:\> cd qemu
 (環境変数のPATHを弄ると怖いので、コマンドプロンプト内だけ有効になるようにPATHを通します)
 D:\qemu> set PATH=%PATH%;C:\Program Files\qemu
 (ハードディスクイメージファイルを作成)
 D:\qemu> qemu-img.exe create -f qcow2 harddisk.qcow2 32G 

各オプションの意味は

① create : ファイルイメージ作成を指示

② -f qcow2 : 必要なときにファイルサイズが大きくなるフォーマットを指定

他に可能なオプションは、vmdf(VMWare互換)、vhdx(Hyper-V互換)、vdi(VirtualBOX互換)などがあります

③ harddisk.qcow2 : イメージのファイル名です。お好みで変えてください

④ 32G : ディスク容量


(3) 起動条件設定

qemu を起動するには手打ちでもいいのですが、コマンドオプション入力が面倒なのでバッチファイルを作成します

バッチファイルを作成するには以下の内容をメモ帳にて作成し、FreeBSD.batと名前を付けて

先ほどのフォルダに入れます

 @ECHO OFF
set PATH=%PATH%;C:\Program Files\qemu
START qemu-system-x86_64w.exe -m 4G -cdrom FreeBSD-12.2-RELEASE-amd64-dvd1.iso ^
-smp 2 -drive file=harddisk.qcow2 -boot once=d -soundhw ac97

各オプションの意味は

① set PATH=%PATH%;C:\Program Files\qemu : さきほどqemuをインストールしたフォルダ

 をコマンドサーチパスに加えます。上級者の方はコントロールパネルから設定してもいいのですが

  ここでは環境を汚さないために、qemu起動毎に設定しています

② qemu-system-x86_64w : この例では64bitシステムを起動します

③ -m 4G : ゲストOSに与える主記憶容量GB。(MだとMB単位で指定できます)

④ -cdrom FreeBSD-12.2-RELEASE-amd64-dvd1.iso : CDROMイメージファイル名の設定。お好みで設定ください

⑧ -drive file=harddisk.qcow : 仮想HDファイル名の設定。

⑨ -smp 2 : 仮想CPU数の設定。この例では2個

⑩ -boot once=d : ブート順の設定。この例では、初回起動時のみCD、その後はハードディスクに

  なります。インストールが終わったら、取り除いてください

⑪ -soundhw ac97 : サウンドカードにrealtek の ac97 を使用

(5) qemu モニタの使い方

Win2Kのアップグレード版のインストール時などに CDROM の交換が求められることがあります。

このようにエミュレーションしてる最中にQemuにコマンドを伝える仕組みがqemuモニタです。

ゲストOSが表示されている画面で「Ctrl + Alt +2」をおすと画面がqemuモニタに切り替わります

元のゲストOS画面に戻すには「Ctrl + Alt +1」です。 使い方は、たとえば

 (qemu) info block   ← 各機器の状態表示
 (qemu) eject  ide1-cd0   ← CDROM メディアの排出
 (qemu) change ide1-cd0 \\.\f:  ← F ドライブの実CDROM メディアのマウント
 (qemu) eject  ide1-cd0   
 (qemu) change ide1-cd0 win2k.img  ← CDROMイメージファイルのマウント

(6) ゲストOSのドライバーについて

アドインが一切無いので各種ドライバーは Drivers for QEMU devicesよりそれぞれ入手してください。


4.Qemuを加速する(アクセラレータ付きで遊ぶ)

(1) 概要

上記3.の使い方では、いくらなんでも遅すぎで、死にかけたかと思います

Linuxでのqemuなら、KVMを使うのですが、Windows10母艦の場合は仮想マシン プラットフォーム(WHPX)を使うと早くなります。

(tips)
ほかに、intel社から提供されているHAXM(Hardware Accelerated Execution Manager)もあるのですが、筆者の所有する母艦パソコンはAMDのCPUのため、テストできず、説明省略

(2) 母艦の準備

Windows10母艦の仮想マシンプラットフォームを有効にします。

有効にするには、コントロールパネルから「Windows の機能の有効化または無効化」から、当該機能の有効化フラグを立てます

母艦パソコンのBIOSから仮想化機能の有効化も必要です

(3) アクセラレータ付きで起動

準備ができたら、アクセラレータ付きで起動します。上記3での例だと

 START qemu-system-x86_64w.exe -m 4G -cdrom FreeBSD-12.2-RELEASE-amd64-dvd1.iso ^
-smp 2 -drive file=harddisk.qcow2 -boot once=d -accel whpx 

の様に、STARTの行の最後にでも「 -accel whpx」のオプションを追加して 起動してください


5.ネットワーク接続について

(1) ユーザーモード接続

qemuは標準で以下のような形態でネットワーク接続します。

   +----------+                 +------------------+         +--------+
   |ゲスト OS |---------------->|ファイヤーウォール|-------->|ホストOS| ---> internet
   |          | (qemu内仮想LAN) |                  |         |        |
   +----------+                 +------------------+         +--------+
   10.0.2.15                     10.0.2.2 = ルーター        192.168.1.2(筆者の例)
                                          = DHCPサーバー
                                 10.0.2.3 = DNSサーバー
                                 10.0.2.4 = SMBサーバー

qemu では標準では外部からの通信を受け付けません。 このため動かすのにユーザー特権が要らないメリット

があるのですが、デメリットの方を逆手にとって “ファイヤーウォール”と称しています。

※ なお、この “ファイヤーウォール” はTCP/UDPのパケットしか通しませんので ping(=ICMP)は通しません。

(2) ポート開放

たとえばゲストOSの ssh(ポート番号22) をホストOSのポート番号5555で待ち受ける場合

上記3節(4) でのqemu.exe のオプションに次の内容を加える

  -nic user,hostfwd=tcp::5555-:22 

このオプションは複数指定できるので、開放したいポート数だけ追加指定する

(3) Windowsゲストと LAN内PC間でのファイル共有

まず、smb内臓Sambaサーバーですが、Win母艦ではうまく動かせませんでした

また、LAN内の外部PCにその替わりをさせる場合ですが、ファイル共有においてワークグループ接続のリストに現れない。

接続には、面倒だが外部PCのIPアドレスと共有フォルダ名(例えば、"\\192.168.24.3\[共有フォルダ名]")

をゲストOS側で「ネットワークドライブの割り当て」にて直接指定する。

なお、ホストOS側でファイルを公開すると、 ゲストOSからは共有名 "\\10.0.2.2\[共有フォルダ名]") で

アクセスできます。


6.Windows 7 のインストールについて

(1) インストールTips

windows7には、今回使用したrealtek ac97のドライバが無いため、こちらからダウンロードしてください

7.Windows XP のインストールについて

(1) WinXP用 qemu 起動オプション

今回テストするwindowsXP(pro-32bit版)は、インストール時のメモリに上限2GBがあり、

以下起動オプションを一部変更

また、なるべくWinXP無印内臓ドライバで動く構成に変更しました

 START qemu-system-i386w.exe -m 2G  -soundhw ac97 -cdrom winxp-pro.iso ^
  -vga cirrus  -drive file=harddisk.qcow2 ^
  -netdev user,id=user.0 -device pcnet,netdev=user.0 ^
  -boot once=d 

変更したオプションの意味は

① qemu-system-386w : この例では32bitシステムを起動します

② -m 2G : WinXP(pro-32bit)のインストール時上限

③ -vga cirrus : ビデオカードにCirrus Logic GD5446 を指定しています

④ -netdev (中略) -device pcnet : イーサカードに AMD Ethernet Card を指定しています

⑤ -smp -accel は外します( accelはかえって重くなった)

(2) インストールTips

インストール中の細かな注意点ですが

① 最初のキーボードを選択する画面で、半角/全角キーを押して106日本語キーボードを選ぼうとする場面
  で、同キーを押してもゲストOSに伝わらない その際は、「S」キーを押して、次の画面で選択できます

② CDROM交換を求められた際には上記qemuモニタの項を参照ください

(3) インストール途中でハングアップした場合の対処

今回の筆者の環境では起こりませんでしたが、qemu上WinXPではインストール中よくハングします

ドライバ認識不調が原因のようです

ハングしてる最中も、例の紙芝居(windowsの宣伝文句の垂れ流し)は動き続けますが、騙されず、 強制再起動で次のステップに進みます。

その際、起動バッチファイルの -boot オプションを -boot c に変更してハードディスク起動に切替ください

ドライバーは Drivers for QEMU devicesより入手してください。

ネット無しでドライバーをゲストOSに渡すのは難しいですが、筆者はドライバーをCDRWに書いてからISOファイル化し、マウントして渡しました


8.Windows 2K のインストールについて

いろいろオプション変えてみたのですが、起動に失敗


9.Windows 98 のインストールについて

(1) Win98SE用 qemu 起動オプション

今回テストするwindows9xは、インストール時のメモリに上限512MBがあり、

以下起動オプションを一部変更

また、なるべくWin98SE内臓ドライバで動く構成に変更しました

 START qemu-system-i386w.exe  -M pc  -L Bios ^
  -m 512M   -soundhw es1370  -cdrom win98SE.iso ^
  -vga cirrus ^
  -rtc base=localtime,clock=host -parallel none -serial none ^
  -name win98SE  -drive file=harddisk.qcow2,media=disk,cache=writeback ^
  -netdev user,id=user.0 -device ne2k_pci,netdev=user.0 ^
  -boot once=d -usb

変更したオプションの意味は

① qemu-system-386w : この例では32bitシステムを起動します

(1) FD 起動用オプション

Win98 より以前は FD からの同が必要です。たとえば以下の様にオプションを与えます

  -boot a -fda fd1.vfd 

fd1.vfd の所はフロッピーのイメージファイル名です。お好みで設定してください

OS伝説で遊ぼうのこーなーへ戻る


メインメニュー

資格取るぞのこーなー

OS伝説で遊ぼうのこーなー

ガジェットで遊ぼうのこーなー