Linux用QEMUエミュレーターのMac OS X

ハブロビテスこんにちは。 最近、Mac OS XでObjective-Cを書く必要がありました。私のハードウェアはどのビルドにも最適ではなく、宗教によってこのOSに完全に座ることはできません。 Linux上のQemu仮想マシンにMac OS Xをインストールすることにしました。

ここに私が使用したすべてのもののリストがあります:

-Gentoo Linux 64ビット
-Qemu 0.10.5
-KVM(カーネルベースの仮想マシン)88-r1
-LinuxカーネルでのKVMサポート
-Intel Virtualization Technologyをサポートするプロセッサー (私の場合はCore2Duo E6400です
-Linuxカーネル> = 2.6.20
-Mac OS X iATKOS v7(Leopard 10.5.7)をビルドします

構成に進み、カーネルでKVMを追加する必要があります。 ソースをダウンロードし、解凍し、 make menuconfigを実行します
プロセッサのタイプと機能->準仮想化ゲストのサポート
マーク:
-KVM準仮想化クロック
-KVMゲストサポート
- スピンロックの準仮想化レイヤー

次に、カーネル構成のルートに新しい仮想化オプションが表示されます。
私たちはそこに行き、注意します:
- カーネルベースの仮想マシン(KVM)サポート
-Intelプロセッサー用のKVMサポート
-KVMトレースのサポート
-virtioデバイス用のPCIドライバー
-Virtioバルーンドライバー

新しいカーネルでアセンブル、インストール、再起動します。
次に、KVMサポート付きのQemu、およびKVM自体をインストールします
USE = "kvm" emerge qemu
emerge kvm

次に、仮想マシンでのシャーマニズムに目を向けます。
仮想ハードドライブを作成します。
qemu-img create -f raw macos.disk 30G

ルートの外部からQemuを実行する場合、他のユーザーにdevice / dev / kvmの読み取り/書き込み権限を与える必要があります
chmod 0666 / dev / kvm

以下を開始します。
kvm-boot d -hda macos.disk -m 900 -net nic、model = rtl8139 -net tap -usb -no-reboot -no-shutdown -vga std -cpu core2duo -cdrom 10.5.7.iso
-hdaの仮想ハードドライブへのパス
-cdromはイメージにしましょう
-no-shutdown -no-rebootは 、エラーが発生した場合にエミュレータウィンドウが「フリーズ」し、エラーを読み取ることができるようにするために必要です。
-net nic、model = rtl8139はネットワークカードRealtek 8139をエミュレートします
-ゲストシステムがネットワーク上のホストを表示するためのネットタップ、TAPデバイスが必要

-m 900ゲストシステムに割り当てられたメモリ
-sidiromaからboot d boot
-usb USBサポート
-cpu core2duoプロセッサエミュレーションCore2Duo

ディスクをロードします。 ディスクユーティリティを使用してハードドライブをマークします (上のメニューから選択します)。

ドライバー設定。
[ インストール ] クリックする前に、[ カスタマイズ ]ボタンに注意してください。

選択する必要があるもの:
x86 ACPI
障害者
OHR
TyMCEを削除する
カードバス
USB
Intel SATA / IDE
カーネル
Apple PS / 2

インストールできます。 約30分待っています。
Mac OS Xがインストールされ、カスタマイズ可能です。
開始する行で、 -boot dを-boot cに変更して、ハードドライブから起動します。
ロード中です。 次に、ネットワークで何かを考え出す必要があります。
インターネットでPCGenRTL8139Ethernet.kext検索してインストールします。kextinstallerプログラムを使用してインストールするのは非常に簡単です。 ネットワークがない間、必要なファイルをUSBフラッシュドライブ経由でシステムに転送できます。たとえば、 -hdb / dev / sdb (USBデバイスへのパス)を追加します
ゲストOSを再起動します。
ここで、ネットワークをMac OS Xで機能させるには、ネットワーク管理に入り、イーサネットデバイスを選択してオフにし、目的のIP(たとえば、192.168.1.1)をオンにして構成し、ホストシステムでデバイスtap0を構成する必要があります。
ifconfig tap0 192.168.1.2

それは基本的にそれです。

画像

UPD。 投稿の著者はヴィニシュテインに登場しました

Source: https://habr.com/ru/post/J68489/


All Articles