2つのOSを同時にデュアルブートできますか?


36

2つのOSを同時にデュアルブートできますか?

たとえば、私は現在Ubuntu 11.04とWindows 7をデュアルブートしています。Ubuntuは500 GBの単一のHDDで実行され、Windows 7は1 TBのRAID 1ミラーで実行されています。2つのOSを切り替えるには、再起動が必要です。再起動せずに2つのOSを切り替えることは可能ですか?

:VirtualBoxとVMWare Playerの機能を完全に認識しています。両方を使用しています。「仮想化を使用してください!」と答えないでください。

編集:これが不可能な場合、それが不可能な理由を共有できますか?私には、そんなに難しいとは思えません。私のビジョンは知識に邪魔されないことを忘れないでください!


分割されたメモリとメインフレーム...オン
フィアスコLabsの

回答:


36

すべてではありませんが、主流のオペレーティングシステムのほとんどは、ホストコンピューターの低レベルの機能(ハードウェア、ポートなど)に排他的にアクセスすることを期待しており、他との共有の概念はありません-動作しません-したがって、同じシステム上で2つのOSを同時に実行しようとするには、オペレーティングシステムを相互にシールドするための何らかの形の透過的な調停者、つまり仮想化アプリケーションが必要です。


仮想化アプリケーションはコンセンサスのようです。推奨する無料またはオープンソースのオプションはありますか?
ジェームズ・ヒル

2
いくつかのVMアプリは他のものよりも優れているため、何をしようとしているかに大きく依存しますが、一般的に:メインのデフォルトOSを選択して(つまりUbuntuまたはWindowsを起動し)、Virtualbox、VM Playerをインストールします(私の2人お気に入り)またはお気に入りのVMアプリを使用して、他のOSをその環境の仮想マシンとしてインストールします。
リンカー3000

colinuxをベースにしたUbuntuディストリビューションを作成できます。colinuxはLinuxカーネルをWindows上のプロセスとして実行するため、実際には仮想化ではありません。ある意味で、元の質問が尋ねたことは可能ですが、まだ行われていません。
ジェイR.レン

ただし、一部は実際のハードウェアとは対照的に、オペレーティングシステムで実行するように移植されています-UserModeLinuxは完璧な反例です。colinux@Jayによる言及)は、オペレーティングシステムが別のシステムに「移植」される別の例です。
new123456

15

Hyper-VとXen(いわゆる「ベアメタル」ハイパーバイザー)は、あなたが求めているように見えるものに最も近いにもかかわらず、それらを却下しているようです。はい、それは仮想化ですが、VirtualBoxが機能するのと同じ方法ではありません。

VirtualBoxのようなものが独自のオペレーティングシステムだったと想像してください。小さなVirtualBox OSをインストールし、VirtualBox OS上で仮想マシンとしてWindowsとUbuntuを並行して実行できます。まあ、それは基本的にHyper-VまたはXenが行うことです。これは、ハードウェアとゲストオペレーティングシステム間の単なる仮想化レイヤーであり、既存のハードウェアと既存のオペレーティングシステムと並べて直接実行するのに可能な限り近いものです。

あなたはしていない、それはマシンの最初のオペレーティングシステムであるかのように、あなただけのハイパーバイザーをインストールしたいこれらのいずれかのために別のサーバーを必要として、ハイパーバイザーの下で仮想マシンとしてWindowsとUbuntuを追加します。

XenとHyper-Vは、ゲストオペレーティングシステムとしてUbuntuとWindowsを実行しますが、サポートされている構成ではない場合があります。XenはよりLinuxyであり、Hyper-VはMS製品であるため、より快適なOSに基づいてハイパーバイザーを選択することをお勧めします。


8

あなたができる最も近いことは...冬眠を利用することです。残念ながら、オペレーティングシステムは相互に十分に異質であるため、仮想化を実装せずに両方のOSを同時に実行する方法はありません。正直なところ、特に「VT」拡張機能をサポートする仮想化プラットフォームを使用している場合は、仮想化はあなたが思っているほど悪くはありません。ゲストOSは、ハードウェアと直接通信できるようになり、より優れたメモリマッピングなどが可能になります。実際にSSDに直接インストールされたゲストOSをセットアップしました...ホストOSよりも高速に実行されました。


私は仮想化に問題はありません。私は持っているすべてのコンピューターでVirtualBoxを使用しています。あなたがもう少し言及したVT拡張について説明できますか?参考までに、これは家庭用ですので、これを行うための安価な(読み取り:フリー/オープンソース)方法を探しています。
ジェームズヒル

VT =ハードウェア仮想化。基本的に、CPUには、OSの並列実行を促進するために設計された追加の拡張機能(BIOSで有効にする必要がある場合があります)があります。VirtualBoxはこれを行うことができます...しかし、ソフトウェアの仮想化にこだわっている場合は、うまく機能しません。VT-x、VT、AMD-V、ハードウェア仮想化、または無数の追加名とも呼ばれます。
TheCompWiz

VMWareには、この「VT」拡張クリーチャーがありますか?その場合、明示的に有効にする必要がありますか?
MasterMastic 14

VTはプロセッサ機能です。天候の問題か、CPUにビットが組み込まれているかどうか、そしてマザーボードがサポートしている場合です。(プロセッサ拡張機能は多くのBIOSで無効にできます)通常、デフォルトでは有効になっていますが、無効にすることもできます。私のHPラップトップでは電源が切れていました...しかし、私のスーパーマイクロサーバーでは電源が入っています。
TheCompWiz

