web-dev-qa-db-ja.com

VirtualBoxのようなハイパーバイザーを使用して、直接ブート可能な仮想化OSを起動できますか?

この質問はかなり理論的です:

2つの異なるパーティションに2つの異なるOS(sda1のOS1とsda2のOS2)を搭載したPCがあるとします。 OS1でVMWareやVirtualboxのようなプログラムを設定して、sda2にアクセスし、それを起動してOS2を実行することは、どういうわけか可能ですか?一方、OS2も直接起動可能である必要があります。

エミュレートされたOS2は非常に遅くなり、おそらく誰もこの設定を実際に使用しないと思いますが、これは非常に興味深いものです。

60
Wauzl

それは可能であり、はい、そして必ずしも遅くなる必要はありません。なぜなら、最近はエミュレーションではないからです仮想化 –ほとんどのCPUハードウェア支援の仮想化(VT-xなど)をサポートしますが、それらがなくても、VirtualBoxにはソフトウェア仮想化VMを高速に実行するための多くのトリックがあります。

いずれにせよ、それは普通の古いVMを起動するよりも遅くはありません。断片化されたディスクイメージの代わりにrawパーティションを使用するため、さらに高速になる可能性があります。


しかし、VirtualBoxでそれを行うにはhowについて完全にはわかりません。実際のパーティションを指すvboxmanageを使用して特別な.vdiファイルを作成する必要があると思いますか?また、このような状況でブートローダーを機能させる方法については考えていません。

Linuxでは、_current OSの読み取り専用コピーをそれ自体で実行し、qemu-system-x86_64 -enable-kvm -hda /dev/sda -snapshot -monitor stdio

58
user1686

qemuを使用すると、/dev/sda2などのブロックデバイスを仮想ハードドライブとして使用できます。 VMWareも同様です。 Virtualboxについてはわかりません。

VMで/dev/sda2を起動すると、ハードドライブを取り出し、ハードウェアが異なる別のコンピューターで起動した場合と同様の効果があります。 OSがその変更を処理できる場合は、VMとネイティブの両方でOSを実行しても問題ありません。Windowsでは問題が発生しますが、Linuxでは問題なく許容されます。

仮想ハードウェアをシステム上の物理ハードウェアにできるだけ一致させることで、潜在的な問題を軽減できます。ただし、指定するRAMを少なくする必要があります。特に重要なのは、同じタイプのディスクコントローラー(IDE、SCSIなど)を指定することです。

28
LawrenceC

それは完全に可能です、実際、私はこれをやっていました!

私は1つのパーティション/ディスク(私は忘れました)をWindowsでLinuxで1つ持っていました、それはWindowsの時代だったと思いますXP(確かに、それはしばらく続きました)。異なるインストールでディスク領域の負荷を使用せずに両方のデータセットにアクセスできる優れた方法。

私が覚えていた唯一の問題は、XPで2つの異なるハードウェアプロファイルを設定する必要があったことです。それが間違ったもので起動したとき、それは本当に混乱しました。

現在のアクティベーションプロセスがハードウェアの切り替えにどのように応答するかわかりません。これはいくつかの問題を引き起こす可能性があります...(ただし、Windowsを物理マシンとしてのみ起動し、LinuxをVM /または物理的にすると、それで解決します)

私が覚えているように、私はこれをVMwareワークステーションで行いました。それは間違いなくrawディスクからの起動をサポートします。私はMSバージョンがそうだと確信しています。 Linux VMについてはよくわかりませんが、そうでない場合は非常に驚きます。

19
Michael B

興味深いことに、MacでVMware Fusionを実行していて、Windowsブートキャンプパーティションがある場合、ブートキャンプパーティションで実行される仮想マシンを起動することができます。

VMware Fusionでは、ネイティブに起動する機能に影響を与えることなく、すでにインストールされているBoot Campパーティションを起動できます。これにより、Fusionを使用してMac OS内から、およびWindowsを直接再起動して直接起動することにより、Boot Campパーティションにアクセスできます。

ただし、次のことに注意してください。

オペレーティングシステムによって異なるハードウェアが認識されるため、Windowsを再アクティブ化するように求められる場合があります。

ソース: VMware-VMware FusionでのBoot Campパーティションの起動

8
magma

やった 。それはかなり便利ですが、いくつかの制限があり、それを設定することは簡単ではありません。

  • ネイティブまたはVM OSは、実行するハードウェアに対して寛容でなければなりません。ほとんどのLinuxディストリビューションは気にせず、CPUアーキテクチャが一致する限り、起動したもので実行します。 Windowsではそれほどスムーズではありません。アクティベーション/ライセンスの問題に直面することもあります。

  • Windowsでは、パーティションがホストにマウントされている間は、仮想マシンでOSを起動できません。これは大したことではありません。この場合、おそらくWindows内でLinuxをブートしたいのですが、Windowsはextファイルシステムをサポートしていません。

  • ブートローダーの設定には注意が必要です。 VMでの起動と、ネイティブでの起動には、個別の起動構成が必要です。ネイティブで起動するとき、Grub4DOS/NeoGrubを第1段階のブートローダーとして使用しましたが、Windowsブートローダーをチェーンロードしたり、Ubuntuを起動したりすることができました。 VMには、メインドライブよりも高い優先順位でマウントされた小さな(数MB)ドライブがありました。そのドライブには、手動でインストールされたGRUB2が含まれていて、VM内でUbuntuを起動するために使用しました。

  • 異常なブートローダーの設定には、慎重な更新が必要です。たとえば、Linuxをネイティブで実行しているときにGRUBを更新すると、ブートローダーチェーンが壊れる可能性があります。内部のVMを更新するには、ブートパーティションに手動でインストールする必要があります。

7
gronostaj

それは非常に簡単に可能です。インストールごとに別のハードディスクを使用する場合!

たとえば、ここを見てください: http://www.serverwatch.com/server-tutorials/using-a-physical-hard-drive-with-a-virtualbox-vm.html -または検索これらのキーワードのVirtualBox Webサイト(現在はダウンしています)。

私はそれを使用して、いくつかのWindowsの作業(Adobeのものや、LinuxでのWindowsの仮想化や仮想化ではスムーズに実行されない他のものなど)を実行するときにLinuxパーティションにアクセスできるようにします。

また、私は頻繁にタワーにリモートでアクセスします。Linuxハードディスク全体が暗号化されていますが、Windowsハードディスクは機密ではなく、機密データしかありません。そこで、Windowsを起動し(GRUBのWindowsエントリが事前に選択されています)、Teamviewerにログインし、Virtualboxを起動してから、Linuxハードディスクを起動します。

この方向では、Windows-> Virtualbox-> Linuxを使用したその他のHD-> Linux、つまりUbuntuがサポ​​ートする優れたハードウェア検出がオンザフライで行われるため、非常に簡単です。

他の方向では、あなたは混乱に終わるでしょう。 Windowsはハードウェアの変更をこれまでに好まない。それはシステムをめちゃくちゃにしたり、まったく起動しなかったり、たとえそれが起こったとしても、ハードウェアの変更が多すぎるためにライセンスが有効ではなくなったことを示している可能性がある。

つまり、WindowsをGRUBの事前選択されたブートエントリとして保持したいが、Virtualboxで実行するときにGRUB)で正しいエントリを選択することに注意してください。リモートでの遅延に問題がある場合は、安全のため、GRUB)でブートタイムアウトを増やします。

それがあなたを助けたことを願っています:)

0
Markus