ハブロビテスこんにちは。 最近、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。 投稿の著者はヴィニシュテインに登場しました