7

答えが「いいえ」である簡単で短い理由は次のとおりです。どのソフトウェアがハードウェアを制御しますか?

OS 1がそれを行う場合、OS 2を実行していません。OS2がそれを行う場合、OS 1を実行していません。 、それが仮想化です(あなたはそれを除外しました)。


8
OS 1がOS / 2でない限り。OS 1とその後、あなたの実行中のOS / 2:D
ケネス・コクラン

それはただのワープです...濡れた紙袋から抜け出す方法を売り込むことができなかった会社によって作成されたきちんとしたオペレーティングシステムを覚えています。
Fiasco Labs

2

頭に浮かぶものは次のとおりです
。-メモリ管理(RAMおよびキャッシュ)
-プロセス管理(実行中のプロセススレッド)

そのため、おそらく2つのOS間のメモリ使用量とプロセスをジャグリングする中間者が必要になります。

それは別のOS /ファームウェアになります。
だから誰かがそれを実装している場合、osはそれを実装します、あなたは同時に2つのOsの代わりに3を実行することになります

編集-は
、ポートの管理:linker3000が書いたものを追加します

この「中間者」は本質的にあなたのホストOSと仮想化された他のOSになり、あなたがすでに解決策であると知っていたものに戻ります


2

私が知っているすべてのOSは、コンピューターハードウェアの完全な制御を要求します。

しかし、理論的には可能です。両方のOSは次のように設計する必要があります。

  • マスター(ハードウェア全体の制御)とスレーブ(マスターOSからリソースを要求)の両方として実行
  • 別のOSからの要求に応じてハードウェアの制御を放棄する

これらの両方の条件が満たされると、仮想化を一切行わずに2つのOSを同時に実行できます。それは協力的なマルチタスクを使用する2つのOSに類似しているでしょう。もちろん、協調的なマルチタスクは、アプリケーションの記述が不十分で制御を譲ることを拒否するという問題のため、ほとんど放棄されています。おそらく、適切に作成された2つのOSがうまく動作するでしょう。それから再びインセンティブは何でしょうか?


1

「なぜ」の部分を取り上げましょう。

最新のOSの理由の1つは、システム上で複数のプログラム(プロセス)を同時に実行できるようにすることです。これを安全に行うには、次のことを行う必要があります。

  • (特別なニーズがない限り)システム内のRAMを一定の方法(たとえば、プロセスごとに256MB固定)で分割したくない場合は、2GBシステムで8プロセスに制限されます。各プロセスがメモリを「求め」、完了したらそれを返すことができるようにしたいと思います。

  • また、デバイス間でI / Oデバイスを固定的に分割することは望ましくありません。通常、メモリなどのハードウェアの一部またはすべてを共有リソースにするか、特定の時間に特定のプロセスに対して少なくとも一時的に排他的にする必要があります。これには、すべてのプロセスが独自にI / Oを実行するのではなく、I / Oをスケジュールおよび調整するために何かを「実行」する必要があります。ほとんどのI / OはCPUよりもはるかに遅いため、スケジューリングは重要です。そのため、シングルコアシステムであってもI / Oを待機している間にCPUを他のプロセスで動作させることができます。

上記の権利を実現するには、いくつかのCPUハードウェア機能を利用する必要があります。これらの1つはMMUで、もう1つは保護モードです。2つのOSがこれらのハードウェア機能を共同で共有して、2つ以上のOSを実行できますか?

もちろん、ハードウェアには、あるOSが他のOSのメモリ全体を踏みつけるのを止めることができるものは何もありません。CPUがカーネルモード(カーネルモードが1つしかない)の場合、どのコードでも何でもできます。1つのOSのコードが他のOSのコードまたはデータ上で実行される可能性は100%です。また、オペレーティングシステムには過去に脆弱性があり、将来さらに脆弱性が生じることがわかっています。そのため、セキュリティ上非常に悪いです。

さて、この上に別の「レイヤー」を配置して、複数のOSのハードウェアサポートが必要になるとしたら、クールではないでしょうか。それがまさにハードウェア仮想化機能の機能であり、複数の実行中のOS間にハードウェアバリアを設け、ハイパーバイザーと呼ばれる最上位の「インターフェイス」があります。ハイパーバイザーは1つしか持てません。はい、どちらのOSで実行されているプロセスも、I / Oを実行するには3つの層を通過する必要があります(プロセス-ローカルカーネル-ハイパーバイザー)


0

仮想化は言わなかったが、MS Hyper Vサーバーのようなものがあなたのニーズに合うかもしれない


Hyper-Vでは、サーバーとして機能するために2台目のマシンが必要です。強力な2台目のマシンがあれば、それを他のタワーの隣に設定し、異なるOSで両方を起動します:)。また、私が理解していることからすると、セットアップにかかる費用は2千ドル以上になります。
ジェームズヒル

単一のマシンでHyper Vを実行できると思います
。– Akash

2
hyper-vのVは仮想化用です。制約が仮想化でない場合、hyper-vはソリューションではありません。
ジェイR.レン

0

仮想化以外の方法はありません。どのゲストシステムがさまざまなハイパーバイザーで機能するかを明確に把握することは困難です。http://en.wikipedia.org/wiki/Hypervisorいくつかの情報を入手するには良いスタートになるはずです。Xenは試してみる価値があるかもしれませんが、Windows 7のゲストをサポートしている場合は、誰かが確実に確認または拒否するのを待ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.